OGS
|
Provides convenient access to the individual blocks of MFront's tangent operator data.
DisplacementDim | the displacement dimension |
ForcesGradsCombinations | a list of pairs types corresponding to the tangent operator blocks' variables. See ForcesGradsCombinations template for details. |
MFront's tangent operator blocks are stored in a single vector of double values. The implementer of an MFront behaviour can decide which blocks she wants to provide and in which order.
Definition at line 93 of file TangentOperatorBlocksView.h.
#include <TangentOperatorBlocksView.h>
Public Member Functions | |
OGSMFrontTangentOperatorBlocksView (std::vector< std::pair< mgis::behaviour::Variable, mgis::behaviour::Variable > > const &to_blocks) | |
template<typename Force , typename GradOrExtStateVar > | |
auto | block (Force, GradOrExtStateVar, OGSMFrontTangentOperatorData const &data) const |
Static Private Member Functions | |
static constexpr std::size_t | size (mgis::behaviour::Variable::Type vt) |
template<typename Force , typename GradOrExtStateVar > | |
static constexpr std::size_t | blockIndex () |
Computes the index of a tangent operator block in the offsets_ array. | |
Private Attributes | |
std::array< std::size_t, boost::mp11::mp_size< ForcesGradsCombinations >::value > | offsets_ |
Static Private Attributes | |
static constexpr std::size_t | invalid_offset_ = -1 |
|
inlineexplicit |
Constructs a view for the tangent operator blocks to_blocks
of some MFront behaviour.
Definition at line 104 of file TangentOperatorBlocksView.h.
References MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::block(), MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::blockIndex(), ERR(), MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::invalid_offset_, MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::offsets_, OGS_FATAL, and MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::size().
|
inline |
Read access to the block dForce/dGradOrExtStateVar.
Returns an Eigen::Map, or a double value in the 1x1 case.
If the block is not provided by the MFront behavior, the returned data is all zero.
Definition at line 165 of file TangentOperatorBlocksView.h.
References MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::blockIndex(), MaterialLib::Solids::MFront::OGSMFrontTangentOperatorData::data, MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::invalid_offset_, MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::offsets_, MaterialLib::Solids::MFront::detail::OGSMFrontTangentOperatorBlocksViewZeroes, and MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::size().
|
inlinestaticconstexprprivate |
Computes the index of a tangent operator block in the offsets_ array.
Definition at line 233 of file TangentOperatorBlocksView.h.
Referenced by MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::OGSMFrontTangentOperatorBlocksView(), and MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::block().
|
inlinestaticconstexprprivate |
Definition at line 211 of file TangentOperatorBlocksView.h.
References MathLib::KelvinVector::kelvin_vector_dimensions(), OGS_FATAL, MaterialPropertyLib::tensorSize(), and BaseLib::to_underlying().
Referenced by MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::OGSMFrontTangentOperatorBlocksView(), and MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::block().
|
staticconstexprprivate |
Indicates that the associated tangent operator block is not present in the data.
Definition at line 99 of file TangentOperatorBlocksView.h.
Referenced by MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::OGSMFrontTangentOperatorBlocksView(), and MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::block().
|
private |
Stores the data offsets of each tangent operator block.
A value of invalid_offset_ indicates that the tangent operator block is not provided by the MFront behaviour.
Definition at line 246 of file TangentOperatorBlocksView.h.
Referenced by MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::OGSMFrontTangentOperatorBlocksView(), and MaterialLib::Solids::MFront::OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations >::block().