dynLattice
Loading...
Searching...
No Matches
SpringMassModel.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <jem/base/Object.h>
14
15#include <jem/base/Array.h>
16#include <jem/base/System.h>
17#include <jem/util/ArrayBuffer.h>
18#include <jem/util/Properties.h>
19#include <jive/fem/ElementGroup.h>
20#include <jive/fem/NodeGroup.h>
21#include <jive/fem/XElementSet.h>
22#include <jive/fem/XNodeSet.h>
23#include <jive/model/Actions.h>
24#include <jive/model/Model.h>
25#include <jive/model/ModelFactory.h>
26#include <jive/util/Assignable.h>
27#include <jive/util/Constraints.h>
28#include <jive/util/DofSpace.h>
29
30using jem::ALL;
31using jem::Array;
32using jem::Ref;
33using jem::util::ArrayBuffer;
34using jive::idx_t;
35using jive::IdxMatrix;
36using jive::IdxVector;
37using jive::Matrix;
38using jive::Properties;
39using jive::String;
40using jive::StringVector;
41using jive::Vector;
42using jive::fem::ElementGroup;
43using jive::fem::NodeGroup;
44using jive::fem::XElementSet;
45using jive::fem::XNodeSet;
46using jive::model::Actions;
47using jive::model::Model;
48using jive::model::ModelFactory;
49using jive::util::Assignable;
50using jive::util::Constraints;
51using jive::util::DofSpace;
52
53//-----------------------------------------------------------------------
54// class SpringMassModel
55//-----------------------------------------------------------------------
56
71class SpringMassModel : public Model
72{
73
74 public:
75 JEM_DECLARE_CLASS(SpringMassModel, Model);
76
79 static const char *TYPE_NAME;
80 static const char *BOUNDARY_PROP;
81 static const char *SPRING_NAMES;
82 static const char *EXTENT_VECTOR_PROP;
83 static const char *N_ELEM_PROP;
84 static const char *P_ELEM_PROP;
86
92 explicit SpringMassModel(const String &name,
93 const Properties &conf,
94 const Properties &props,
95 const Properties &globdat);
96
102 virtual bool takeAction(const String &action,
103 const Properties &params,
104 const Properties &globdat) override;
105
112 static Ref<Model> makeNew(const String &name,
113 const Properties &conf,
114 const Properties &props,
115 const Properties &globdat);
116
118 static void declare();
119
120 protected:
122 virtual ~SpringMassModel();
123
127 virtual bool applyConstraints_(const Properties &globdat) const;
128
129 private:
130 Array<Ref<Model>> children_;
131 Assignable<NodeGroup> boundary_;
132 IdxMatrix edgeNodes_;
133};
Model for spring-mass systems at domain boundaries.
Definition SpringMassModel.h:72
virtual bool takeAction(const String &action, const Properties &params, const Properties &globdat) override
Handle model actions.
Definition SpringMassModel.cpp:141
virtual ~SpringMassModel()
Protected destructor.
Definition SpringMassModel.cpp:134
static const char * N_ELEM_PROP
Number of elements property.
Definition SpringMassModel.h:83
static Ref< Model > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Create new SpringMassModel instance.
Definition SpringMassModel.cpp:215
static const char * TYPE_NAME
Model type name.
Definition SpringMassModel.h:79
static const char * BOUNDARY_PROP
Boundary specification property.
Definition SpringMassModel.h:80
static const char * SPRING_NAMES
Spring names property.
Definition SpringMassModel.h:81
virtual bool applyConstraints_(const Properties &globdat) const
Apply constraints to the spring-mass system.
Definition SpringMassModel.cpp:165
static const char * P_ELEM_PROP
Element parameter property.
Definition SpringMassModel.h:84
static void declare()
Declare model type to factory.
Definition SpringMassModel.cpp:226
static const char * EXTENT_VECTOR_PROP
Extent vector property.
Definition SpringMassModel.h:82