#include <materialtype.hpp>
Public Types | |
typedef unsigned int | index_type |
typedef std::vector< int > | int_vector_type |
typedef double | real_type |
typedef StrainMaterialType * | StrainMaterialTypePtr |
typedef std::vector < material::TDynamicSparseMatrix > | TVector6SparseMatrix |
typedef Eigen::Matrix< bool, NUMBER_OF_SUPPORTED_STRAINS, 1 > | type_check_supported_strains |
a data type for checking the supported strains: | |
enum | type_definition_data_slots { PROPERTY_MASS_DENSITY = 0, PROPERTY_YOUNG_MODULE, PROPERTY_POISSON_RATIO } |
a type that defines some standard slots in real_definition_data | |
typedef boost::function< void(const Material &material) > | Type_func_check_properties |
typedef boost::function< void(const MaterialPoint &mat_point, const TMatrix3 &defgrad, TVectorEnergy &energy_density, TVector9 &stress) > | Type_func_energy_n_stress_defgrad |
typedef boost::function< void(MaterialPoint &mat_point, const TMatrix3 &defgrad, TVectorEnergy &energy_density, TVector9 &stress) > | Type_func_energy_n_stress_n_update_defgrad |
typedef boost::function< void(MaterialPoint &mat_point, const material::TVector6 &strain, material::TVectorEnergy &energy_density, material::TVector6 &stress) > | Type_func_energy_n_stress_n_updateFEM |
typedef boost::function< void(const MaterialPoint &mat_point, const material::TVector6 &strain, material::TVectorEnergy &energy_density, material::TVector6 &stress) > | Type_func_energy_n_stressFEM |
typedef boost::function< void(MaterialPoint &mat_point, const TMatrix3 &defgrad) > | Type_func_init_defgrad |
typedef boost::function< void(MaterialPoint &mat_point, const material::TVector6 &strain) > | Type_func_initFEM |
typedef boost::function< void(Material &material) > | Type_func_precompute_material |
typedef boost::function< void(const MaterialPoint &mat_point, const TMatrix3 &defgrad, TVector9 &stress, TSparseMatrix &Dmat) > | Type_func_stress_n_tensor_defgrad |
typedef boost::function< void(const MaterialPoint &mat_point, const material::TVector6 &strain, material::TVector6 &stress, material::TMatrix6 &Dmat) > | Type_func_stress_n_tensorFEM |
typedef boost::function< void(const MaterialPoint &mat_point, const TMatrix3 &defgrad, TSparseMatrix &Dmat) > | Type_func_tensor_defgrad |
typedef boost::function< void(MaterialPoint &mat_point, const TMatrix3 &defgrad) > | Type_func_update_defgrad |
typedef boost::function< void(MaterialPoint &mat_point, const material::TVector6 &strain) > | Type_func_updateFEM |
typedef StrainMaterialTypePtr | type_strainmaterials [NUMBER_OF_SUPPORTED_STRAINS] |
a data type containing the supported strain formulations: | |
enum | type_supported_strain_slots { SUPPORTS_DEFORMATION_GRADIENT = 0, SUPPORTS_STRAIN_CAUCHY, SUPPORTS_STRAIN_GREENLAGRANGE, SUPPORTS_STRAIN_HENCKY, NUMBER_OF_SUPPORTED_STRAINS } |
a type that defines the slots in supported_strain | |
typedef std::map < type_supported_strain_slots, std::string > | type_supported_strains_index_to_string |
typedef std::map< std::string, type_supported_strain_slots > | type_supported_strains_string_to_index |
typedef unsigned int | uint |
typedef unsigned short | ushort |
Public Member Functions | |
void | createDefaultWrappers () |
void | createDefaultWrappers (const type_check_supported_strains &wrapped_strains) |
const std::string & | getIdent () const |
returns the material type as a string | |
const index_type & | getIndex () const |
returns the specific integration point data | |
const type_strainmaterials & | getStrainMaterials () const |
getter for the strain formulations: | |
const type_check_supported_strains & | getSupportedStrain () const |
getter for supported_strain | |
MaterialType (const count_type &theindex, const std::string &theident, const type_check_supported_strains &supported_strain_) | |
constructor; initializes all fields and sets all pointers in 'strain_materials' to '0' | |
Static Public Member Functions | |
static const TVector6SparseMatrix | get2ndGreenLagrangeStrainDerivative2 () |
static void | getCauchyStrain2 (const material::TMatrix3 &defgrad, material::TVector6 &strain) |
static const material::TSparseMatrix | getCauchyStrainDer2 () |
static const material::TMatrix9x6 | getCauchyStrainDer3 () |
static void | getGreenLagrangeStrain2 (const material::TMatrix3 &defgrad, material::TVector6 &strain, material::TMatrix9x6 &strain_der) |
static void | getGreenLagrangeStrain2 (const material::TMatrix3 &defgrad, material::TVector6 &strain, material::TSparseMatrix &strain_der) |
static void | getHenckyStrain (const material::TMatrix3 &defgrad, material::TVector6 &strain, material::TMatrix9x6 &strain_der) |
static void | getHenckyStrain (const material::TMatrix3 &defgrad, material::TVector6 &strain) |
static const std::string | provideStrainString (const type_supported_strain_slots &strain) |
provides a string representation of the enum type_definition_data_slots | |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef unsigned int | count_type |
Static Public Attributes | |
static const type_supported_strains_index_to_string | supported_strains_index_to_string |
a static map that converts indices into strings: | |
static const type_supported_strains_string_to_index | supported_strains_string_to_index |
a static map that converts strings into indices: | |
Protected Member Functions | |
void | defCheckMaterialProperties (const Material &material) const |
void | defComputeEnergyAndStressAndUpdateCAUCHY (MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeEnergyAndStressAndUpdateFEM (MaterialPoint &mat_point, const TVector6 &strain, TVectorEnergy &energy_density, TVector6 &stress) const |
void | defComputeEnergyAndStressAndUpdateGREENLAGRANGE (MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeEnergyAndStressAndUpdateHENCKY (MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeEnergyAndStressCAUCHY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeEnergyAndStressFEM (const MaterialPoint &mat_point, const material::TVector6 &strain, material::TVectorEnergy &energy_density, material::TVector6 &stress) const |
void | defComputeEnergyAndStressGREENLAGRANGE (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeEnergyAndStressHENCKY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeStabilizingEnergyAndStressCAUCHY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeStabilizingEnergyAndStressFEM (const MaterialPoint &mat_point, const material::TVector6 &strain, material::TVectorEnergy &energy_density, material::TVector6 &stress) const |
void | defComputeStabilizingEnergyAndStressGREENLAGRANGE (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeStabilizingEnergyAndStressHENCKY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TVectorEnergy &energy_density, material::TVector9 &stress) const |
void | defComputeStabilizingStressAndTensorFEM (const MaterialPoint &mat_point, const material::TVector6 &strain, material::TVector6 &stress, material::TMatrix6 &Dmat) const |
void | defComputeStabilizingTensorCAUCHY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TSparseMatrix &Dmat) const |
void | defComputeStabilizingTensorGREENLAGRANGE (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TSparseMatrix &Dmat) const |
void | defComputeStabilizingTensorHENCKY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TSparseMatrix &Dmat) const |
void | defComputeStressAndTensorFEM (const MaterialPoint &mat_point, const material::TVector6 &strain, material::TVector6 &stress, material::TMatrix6 &Dmat) const |
void | defComputeTensorCAUCHY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TSparseMatrix &Dmat) const |
void | defComputeTensorGREENLAGRANGE (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TSparseMatrix &Dmat) const |
void | defComputeTensorHENCKY (const MaterialPoint &mat_point, const material::TMatrix3 &defgrad, material::TSparseMatrix &Dmat) const |
void | defInitStateDataCAUCHY (MaterialPoint &mat_point, const material::TMatrix3 &defgrad) const |
void | defInitStateDataFEM (MaterialPoint &mat_point, const material::TVector6 &strain) const |
void | defInitStateDataGREENLAGRANGE (MaterialPoint &mat_point, const material::TMatrix3 &defgrad) const |
void | defInitStateDataHENCKY (MaterialPoint &mat_point, const material::TMatrix3 &defgrad) const |
void | defPrecomputeMaterial (Material &material) const |
void | defUpdateStateDataCAUCHY (MaterialPoint &mat_point, const material::TMatrix3 &defgrad) const |
void | defUpdateStateDataFEM (MaterialPoint &mat_point, const material::TVector6 &strain) const |
void | defUpdateStateDataGREENLAGRANGE (MaterialPoint &mat_point, const material::TMatrix3 &defgrad) const |
void | defUpdateStateDataHENCKY (MaterialPoint &mat_point, const material::TMatrix3 &defgrad) const |
Protected Attributes | |
Type_func_check_properties | func_check_propertiesFEM |
a function checking the material properties; is used if the FEM wrapper is applied. | |
Type_func_energy_n_stress_n_updateFEM | func_get_energy_n_stress_n_updateFEM |
Type_func_energy_n_stressFEM | func_get_energy_n_stressFEM |
a function computing the energy density and stress, default: throws error; mode: symmetric strain tensor (in vector form) | |
Type_func_energy_n_stressFEM | func_get_stabilizing_energy_n_stressFEM |
a function computing the stabilizing energy density and stress, default: throws error; mode: symmetric strain tensor (in vector form) | |
Type_func_stress_n_tensorFEM | func_get_stabilizing_stress_n_tensorFEM |
a function computing the stabilizing stress and material tensor, default: throws error; mode: symmetric strain tensor (in vector form) | |
Type_func_stress_n_tensorFEM | func_get_stress_n_tensorFEM |
a function computing the stress and material tensor, default: throws error; mode: symmetric strain tensor (in vector form) | |
Type_func_initFEM | func_init_state_dataFEM |
a function initializing all state variables, default: setting all state variables to zero; mode: symmetric strain tensor (in vector form) | |
Type_func_precompute_material | func_precompute_materialFEM |
a function precomputing the material; is used if the FEM wrapper is applied. | |
Type_func_updateFEM | func_update_state_dataFEM |
a function updating internal state variables, default: does nothing; mode: symmetric strain tensor (in vector form) | |
const std::string | ident |
the identifier | |
const index_type | index |
the global index | |
unsigned int | num_int_definition_dataFEM |
unsigned int | num_int_state_dataFEM |
unsigned int | num_real_definition_dataFEM |
unsigned int | num_real_state_dataFEM |
type_strainmaterials | strain_materials |
contains the material interfaces for all supported strain formulations: | |
type_check_supported_strains | supported_strain |
defines which strain types are supported | |
Classes | |
struct | StrainMaterialType |
a class that encapsulates the material routines for a specific strain formulation More... |
void sfem::material::MaterialType::createDefaultWrappers | ( | const type_check_supported_strains & | wrapped_strains | ) |
creates default wrappers for all strain formulations given by 'wrapped_strains'. default wrappers are functions that wrap the corresponding strain formulation around the proper "xxxFEM" methods the function must be called AFTER all functors/internal data are set!
supported_strain | default value are all strains of this material |
const index_type& sfem::material::MaterialType::getIndex | ( | ) | const [inline] |
returns the specific integration point data
intpt | ... number of intpt returns the material type |
Type_func_energy_n_stress_n_updateFEM sfem::material::MaterialType::func_get_energy_n_stress_n_updateFEM [protected] |
a function computing the energy density and stress, and performing an update of the state variables, default: calls func_get_energy_n_stress and func_update_state_data; mode: symmetric strain tensor (in vector form)