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
31using jem::newInstance;
32using jem::io::FileWriter;
33using jem::io::GzipFileWriter;
34using jem::io::PrintWriter;
35using jem::io::Writer;
36using jem::numeric::Function;
37
38using jive::BoolVector;
39using jive::idx_t;
40using jive::IdxVector;
41using jive::Properties;
42using jive::Ref;
43using jive::String;
44using jive::StringVector;
45using jive::Vector;
46
47using jive::app::Module;
48using jive::app::PropNames;
49using jive::fem::NodeSet;
50using jive::model::ActionParams;
51using jive::model::Actions;
52using jive::model::Model;
53using jive::util::Assignable;
54using jive::util::DofSpace;
55using jive::util::FuncUtils;
56
61class ForceOutputModule : public Module
62{
63public:
64 JEM_DECLARE_CLASS(ForceOutputModule, Module);
65
68 static const char *TYPE_NAME;
69 static const char *INT_PROP;
70 static const char *EXT_PROP;
71 static const char *GYRO_PROP;
72 static const char *NODE_PROP;
74
77 explicit ForceOutputModule(const String &name = "ForceOutput");
78
84 virtual Status init(const Properties &conf,
85 const Properties &props,
86 const Properties &globdat) override;
87
91 virtual Status run(const Properties &globdat) override;
92
95 virtual void shutdown(const Properties &globdat) override;
96
103 static Ref<Module> makeNew(const String &name,
104 const Properties &conf,
105 const Properties &props,
106 const Properties &globdat);
107
109 static void declare();
110
111protected:
113 virtual ~ForceOutputModule();
114
115private:
118 void writeHeader_(const bool time = false);
119
125 void writeLine_(const Vector &data,
126 const idx_t step,
127 const String type,
128 const double time = -1.) const;
129
130private:
133 Ref<DofSpace> dofs_;
134 Ref<Model> model_;
136
139 IdxVector dofsOut_;
140 bool intOut_;
141 bool extOut_;
142 bool gyroOut_;
144
147 bool started_;
148 Ref<PrintWriter> output_;
149 Ref<Function> sampleCond_;
151};
Module for outputting internal, external, and gyroscopic forces.
Definition ForceOutputModule.h:62
static const char * INT_PROP
Internal force output property.
Definition ForceOutputModule.h:69
virtual ~ForceOutputModule()
Protected destructor.
Definition ForceOutputModule.cpp:46
static const char * NODE_PROP
Node set property.
Definition ForceOutputModule.h:72
static void declare()
Register ForceOutputModule type with ModuleFactory.
Definition ForceOutputModule.cpp:266
static const char * GYRO_PROP
Gyroscopic force output property.
Definition ForceOutputModule.h:71
static const char * EXT_PROP
External force output property.
Definition ForceOutputModule.h:70
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:191
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:249
static const char * TYPE_NAME
Module type name.
Definition ForceOutputModule.h:68
virtual Status init(const Properties &conf, const Properties &props, const Properties &globdat) override
Initialize the module.
Definition ForceOutputModule.cpp:56