sfem::material::MaterialType Class Reference

... the base class for material laws More...

#include <materialtype.hpp>

Collaboration diagram for sfem::material::MaterialType:

Collaboration graph
[legend]

List of all members.

Public Types

typedef unsigned int index_type
typedef std::vector< int > int_vector_type
typedef double real_type
typedef StrainMaterialTypeStrainMaterialTypePtr
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_strainmaterialsgetStrainMaterials () 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...


Detailed Description

... the base class for material laws

Member Function Documentation

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!

Parameters:
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

Parameters:
intpt ... number of intpt returns the material type


Member Data Documentation

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)


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

Generated on Wed Nov 17 17:35:54 2010 for 'sfem' Module Programming Interface by  doxygen 1.5.6