MGIS
Loading...
Searching...
No Matches
mgis::behaviour::MaterialStateManager Struct Reference

structure in charge of handling the state of a material in an optimized way. Here, the "material" is defined by a behaviour and a number of integration points. More...

#include </home/runner/work/MFrontGenericInterfaceSupport/MFrontGenericInterfaceSupport/include/MGIS/Behaviour/MaterialStateManager.hxx>

Classes

struct  FieldHolder
 
struct  MutableFieldHolder
 a structure defining a mutable field holder More...
 

Public Types

enum  UpdatePolicy { UPDATE , NOUPDATE }
 enum used to express if a variable (material property, external state variables, mass density) shall be updated or reverted automatically
 
using StorageMode = mgis::StorageMode
 a simple alias
 

Public Member Functions

 MaterialStateManager (const Behaviour &, const size_type)
 
 MaterialStateManager (const Behaviour &, const size_type, const MaterialStateManagerInitializer &)
 
 ~MaterialStateManager ()
 destructor
 

Public Attributes

std::span< mgis::realgradients
 view to the values of the gradients
 
const size_type gradients_stride
 stride associate with the gradients
 
std::span< mgis::realthermodynamic_forces
 view to the values of the thermodynamic_forces
 
const size_type thermodynamic_forces_stride
 stride associate with the thermodynamic forces
 
std::span< mgis::realstored_energies
 view to the values to the stored energy.
 
std::span< mgis::realdissipated_energies
 view to the values to the dissipated energies
 
std::map< std::string, FieldHolder, std::less<> > material_properties
 material properties
 
std::optional< MutableFieldHoldermass_density
 mass density
 
std::span< mgis::realinternal_state_variables
 view to the values of the internal state variables
 
const size_type internal_state_variables_stride
 stride associate with internal state variables.
 
std::map< std::string, FieldHolder, std::less<> > external_state_variables
 values of the external state variables
 
const size_type n
 number of integration points
 
const Behaviourb
 underlying behaviour
 

Static Public Attributes

static constexpr auto LOCAL_STORAGE = mgis::StorageMode::LOCAL_STORAGE
 
static constexpr auto EXTERNAL_STORAGE
 

Detailed Description

structure in charge of handling the state of a material in an optimized way. Here, the "material" is defined by a behaviour and a number of integration points.

The following design choices were made:

  • The material properties and the external state variables are treated individually. They can be uniform or spatially variable.
  • The internal state variables are treated as a block.

Constructor & Destructor Documentation

◆ MaterialStateManager() [1/2]

mgis::behaviour::MaterialStateManager::MaterialStateManager ( const Behaviour ,
const size_type   
)
Parameters
[in]behaviourbehaviour
[in]snumber of integration points

◆ MaterialStateManager() [2/2]

mgis::behaviour::MaterialStateManager::MaterialStateManager ( const Behaviour ,
const size_type  ,
const MaterialStateManagerInitializer  
)
Parameters
[in]behaviourbehaviour
[in]snumber of integration points
[in]iinitializer

Member Data Documentation

◆ external_state_variables

std::map<std::string, FieldHolder, std::less<> > mgis::behaviour::MaterialStateManager::external_state_variables

values of the external state variables

The external state variables can be uniform or not. In the non uniform case, the data can be hold by the structure (std::vector<real>) or simply borrow a reference (std::span<mgis::real> case).

◆ EXTERNAL_STORAGE

constexpr auto mgis::behaviour::MaterialStateManager::EXTERNAL_STORAGE
staticconstexpr
Initial value:
=
@ EXTERNAL_STORAGE
use std::span to store the data

◆ internal_state_variables_stride

const size_type mgis::behaviour::MaterialStateManager::internal_state_variables_stride

stride associate with internal state variables.

Note
this is also the size of an array containing all the internal state variables for one integration point.

◆ mass_density

std::optional<MutableFieldHolder> mgis::behaviour::MaterialStateManager::mass_density

mass density

The mass density can be uniform or not. In the non uniform case, the data can be hold by the structure (std::vector<real>) or simply borrow a reference (std::span<mgis::real> case).

◆ material_properties

std::map<std::string, FieldHolder, std::less<> > mgis::behaviour::MaterialStateManager::material_properties

material properties

The material properties can be uniform or not. In the non uniform case, the data can be hold by the structure (std::vector<real>) or simply borrow a reference (std::span<mgis::real> case).


The documentation for this struct was generated from the following file: