9#include <jem/base/Class.h>
10#include <jive/app/Module.h>
11#include <jive/fem/ElementGroup.h>
12#include <jive/fem/ElementSet.h>
13#include <jive/fem/NodeSet.h>
14#include <jive/util/Assignable.h>
15#include <jive/util/Constraints.h>
16#include <jive/util/Globdat.h>
17#include <jive/util/XDofSpace.h>
26using jem::newInstance;
31using jem::util::Properties;
35using jive::StringVector;
37using jive::app::Module;
38using jive::fem::ElementGroup;
39using jive::fem::ElementSet;
40using jive::fem::NodeSet;
41using jive::util::Assignable;
42using jive::util::Constraints;
43using jive::util::Globdat;
44using jive::util::XDofSpace;
75 virtual Status
init(
const Properties &conf,
76 const Properties &props,
77 const Properties &globdat)
override;
85 static Ref<Module>
makeNew(
const String &name,
86 const Properties &conf,
87 const Properties &props,
88 const Properties &globdat);
109 class NGroup_ :
public Object
122 void configure(
const Properties &conf,
123 const Properties &props,
128 void makeGroup(
const Properties &globdat);
132 static const char *X_NAMES[3];
133 static const double PI;
136 StringVector knownTypes;
150 void findCandidates_(
const ElementSet &elems,
151 const Properties &globdat);
155 void findNodes_(
const NodeSet &nodes);
160 void store_(
const NodeSet &nodes,
161 const Properties &globdat);
176 Tuple<Vector, 3> xvals_;
179 Tuple<String, 3> xtype_;
188 StringVector restrictTo_;
189 IdxVector restrictPartial_;
201 class EGroup_ :
public Object
214 void configure(
const Properties &conf,
215 const Properties &props,
220 void makeGroup(
const Properties &globdat);
224 static const char *X_NAMES[3];
225 static const double PI;
228 StringVector knownTypes;
242 void findElems_(
const ElementSet &elems,
243 const Properties &globdat);
248 void store_(
const ElementSet &elems,
249 const Properties &globdat);
262 Tuple<Vector, 3> xvals_;
265 Tuple<String, 3> xtype_;
268 Tuple<bool, 3> completely_;