13#include <jem/base/Error.h>
14#include <jem/numeric/Sparse.h>
15#include <jem/numeric/sparse/select.h>
16#include <jive/algebra/AbstractMatrix.h>
17#include <jive/algebra/ConstrainedMatrix.h>
18#include <jive/algebra/SparseMatrixObject.h>
19#include <jive/app/Module.h>
20#include <jive/app/ModuleFactory.h>
21#include <jive/fem/FEMatrixBuilder.h>
22#include <jive/implict/Names.h>
23#include <jive/implict/NonlinModule.h>
24#include <jive/implict/SolverModule.h>
25#include <jive/implict/utilities.h>
26#include <jive/model/ModelFactory.h>
27#include <jive/solver/Solver.h>
28#include <jive/solver/declare.h>
29#include <jive/util/FuncUtils.h>
36using jem::numeric::Function;
37using jive::Properties;
38using jive::SparseMatrix;
40using jive::algebra::AbstractMatrix;
41using jive::algebra::ConstrainedMatrix;
42using jive::app::Module;
43using jive::app::ModuleFactory;
44using jive::fem::FEMatrixBuilder;
45using jive::implict::SolverModule;
46using jive::model::Model;
47using jive::util::FuncUtils;
83 virtual Status
init(
const Properties &conf,
const Properties &props,
84 const Properties &globdat)
override;
89 virtual Status
run(
const Properties &globdat)
override;
93 virtual void shutdown(
const Properties &globdat)
override;
101 static Ref<Module>
makeNew(
const String &name,
const Properties &conf,
102 const Properties &props,
const Properties &globdat);
115 void readStrainStress_(
const Vector &strains,
const Vector &stresses,
116 const Properties &globdat);
121 void reportStrainStress_(
const Vector &H,
const Vector &N);
127 void getStrainStress_(
const Matrix &strains,
const Matrix &stresses,
128 const Properties &globdat);
134 void storeTangentProps_(
const Matrix &strains,
const Matrix &stresses,
135 const Properties &globdat);
141 void condenseMatrix_(
const Matrix &strains,
const Matrix &stresses,
142 const Properties &globdat);
160 Ref<Model> masterModel_;
161 Ref<Function> sampleCond_;
162 Ref<GroupOutputModule> groupUpdate_;
163 Ref<SolverModule> solver_;
164 Ref<Constraints> cons_;
169 StringVector strains_;
170 StringVector stresses_;
172 IdxMatrix strainDofs_;
Dirichlet boundary condition model for displacement control.
Specialized output module for periodic boundary condition analysis.
Periodic boundary conditions model for rectangular unit cells.
Module for tangent elastic property calculation via homogenization.
Definition TangentOutputModule.h:65
static const char * TYPE_NAME
Module type name.
Definition TangentOutputModule.h:71
virtual Status init(const Properties &conf, const Properties &props, const Properties &globdat) override
Initialize tangent property calculation.
Definition TangentOutputModule.cpp:32
virtual Status run(const Properties &globdat) override
Run tangent property calculation.
Definition TangentOutputModule.cpp:145
virtual void shutdown(const Properties &globdat) override
Shutdown module and finalize output.
Definition TangentOutputModule.cpp:140
static Ref< Module > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Factory method for creating new instances.
Definition TangentOutputModule.cpp:330
static void declare()
Register module type with factory.
Definition TangentOutputModule.cpp:341
virtual ~TangentOutputModule()
Protected destructor.
Definition TangentOutputModule.cpp:28