dynLattice
Loading...
Searching...
No Matches
ForceOutputModule.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <jem/base/Array.h>
10#include <jem/base/CString.h>
11#include <jem/base/Class.h>
12#include <jem/io/FileWriter.h>
13#include <jem/io/GzipFileWriter.h>
14#include <jem/io/PrintWriter.h>
15#include <jem/util/Properties.h>
16
17#include <jive/app/Module.h>
18#include <jive/app/ModuleFactory.h>
19#include <jive/app/Names.h>
20#include <jive/fem/NodeSet.h>
21#include <jive/femodel/Names.h>
22#include <jive/model/Actions.h>
23#include <jive/model/Model.h>
24#include <jive/model/StateVector.h>
25#include <jive/util/Assignable.h>
26#include <jive/util/DofSpace.h>
27#include <jive/util/FuncUtils.h>
28#include <jive/util/Globdat.h>
29#include <jive/util/utilities.h>
30
32
33using jem::newInstance;
34using jem::io::FileWriter;
35using jem::io::GzipFileWriter;
36using jem::io::PrintWriter;
37using jem::io::Writer;
38using jem::numeric::Function;
39
40using jive::BoolVector;
41using jive::idx_t;
42using jive::IdxVector;
43using jive::Properties;
44using jive::Ref;
45using jive::String;
46using jive::StringVector;
47using jive::Vector;
48
49using jive::app::Module;
50using jive::app::PropNames;
51using jive::fem::NodeSet;
52using jive::model::ActionParams;
53using jive::model::Actions;
54using jive::model::Model;
55using jive::util::Assignable;
56using jive::util::DofSpace;
57using jive::util::FuncUtils;
58
67class ForceOutputModule : public Module
68{
69 public:
70 JEM_DECLARE_CLASS(ForceOutputModule, Module);
71
74 static const char *TYPE_NAME;
75 static const char *INT_PROP;
76 static const char *EXT_PROP;
77 static const char *GYRO_PROP;
78 static const char *NODE_PROP;
80
83 explicit ForceOutputModule(const String &name = "ForceOutput");
84
90 virtual Status init(const Properties &conf,
91 const Properties &props,
92 const Properties &globdat) override;
93
97 virtual Status run(const Properties &globdat) override;
98
101 virtual void shutdown(const Properties &globdat) override;
102
109 static Ref<Module> makeNew(const String &name,
110 const Properties &conf,
111 const Properties &props,
112 const Properties &globdat);
113
115 static void declare();
116
117 protected:
119 virtual ~ForceOutputModule();
120
121 private:
124 void writeHeader_(const bool time = false);
125
131 void writeLine_(const Vector &data,
132 const idx_t step,
133 const String type,
134 const double time = -1.) const;
135
136 private:
139 Ref<DofSpace> dofs_;
140 Ref<Model> model_;
142
145 IdxVector dofsOut_;
146 bool intOut_;
147 bool extOut_;
148 bool gyroOut_;
150
153 bool started_;
154 Ref<PrintWriter> output_;
155 Ref<Function> sampleCond_;
157};
Base class for explicit time integration methods.
Module for outputting internal, external, and gyroscopic forces.
Definition ForceOutputModule.h:68
static const char * INT_PROP
Internal force output property.
Definition ForceOutputModule.h:75
virtual ~ForceOutputModule()
Protected destructor.
Definition ForceOutputModule.cpp:46
static const char * NODE_PROP
Node set property.
Definition ForceOutputModule.h:78
static void declare()
Register ForceOutputModule type with ModuleFactory.
Definition ForceOutputModule.cpp:288
static const char * GYRO_PROP
Gyroscopic force output property.
Definition ForceOutputModule.h:77
static const char * EXT_PROP
External force output property.
Definition ForceOutputModule.h:76
virtual Status run(const Properties &globdat) override
Run the force output operation.
Definition ForceOutputModule.cpp:137
virtual void shutdown(const Properties &globdat) override
Shutdown the module and close output files.
Definition ForceOutputModule.cpp:213
static Ref< Module > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for creating new ForceOutputModule instances.
Definition ForceOutputModule.cpp:271
static const char * TYPE_NAME
Module type name.
Definition ForceOutputModule.h:74
virtual Status init(const Properties &conf, const Properties &props, const Properties &globdat) override
Initialize the module.
Definition ForceOutputModule.cpp:56