OGS
|
Provides convenient access to the individual blocks of MFront's thermodynamic forces data.
DisplacementDim | the displacement dimension |
TDynForces | a list (of types) of thermodynamic forces |
"Thermodynamic forces" is MFront nomenclature for the data an MFront behaviour computes.
TDynForces
is a list of types. Each is expected to behave like Strain and the other classes in Variable.h.
MFront's thermodynamic forces are stored in a single vector of double values. The data of forces that come earlier in TDynForces
are stored earlier in MFront's data.
Definition at line 42 of file ThermodynamicForcesView.h.
#include <ThermodynamicForcesView.h>
Classes | |
struct | SizeOf |
A template metafunction accessing the size of the given Variable . More... | |
Public Member Functions | |
template<typename Force > | |
auto | block (Force force, OGSMFrontThermodynamicForcesData const &data) const |
Read-only access to the data for the given thermodynamic force Force . | |
template<typename Force > | |
auto | block (Force, std::vector< double > const &data) const |
Overload taking a std::vector. | |
template<typename Force , std::enable_if_t< SizeOf< Force >::value==1, bool > = true> | |
double & | block (Force force, OGSMFrontThermodynamicForcesData &data) const |
template<typename Force , std::enable_if_t< SizeOf< Force >::value==1, bool > = true> | |
double & | block (Force, std::vector< double > &data) const |
Overload taking a std::vector. | |
template<typename Force , std::enable_if_t< SizeOf< Force >::value !=1, bool > = true> | |
auto | block (Force force, OGSMFrontThermodynamicForcesData &data) const |
template<typename Force , std::enable_if_t< SizeOf< Force >::value !=1, bool > = true> | |
auto | block (Force, std::vector< double > &data) const |
Overload taking a std::vector. | |
Static Public Attributes | |
static constexpr std::size_t | data_size_all_forces |
The passed data to the block() methods must have this size. | |
Static Private Member Functions | |
template<typename Force > | |
static constexpr std::size_t | dataOffset () |
template<typename Force , typename DataVector > | |
static constexpr auto | asEigenMap (DataVector &data) |
Access a block of the given data as an Eigen::Map. | |
template<typename Force , typename DataVector > | |
static constexpr auto & | asDouble (DataVector &data) |
Access a block of the given data as a double value. | |
|
inlinestaticconstexprprivate |
Access a block of the given data
as a double value.
Definition at line 97 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::data_size_all_forces, and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::dataOffset().
Referenced by MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block().
|
inlinestaticconstexprprivate |
Access a block of the given data
as an Eigen::Map.
Definition at line 74 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::data_size_all_forces, and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::dataOffset().
Referenced by MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block().
|
inline |
Read-write access to the data for the given thermodynamic force Force
.
This overload is chosen if Force
has one component.
Definition at line 140 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesData::data.
|
inline |
Read-write access to the data for the given thermodynamic force Force
.
This overload is chosen if Force
has more than one component.
Definition at line 159 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesData::data.
|
inline |
Read-only access to the data for the given thermodynamic force Force
.
Definition at line 112 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesData::data.
Referenced by MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::block().
|
inline |
Overload taking a std::vector.
Definition at line 148 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asDouble().
|
inline |
Overload taking a std::vector.
Definition at line 167 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asEigenMap().
|
inline |
Overload taking a std::vector.
Definition at line 119 of file ThermodynamicForcesView.h.
References MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asDouble(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asEigenMap().
|
inlinestaticconstexprprivate |
Computes the offset of the given Force's
data in MFront's thermodynamic forces data.
Definition at line 57 of file ThermodynamicForcesView.h.
Referenced by MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asDouble(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asEigenMap().
|
staticconstexpr |
The passed data to the block() methods must have this size.
Definition at line 173 of file ThermodynamicForcesView.h.
Referenced by MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asDouble(), and MaterialLib::Solids::MFront::OGSMFrontThermodynamicForcesView< DisplacementDim, TDynForces >::asEigenMap().