13#include <jem/base/Object.h>
18#include <jem/base/Array.h>
19#include <jem/base/Error.h>
20#include <jem/base/System.h>
21#include <jem/util/Event.h>
22#include <jem/util/Properties.h>
23#include <jive/Array.h>
24#include <jive/algebra/MatrixBuilder.h>
25#include <jive/algebra/NullMatrixBuilder.h>
26#include <jive/app/Names.h>
27#include <jive/fem/ElementSet.h>
28#include <jive/implict/Names.h>
29#include <jive/model/Actions.h>
30#include <jive/model/Model.h>
31#include <jive/model/ModelFactory.h>
32#include <jive/model/StateVector.h>
33#include <jive/util/Assignable.h>
34#include <jive/util/DofSpace.h>
35#include <jive/util/FuncUtils.h>
36#include <jive/util/XTable.h>
39using jem::newInstance;
45using jive::Properties;
48using jive::algebra::MatrixBuilder;
49using jive::algebra::NullMatrixBuilder;
50using jive::fem::ElementSet;
51using jive::fem::NodeSet;
52using jive::model::ActionParams;
53using jive::model::Actions;
54using jive::model::Model;
55using jive::model::StateVector;
56using jive::util::Assignable;
57using jive::util::DofSpace;
58using jive::util::FuncUtils;
59using jive::util::XTable;
102 const Properties &conf,
103 const Properties &props,
104 const Properties &globdat);
112 const Properties ¶ms,
113 const Properties &globdat)
override;
121 static Ref<Model>
makeNew(
const String &name,
122 const Properties &conf,
123 const Properties &props,
124 const Properties &globdat);
135 IdxVector &elementsB,
136 const Vector &disp)
const;
147 const Vector &disp)
const;
157 const Matrix &elemBoxMin,
158 const Matrix &elemBoxMax)
const;
171 const Matrix &elemBoxMin,
172 const Matrix &elemBoxMax)
const;
182 const IdxVector &elementsA,
183 const IdxVector &elementsB,
191 const IdxVector &elementsB,
199 const idx_t elementsB)
const;
209 const Matrix &possB)
const;
216 const Matrix &possM)
const;
232 const double uB)
const;
246 const double uM)
const;
251 bool nodeInRod_(
const idx_t inode,
const idx_t iRod)
const;
260 Assignable<NodeSet> allNodes_;
261 Assignable<ElementSet> allElems_;
262 Array<Assignable<ElementGroup>> rodList_;
263 Array<IdxVector> rodNodes_;
265 mutable IdxMatrix nodeDofs_;
266 mutable bool nodeDofsValid_;
270 IdxVector blacklistA_;
271 IdxVector blacklistB_;
273 ArrayBuffer<idx_t> contactsA_;
274 ArrayBuffer<idx_t> contactsB_;
276 Ref<Function> updCond_;
Lattice model for managing collections of rod elements.
Shape function for 1D line elements in 3D space.
Special Cosserat rod model implementation.