13#include <jem/base/Object.h>
14#include <jem/io/Writer.h>
15#include <jive/Array.h>
16#include <jive/fem/NodeGroup.h>
17#include <jive/model/Model.h>
18#include <jive/model/ModelFactory.h>
19#include <jive/util/Assignable.h>
20#include <jive/util/XDofSpace.h>
24using jem::IllegalInputException;
25using jem::newInstance;
31using jem::util::Properties;
33using jive::StringVector;
35using jive::fem::NodeGroup;
36using jive::fem::NodeSet;
37using jive::model::Model;
38using jive::util::Assignable;
39using jive::util::Constraints;
40using jive::util::DofSpace;
41using jive::util::XDofSpace;
88 virtual void configure(
const Properties &props,
89 const Properties &globdat)
override;
94 virtual void getConfig(
const Properties &conf,
95 const Properties &globdat)
const override;
103 const Properties ¶ms,
104 const Properties &globdat)
override;
120 static Ref<Model>
makeNew(
const String &name,
121 const Properties &conf,
122 const Properties &props,
123 const Properties &globdat);
135 void init_(
const Properties &globdat);
140 void getExtVector_(
const Vector &fext,
141 const Properties &globdat)
const;
147 void getExtVector_(
const Vector &fext,
148 const Properties &globdat,
149 const double scale)
const;
153 void advance_(
const Properties &globdat);
158 void commit_(
const Properties ¶ms,
159 const Properties &globdat);
164 void reduceStep_(
const Properties ¶ms,
165 const Properties &globdat);
170 void increaseStep_(
const Properties ¶ms,
171 const Properties &globdat);
175 Assignable<NodeSet> nodes_;
185 StringVector nodeGroups_;
186 StringVector dofTypes_;
Model for applying Neumann boundary conditions on node groups.
Definition NeumannModel.h:64
static const char * MIN_LOAD_PROP
Minimum load increment property.
Definition NeumannModel.h:71
static const char * TYPE_NAME
Model type name.
Definition NeumannModel.h:68
virtual ~NeumannModel()
Protected destructor.
Definition NeumannModel.cpp:86
static const char * DOF_PROP
DOF types property.
Definition NeumannModel.h:75
static const char * INIT_LOAD_PROP
Initial load property.
Definition NeumannModel.h:70
static const char * FACTORS_PROP
Load factors property.
Definition NeumannModel.h:76
void setLoadIncr(double incr)
Set load increment.
Definition NeumannModel.cpp:260
static const char * NODES_PROP
Node groups property.
Definition NeumannModel.h:74
static const char * MAX_LOAD_PROP
Maximum load value property.
Definition NeumannModel.h:72
virtual void configure(const Properties &props, const Properties &globdat) override
Configure the model from properties.
Definition NeumannModel.cpp:166
virtual bool takeAction(const String &action, const Properties ¶ms, const Properties &globdat) override
Handle model actions.
Definition NeumannModel.cpp:96
virtual void getConfig(const Properties &conf, const Properties &globdat) const override
Get current model configuration.
Definition NeumannModel.cpp:216
double getLoadIncr() const
Get current load increment.
Definition NeumannModel.cpp:270
static void declare()
Declare model type to factory.
Definition NeumannModel.cpp:431
static const char * REDUCTION_PROP
Load reduction factor property.
Definition NeumannModel.h:73
static const char * LOAD_INCR_PROP
Load increment property.
Definition NeumannModel.h:69
static Ref< Model > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Create new NeumannModel instance.
Definition NeumannModel.cpp:241