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
 a simple alias 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, FieldHoldermaterial_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).
 
std::optional< FieldHoldermass_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).
 
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, FieldHolderexternal_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).
 
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_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.

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