9#include <jem/base/Class.h>
10#include <jem/util/ArrayBuffer.h>
11#include <jem/util/Properties.h>
12#include <jem/util/StringUtils.h>
14#include <jive/Array.h>
15#include <jive/algebra/MatrixBuilder.h>
16#include <jive/fem/ElementGroup.h>
17#include <jive/fem/ElementSet.h>
18#include <jive/fem/NodeSet.h>
19#include <jive/fem/XElementSet.h>
20#include <jive/fem/XNodeSet.h>
21#include <jive/implict/Names.h>
22#include <jive/model/Actions.h>
23#include <jive/model/Model.h>
24#include <jive/model/ModelFactory.h>
25#include <jive/model/StateVector.h>
26#include <jive/solver/Solver.h>
27#include <jive/util/Assignable.h>
28#include <jive/util/Constraints.h>
29#include <jive/util/DofSpace.h>
30#include <jive/util/FuncUtils.h>
36using jem::newInstance;
39using jem::numeric::Function;
40using jem::util::Properties;
42using jive::BoolMatrix;
43using jive::StringVector;
44using jive::algebra::MatrixBuilder;
45using jive::fem::ElementGroup;
46using jive::fem::ElementSet;
47using jive::fem::NodeSet;
48using jive::fem::XElementSet;
49using jive::fem::XNodeSet;
50using jive::model::Model;
51using jive::util::Assignable;
52using jive::util::Constraints;
53using jive::util::DofSpace;
54using jive::util::FuncUtils;
81 const Properties &conf,
82 const Properties &props,
83 const Properties &globdat);
92 (
const String &action,
93 const Properties ¶ms,
94 const Properties &globdat)
override;
105 const Properties &conf,
106 const Properties &props,
107 const Properties &globdat);
117 ElementGroup createHinges_(
const String &elementName,
const Properties &globdat);
121 void updForces_(
const Vector &fint);
125 bool evalPlastic_(
const Vector &disp);
129 void init_(
const Properties &globdat);
138 Assignable<ElementGroup> egroup_;
139 Assignable<NodeSet> nodes_;
140 Assignable<ElementSet> elems_;
142 Ref<Constraints> cons_;
148 StringVector jnames_;
161 Ref<Material> material_;
162 Ref<Function> yieldCond_;
165 Matrix intForcesOld_;
jem::util::ArrayBuffer< idx_t > IdxBuffer
Definition HingeModel.h:56
Special Cosserat rod model implementation.
Model for plastic hinges connecting multiple Cosserat rod elements.
Definition HingeModel.h:63
static Ref< Model > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for creating new HingeModel instances.
Definition HingeModel.cpp:358
static const char * YIELD_PROP
Yield condition property.
Definition HingeModel.h:68
virtual bool takeAction(const String &action, const Properties ¶ms, const Properties &globdat) override
Handle model actions (INIT, GET_MATRIX, GET_INT_VECTOR, etc.)
Definition HingeModel.cpp:86
static void declare()
Register HingeModel type with ModelFactory.
Definition HingeModel.cpp:373
static const char * TYPE_NAME
Model type name.
Definition HingeModel.h:67
file containing some basic helper functions
several compiler macros for faster testing of variables