Module for tangent elastic property calculation via homogenization.
More...
#include "TangentOutputModule.h"
|
| | TangentOutputModule (const String &name="tangentOutput") |
| | Constructor.
|
| |
| virtual Status | init (const Properties &conf, const Properties &props, const Properties &globdat) override |
| | Initialize tangent property calculation.
|
| |
| virtual Status | run (const Properties &globdat) override |
| | Run tangent property calculation.
|
| |
| virtual void | shutdown (const Properties &globdat) override |
| | Shutdown module and finalize output.
|
| |
|
| static Ref< Module > | makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) |
| | Factory method for creating new instances.
|
| |
| static void | declare () |
| | Register module type with factory.
|
| |
|
|
| static const char * | TYPE_NAME = "TangentOutput" |
| | Module type name.
|
| |
Computes effective elastic properties of heterogeneous materials using periodic boundary conditions. Supports two computation modes:
- Finite differences: Applies strain perturbations and measures stress response
- Matrix condensation: Direct extraction from tangent stiffness matrix *(NOT IMPLEMENTED)*
The module performs strain-stress analysis on boundary nodes and calculates homogenized material properties for multi-scale modeling applications.
- Note
- Only for static analyses with an implicit (Newton) solver. The finite-difference perturbations are solved with an internal NonlinModule; combined with an explicit integrator, output modules would read the internal force published for the committed state instead of the perturbed one, and the tangent would be zero. run() therefore refuses to work when such a published force is present.
◆ TangentOutputModule()
| TangentOutputModule::TangentOutputModule |
( |
const String & |
name = "tangentOutput" | ) |
|
|
explicit |
- Parameters
-
| [in] | name | Module name (default: "tangentOutput") |
◆ ~TangentOutputModule()
| TangentOutputModule::~TangentOutputModule |
( |
| ) |
|
|
protectedvirtual |
◆ declare()
| void TangentOutputModule::declare |
( |
| ) |
|
|
static |
◆ init()
| Module::Status TangentOutputModule::init |
( |
const Properties & |
conf, |
|
|
const Properties & |
props, |
|
|
const Properties & |
globdat |
|
) |
| |
|
overridevirtual |
- Parameters
-
| [out] | conf | Configuration properties (output) |
| [in] | props | User properties |
| [in] | globdat | Global data container |
- Returns
- Module status
◆ makeNew()
| Ref< Module > TangentOutputModule::makeNew |
( |
const String & |
name, |
|
|
const Properties & |
conf, |
|
|
const Properties & |
props, |
|
|
const Properties & |
globdat |
|
) |
| |
|
static |
- Parameters
-
| [in] | name | Module name |
| [out] | conf | Configuration properties (output) |
| [in] | props | User properties |
| [in] | globdat | Global data container |
- Returns
- New module instance
◆ run()
| Module::Status TangentOutputModule::run |
( |
const Properties & |
globdat | ) |
|
|
overridevirtual |
- Parameters
-
| [in] | globdat | Global data container |
- Returns
- Module status
◆ shutdown()
| void TangentOutputModule::shutdown |
( |
const Properties & |
globdat | ) |
|
|
overridevirtual |
- Parameters
-
| [in] | globdat | Global data container |
◆ TYPE_NAME
| const char * TangentOutputModule::TYPE_NAME = "TangentOutput" |
|
static |