9#include <jem/base/Array.h>
10#include <jem/base/CString.h>
11#include <jem/base/Class.h>
12#include <jem/base/IllegalInputException.h>
13#include <jem/base/System.h>
14#include <jem/base/array/Array.h>
15#include <jem/numeric/algebra/utilities.h>
16#include <jem/util/ArrayBuffer.h>
17#include <jem/util/Properties.h>
18#include <jive/algebra/AbstractMatrix.h>
19#include <jive/algebra/MatrixBuilder.h>
20#include <jive/fem/ElementGroup.h>
21#include <jive/fem/ElementSet.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/util/Assignable.h>
27#include <jive/util/DofSpace.h>
28#include <jive/util/Globdat.h>
29#include <jive/util/ObjectConverter.h>
30#include <jive/util/XTable.h>
31#include <jive/util/utilities.h>
35using jem::newInstance;
37using jem::numeric::dotProduct;
38using jem::util::ArrayBuffer;
40using jive::Properties;
42using jive::StringVector;
44using jive::algebra::AbstractMatrix;
45using jive::algebra::MatrixBuilder;
46using jive::fem::ElementGroup;
47using jive::fem::ElementSet;
48using jive::model::ActionParams;
49using jive::model::Actions;
50using jive::model::Model;
51using jive::model::ModelFactory;
52using jive::model::StateVector;
53using jive::util::Assignable;
54using jive::util::DofSpace;
55using jive::util::Globdat;
56using jive::util::XTable;
85 const Properties &conf,
86 const Properties &props,
87 const Properties &globdat);
96 (
const String &action,
97 const Properties ¶ms,
98 const Properties &globdat)
override;
109 void getKineticEnergy(XTable &energy_table,
const Vector &table_weights,
const Properties &globdat)
const;
114 double getMass(
const Properties &globdat)
const;
120 void getMass(XTable &mass_table,
const Vector &table_weights,
const Properties &globdat)
const;
131 const Properties &conf,
132 const Properties &props,
133 const Properties &globdat);
141 Array<Ref<Model>> children_;
143 Ref<Model> jointContact_;
148 Ref<AbstractMatrix> M_;
Model for managing lattice structures composed of rod elements.
Definition LatticeModel.h:63
virtual bool takeAction(const String &action, const Properties ¶ms, const Properties &globdat) override
Handle model actions for lattice coordination.
Definition LatticeModel.cpp:110
double getMass(const Properties &globdat) const
Calculate total mass of the lattice.
Definition LatticeModel.cpp:286
static const char * ROD_LIST_PROP
Rod list property.
Definition LatticeModel.h:71
static const char * NAME_PREFIX
Child name prefix.
Definition LatticeModel.h:72
static const char * ROD_CONTACT_PROP
Rod contact model property.
Definition LatticeModel.h:69
static Ref< Model > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for creating new LatticeModel instances.
Definition LatticeModel.cpp:323
double getKineticEnergy(const Properties &globdat) const
Calculate total kinetic energy of the lattice.
Definition LatticeModel.cpp:223
static const char * TYPE_NAME
Model type name.
Definition LatticeModel.h:67
static void declare()
Register LatticeModel type with ModelFactory.
Definition LatticeModel.cpp:334
static const char * JOINT_CONTACT_PROP
Joint contact model property.
Definition LatticeModel.h:70
static const char * CHILD_PROPS
Child model properties.
Definition LatticeModel.h:68