15#include <jem/base/Object.h>
19#include <jem/base/Float.h>
20#include <jem/util/Properties.h>
21#include <jem/util/PropertyException.h>
23#include <jive/Array.h>
24#include <jive/fem/NodeGroup.h>
25#include <jive/fem/NodeSet.h>
26#include <jive/implict/ArclenActions.h>
27#include <jive/model/Actions.h>
28#include <jive/model/Model.h>
29#include <jive/model/ModelFactory.h>
30#include <jive/model/Names.h>
31#include <jive/model/StateVector.h>
32#include <jive/util/Assignable.h>
33#include <jive/util/Constraints.h>
34#include <jive/util/DofSpace.h>
35#include <jive/util/Globdat.h>
41using jem::util::Properties;
42using jive::BoolMatrix;
44using jive::fem::NodeGroup;
45using jive::fem::NodeSet;
46using jive::implict::ArclenActions;
47using jive::implict::ArclenParams;
48using jive::model::Model;
49using jive::model::StateVector;
50using jive::util::Assignable;
51using jive::util::Constraints;
52using jive::util::DofSpace;
53using jive::util::Globdat;
108 const Properties &conf,
109 const Properties &props,
110 const Properties &globdat);
118 const Properties ¶ms,
119 const Properties &globdat)
override;
127 static Ref<Model>
makeNew(
const String &name,
128 const Properties &conf,
129 const Properties &props,
130 const Properties &globdat);
138 void init_(
const Properties &globdat);
144 void fixCorners_(
const Properties &globdat,
145 const Matrix ¤tGrad,
146 const double scale = NAN);
149 void setConstraints_();
155 void getExtVec_(
const Vector &f,
156 const Properties &globdat,
157 const double scale = 1.);
160 Assignable<NodeSet> nodes_;
162 Ref<Constraints> cons_;
165 StringVector dofNames_;
166 StringVector rotNames_;
168 IdxVectorMatrix masterEdgeDofs_;
169 IdxVectorMatrix slaveEdgeDofs_;
170 IdxMatrix cornerDofs_;
171 IdxVector corner0Dofs_;
Model for applying periodic boundary conditions on rectangular unit cells.
Definition PeriodicBCModel.h:80
Mode
Operation modes.
Definition PeriodicBCModel.h:96
@ DISP
Displacement control mode.
Definition PeriodicBCModel.h:99
@ UPD
Update mode.
Definition PeriodicBCModel.h:98
@ LOAD
Load control mode (NOT IMPLEMENTED)
Definition PeriodicBCModel.h:97
static const char * GRAD_PROP
Gradient property.
Definition PeriodicBCModel.h:86
static const char * ROT_NAMES_PROP
Rotation DOF names property.
Definition PeriodicBCModel.h:88
static const char * DOF_NAMES_PROP
DOF names property.
Definition PeriodicBCModel.h:87
static const char * FIXEDGRAD_PARAM
Fixed gradient parameter.
Definition PeriodicBCModel.h:89
static void declare()
Declare model type to factory.
Definition PeriodicBCModel.cpp:385
static const char * MODE_PROP
Operation mode property.
Definition PeriodicBCModel.h:85
static Ref< Model > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Create new PeriodicBCModel instance.
Definition PeriodicBCModel.cpp:379
static const char * TYPE_NAME
Model type name.
Definition PeriodicBCModel.h:84
virtual bool takeAction(const String &action, const Properties ¶ms, const Properties &globdat) override
Handle model actions.
Definition PeriodicBCModel.cpp:112
file containing some basic helper functions
void vec2mat(const Matrix &mat, const Vector &vec)
rearrange a vector into a matrix.
Definition helpers.cpp:113
Array< IdxVector, 2 > IdxVectorMatrix
Definition helpers.h:49
several compiler macros for faster testing of variables