MGIS
Loading...
Searching...
No Matches
MaterialStateManager.hxx File Reference
#include <map>
#include <span>
#include <string>
#include <vector>
#include <variant>
#include <optional>
#include <string_view>
#include "MGIS/Config.hxx"
#include "MGIS/StorageMode.hxx"

Classes

struct  mgis::behaviour::MaterialStateManagerInitializer
 a structure in charge of holding information on how a material state manager shall be initialized. It may contain pointers to externally allocated data, that won't be handled by the final state manager. If a pointer is not initialized, the material state manager will allocate and handle memory internally. More...
 
struct  mgis::behaviour::MaterialStateManager
 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...
 
struct  mgis::behaviour::MaterialStateManager::FieldHolder
 a simple alias More...
 

Namespaces

namespace  mgis
 the namespace mgis encloses all the MGIS project.
 

Functions

MGIS_EXPORT void mgis::behaviour::setMaterialProperty (MaterialStateManager &, const std::string_view &, const real, const MaterialStateManager::UpdatePolicy=MaterialStateManager::UPDATE)
 set the given material property
 
MGIS_EXPORT void mgis::behaviour::setMaterialProperty (MaterialStateManager &, const std::string_view &, const std::span< mgis::real > &, const MaterialStateManager::StorageMode=MaterialStateManager::LOCAL_STORAGE, const MaterialStateManager::UpdatePolicy=MaterialStateManager::UPDATE)
 set the given material property
 
MGIS_EXPORT bool mgis::behaviour::isMaterialPropertyDefined (const MaterialStateManager &, const std::string_view &)
 
MGIS_EXPORT bool mgis::behaviour::isMaterialPropertyUniform (const MaterialStateManager &, const std::string_view &)
 chek if the given material property is uniform
 
MGIS_EXPORT void mgis::behaviour::setMassDensity (MaterialStateManager &, const real, const MaterialStateManager::UpdatePolicy=MaterialStateManager::UPDATE)
 set the mass density
 
MGIS_EXPORT void mgis::behaviour::setMassDensity (MaterialStateManager &, const std::span< mgis::real > &, const MaterialStateManager::StorageMode=MaterialStateManager::LOCAL_STORAGE, const MaterialStateManager::UpdatePolicy=MaterialStateManager::UPDATE)
 set the mass density
 
MGIS_EXPORT bool mgis::behaviour::isMassDensityDefined (const MaterialStateManager &)
 
MGIS_EXPORT bool mgis::behaviour::isMassDensityUniform (const MaterialStateManager &)
 
MGIS_EXPORT void mgis::behaviour::setExternalStateVariable (MaterialStateManager &, const std::string_view &, const real, const MaterialStateManager::UpdatePolicy=MaterialStateManager::UPDATE)
 set the given external state variable
 
MGIS_EXPORT void mgis::behaviour::setExternalStateVariable (MaterialStateManager &, const std::string_view &, const std::span< mgis::real > &, const MaterialStateManager::StorageMode=MaterialStateManager::LOCAL_STORAGE, const MaterialStateManager::UpdatePolicy=MaterialStateManager::UPDATE)
 set the given external state variable
 
MGIS_EXPORT bool mgis::behaviour::isExternalStateVariableDefined (const MaterialStateManager &, const std::string_view &)
 
MGIS_EXPORT bool mgis::behaviour::isExternalStateVariableUniform (const MaterialStateManager &, const std::string_view &)
 
MGIS_EXPORT void mgis::behaviour::updateValues (MaterialStateManager &, const MaterialStateManager &)
 update the values of a state from another state
 
MGIS_EXPORT void mgis::behaviour::extractInternalStateVariable (std::span< mgis::real >, const mgis::behaviour::MaterialStateManager &, const std::string_view)
 extract an internal state variable
 

Detailed Description

Author
Thomas Helfer
Date
05/08/2018

Function Documentation

◆ extractInternalStateVariable()

MGIS_EXPORT void mgis::behaviour::extractInternalStateVariable ( std::span< mgis::real ,
const mgis::behaviour::MaterialStateManager ,
const std::string_view   
)

extract an internal state variable

Parameters
[out]obuffer in which the values of the given internal state variable is stored
[in]smaterial state manager
[in]nname of the internal state variables
Note
the output buffer must be allocated properly

◆ isExternalStateVariableDefined()

MGIS_EXPORT bool mgis::behaviour::isExternalStateVariableDefined ( const MaterialStateManager ,
const std::string_view &   
)
Returns
true if the given external state variable is defined.
Parameters
[out]mmaterial data manager
[in]nname
[in]vvalues
[in]sstorage mode

◆ isExternalStateVariableUniform()

MGIS_EXPORT bool mgis::behaviour::isExternalStateVariableUniform ( const MaterialStateManager ,
const std::string_view &   
)
Returns
true if the given external state variable is uniform.
Parameters
[out]mmaterial data manager
[in]nname

◆ isMassDensityDefined()

MGIS_EXPORT bool mgis::behaviour::isMassDensityDefined ( const MaterialStateManager )
Returns
true if the given external state variable is defined.
Parameters
[out]mmaterial data manager

◆ isMassDensityUniform()

MGIS_EXPORT bool mgis::behaviour::isMassDensityUniform ( const MaterialStateManager )
Returns
true if the mass density is uniform
Parameters
[out]mmaterial data manager

◆ isMaterialPropertyDefined()

MGIS_EXPORT bool mgis::behaviour::isMaterialPropertyDefined ( const MaterialStateManager ,
const std::string_view &   
)
Returns
true if the given external state variable is defined.
Parameters
[out]mmaterial data manager
[in]nname
[in]vvalues
[in]sstorage mode

◆ isMaterialPropertyUniform()

MGIS_EXPORT bool mgis::behaviour::isMaterialPropertyUniform ( const MaterialStateManager ,
const std::string_view &   
)

chek if the given material property is uniform

Parameters
[out]mmaterial data manager
[in]nname

◆ setExternalStateVariable() [1/2]

MGIS_EXPORT void mgis::behaviour::setExternalStateVariable ( MaterialStateManager ,
const std::string_view &  ,
const real  ,
const MaterialStateManager::UpdatePolicy  = MaterialStateManager::UPDATE 
)

set the given external state variable

Parameters
[out]mmaterial data manager
[in]nname
[in]vvalue
[in]pupdate policy

◆ setExternalStateVariable() [2/2]

MGIS_EXPORT void mgis::behaviour::setExternalStateVariable ( MaterialStateManager ,
const std::string_view &  ,
const std::span< mgis::real > &  ,
const MaterialStateManager::StorageMode  = MaterialStateManager::LOCAL_STORAGE,
const MaterialStateManager::UpdatePolicy  = MaterialStateManager::UPDATE 
)

set the given external state variable

Parameters
[out]mmaterial data manager
[in]nname
[in]vvalues
[in]sstorage mode
[in]pupdate policy

◆ setMassDensity() [1/2]

MGIS_EXPORT void mgis::behaviour::setMassDensity ( MaterialStateManager ,
const real  ,
const MaterialStateManager::UpdatePolicy  = MaterialStateManager::UPDATE 
)

set the mass density

Parameters
[out]mmaterial data manager
[in]vvalue
[in]pupdate policy

◆ setMassDensity() [2/2]

MGIS_EXPORT void mgis::behaviour::setMassDensity ( MaterialStateManager ,
const std::span< mgis::real > &  ,
const MaterialStateManager::StorageMode  = MaterialStateManager::LOCAL_STORAGE,
const MaterialStateManager::UpdatePolicy  = MaterialStateManager::UPDATE 
)

set the mass density

Parameters
[out]mmaterial data manager
[in]vvalues
[in]sstorage mode
[in]pupdate policy

◆ setMaterialProperty() [1/2]

MGIS_EXPORT void mgis::behaviour::setMaterialProperty ( MaterialStateManager ,
const std::string_view &  ,
const real  ,
const MaterialStateManager::UpdatePolicy  = MaterialStateManager::UPDATE 
)

set the given material property

Parameters
[out]mmaterial data manager
[in]nname
[in]vvalue
[in]pupdate policy

◆ setMaterialProperty() [2/2]

MGIS_EXPORT void mgis::behaviour::setMaterialProperty ( MaterialStateManager ,
const std::string_view &  ,
const std::span< mgis::real > &  ,
const MaterialStateManager::StorageMode  = MaterialStateManager::LOCAL_STORAGE,
const MaterialStateManager::UpdatePolicy  = MaterialStateManager::UPDATE 
)

set the given material property

Parameters
[out]mmaterial data manager
[in]nname
[in]vvalues
[in]sstorage mode
[in]pupdate policy

◆ updateValues()

MGIS_EXPORT void mgis::behaviour::updateValues ( MaterialStateManager ,
const MaterialStateManager  
)

update the values of a state from another state

Parameters
[out]ooutput state
[out]iinput state