dynLattice
Loading...
Searching...
No Matches
PBCGroupInputModule.h
Go to the documentation of this file.
1
10#pragma once
11
12#include <jive/app/Module.h>
13#include <jive/fem/ElementGroup.h>
14#include <jive/fem/ElementSet.h>
15#include <jive/fem/NodeSet.h>
16#include <jive/util/Assignable.h>
17#include <jive/util/Constraints.h>
18#include <jive/util/XDofSpace.h>
19
20#include "GroupInputModule.h"
21
28{
29public:
35
38 static const char *TYPE_NAME;
39 static const char *EDGES[6];
40 static const char *CORNERS[4];
41 static const char *DUPEDNODES_PROP;
42 static const char *NGROUPS_PROP;
44
47 explicit PBCGroupInputModule(const String &name = "pbcGroupInput");
48
54 virtual Status init(const Properties &conf, const Properties &props,
55 const Properties &globdat) override;
56
63 static Ref<Module> makeNew(const String &name, const Properties &conf,
64 const Properties &props, const Properties &globdat);
65
67 static void declare();
68
69protected:
71 virtual ~PBCGroupInputModule();
72
75 void prepareProps_(const Properties &myProps) const;
76
83 void sortBoundaryNodes_(const IdxVector &islaves, const IdxVector &imasters,
84 const NodeSet &nodes, const Properties &globdat,
85 const idx_t ix) const;
86
87protected:
90 idx_t rank_;
91 double small_;
92 bool edges_;
93 bool corners_;
94 Properties groupSettings_;
97};
Module for generating node and element groups from input files.
Module for generating node and element groups from input specifications.
Definition GroupInputModule.h:55
Module for automatic periodic boundary condition node group generation.
Definition PBCGroupInputModule.h:28
void sortBoundaryNodes_(const IdxVector &islaves, const IdxVector &imasters, const NodeSet &nodes, const Properties &globdat, const idx_t ix) const
Sort boundary nodes into master/slave pairs.
Definition PBCGroupInputModule.cpp:280
virtual ~PBCGroupInputModule()
Protected destructor.
Definition PBCGroupInputModule.cpp:69
static const char * EDGES[6]
Edge group names (xmin, xmax, etc.)
Definition PBCGroupInputModule.h:43
bool corners_
Generate corner node groups.
Definition PBCGroupInputModule.h:93
GroupInputModule Super
Base class type alias.
Definition PBCGroupInputModule.h:33
static const char * TYPE_NAME
Module type name.
Definition PBCGroupInputModule.h:38
String dupedNodeGroup_
Name of duplicated node group.
Definition PBCGroupInputModule.h:95
PBCGroupInputModule Self
Self type alias.
Definition PBCGroupInputModule.h:32
Properties groupSettings_
Group configuration settings.
Definition PBCGroupInputModule.h:94
double small_
Tolerance for coordinate comparison.
Definition PBCGroupInputModule.h:91
static Ref< Module > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for creating new instances.
Definition PBCGroupInputModule.cpp:360
bool edges_
Generate edge node groups.
Definition PBCGroupInputModule.h:92
void prepareProps_(const Properties &myProps) const
Prepare properties for PBC group generation.
Definition PBCGroupInputModule.cpp:206
static void declare()
Register module type with factory.
Definition PBCGroupInputModule.cpp:374
virtual Status init(const Properties &conf, const Properties &props, const Properties &globdat) override
Initialize PBC node group generation.
Definition PBCGroupInputModule.cpp:79
idx_t rank_
Spatial dimension of the domain.
Definition PBCGroupInputModule.h:90
static const char * CORNERS[4]
Corner group names.
Definition PBCGroupInputModule.h:45
static const char * NGROUPS_PROP
Node groups property name.
Definition PBCGroupInputModule.h:42
static const char * DUPEDNODES_PROP
Duplicated nodes property name.
Definition PBCGroupInputModule.h:41