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;
76 virtual Status
init(
const Properties &conf,
const Properties &props,
77 const Properties &globdat)
override;
82 virtual Status
run(
const Properties &globdat)
override;
86 virtual void shutdown(
const Properties &globdat)
override;
94 static Ref<Module>
makeNew(
const String &name,
const Properties &conf,
95 const Properties &props,
const Properties &globdat);
108 void readStrainStress_(
const Vector &strains,
const Vector &stresses,
109 const Properties &globdat);
114 void reportStrainStress_(
const Vector &H,
const Vector &N);
120 void getStrainStress_(
const Matrix &strains,
const Matrix &stresses,
121 const Properties &globdat);
127 void storeTangentProps_(
const Matrix &strains,
const Matrix &stresses,
128 const Properties &globdat);
134 void condenseMatrix_(
const Matrix &strains,
const Matrix &stresses,
135 const Properties &globdat);
153 Ref<Model> masterModel_;
154 Ref<Function> sampleCond_;
155 Ref<GroupOutputModule> groupUpdate_;
156 Ref<SolverModule> solver_;
157 Ref<Constraints> cons_;
162 StringVector strains_;
163 StringVector stresses_;
165 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:58
static const char * TYPE_NAME
Module type name.
Definition TangentOutputModule.h:64
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:323
static void declare()
Register module type with factory.
Definition TangentOutputModule.cpp:334
virtual ~TangentOutputModule()
Protected destructor.
Definition TangentOutputModule.cpp:28