CSMm 2.5.Constitutive Laws
Line 10: | Line 10: | ||
Right now, the flags used are only local flags (options) for the computation of the material response. | Right now, the flags used are only local flags (options) for the computation of the material response. | ||
− | + | * '''Current Avaliable Flags:''' * | |
List of ''LOCAL'' flags, they will be used in the Parameters.mOptions: | List of ''LOCAL'' flags, they will be used in the Parameters.mOptions: | ||
Line 38: | Line 38: | ||
There is also a definition of the strain and stress measures that we are going to work with. | There is also a definition of the strain and stress measures that we are going to work with. | ||
− | + | * '''Strain and stress working measures:''' * | |
They are defined in to two '''''enum''''' arrays: | They are defined in to two '''''enum''''' arrays: | ||
− | + | * '''STRAIN MEASURES:''' * | |
'''StrainMeasure_Infinitesimal''', Infinitesimal strain measure related to small displacements | '''StrainMeasure_Infinitesimal''', Infinitesimal strain measure related to small displacements | ||
Line 57: | Line 57: | ||
'''StrainMeasure_Hencky_Spatial''', Hencky strain measure expressed in the current configuration | '''StrainMeasure_Hencky_Spatial''', Hencky strain measure expressed in the current configuration | ||
− | + | * '''STRESS MEASURES:''' * | |
'''StressMeasure_PK1''', First Piola-Kirchhoff stress related to the reference configuration non-symmetric | '''StressMeasure_PK1''', First Piola-Kirchhoff stress related to the reference configuration non-symmetric | ||
Line 75: | Line 75: | ||
{ | { | ||
− | + | * PARAMETER OPIONS: | |
'''mOptions''' flags for the current Constitutive Law Parameters (input data) | '''mOptions''' flags for the current Constitutive Law Parameters (input data) | ||
− | + | * KINEMATIC PARAMETERS: | |
'''mDeterminantF''' copy of the determinant of the Current DeformationGradient (although Current F is also included as a matrix) (input data) | '''mDeterminantF''' copy of the determinant of the Current DeformationGradient (although Current F is also included as a matrix) (input data) | ||
Line 86: | Line 86: | ||
− | NOTE: Pointers are used only to point to a certain variable, no ''new'' or ''malloc'' can be used for this Parameters | + | --NOTE: Pointers are used only to point to a certain variable, no ''new'' or ''malloc'' can be used for this Parameters-- |
'''mpDeformationGradientF''' pointer to the current deformation gradient (can be an empty matrix if a linear strain measure is used) (input data) | '''mpDeformationGradientF''' pointer to the current deformation gradient (can be an empty matrix if a linear strain measure is used) (input data) | ||
Line 99: | Line 99: | ||
− | + | * GEOMETRIC PARAMETERS: | |
'''mpShapeFunctionsValues''' pointer to the shape functions values in the current integration point (input data) | '''mpShapeFunctionsValues''' pointer to the shape functions values in the current integration point (input data) | ||
Line 108: | Line 108: | ||
− | + | * MATERIAL PROPERTIES: | |
'''mpMaterialProperties''' pointer to the material Properties object (input data) | '''mpMaterialProperties''' pointer to the material Properties object (input data) | ||
− | + | * PROCESS PROPERTIES: | |
'''mpCurrentProcessInfo''' pointer to current ProcessInfo instance (input data) | '''mpCurrentProcessInfo''' pointer to current ProcessInfo instance (input data) | ||
Line 127: | Line 127: | ||
General Method to get the material response in a specific ''StressMeasure'': | General Method to get the material response in a specific ''StressMeasure'': | ||
− | '''CalculateMaterialResponse( ''Parameters&'' , ''StressMeasure'' )''' | + | '''CalculateMaterialResponse( ''Parameters&'' , ''StressMeasure'' )''' |
Specific Methods for the requested stress measures: | Specific Methods for the requested stress measures: | ||
− | '''CalculateMaterialResponsePK1( ''Parameters&'' )''' | + | '''CalculateMaterialResponsePK1( ''Parameters&'' )''' |
− | '''CalculateMaterialResponsePK2( ''Parameters&'' )''' | + | '''CalculateMaterialResponsePK2( ''Parameters&'' )''' |
− | '''CalculateMaterialResponseKirchhoff( ''Parameters&'' )''' | + | '''CalculateMaterialResponseKirchhoff( ''Parameters&'' )''' |
− | '''CalculateMaterialResponseCauchy( ''Parameters&'' )''' | + | '''CalculateMaterialResponseCauchy( ''Parameters&'' )''' |
Line 146: | Line 146: | ||
General Method to finalize the material response in a specific ''StressMeasure'': | General Method to finalize the material response in a specific ''StressMeasure'': | ||
− | '''FinalizeMaterialResponse( ''Parameters&'' , ''StressMeasure'' )''' | + | '''FinalizeMaterialResponse( ''Parameters&'' , ''StressMeasure'' )''' |
Specific Methods for the requested stress measures finalization: | Specific Methods for the requested stress measures finalization: | ||
− | '''FinalizeMaterialResponsePK1( ''Parameters&'' )''' | + | '''FinalizeMaterialResponsePK1( ''Parameters&'' )''' |
− | '''FinalizeMaterialResponsePK2( ''Parameters&'' )''' | + | '''FinalizeMaterialResponsePK2( ''Parameters&'' )''' |
− | '''FinalizeMaterialResponseKirchhoff( ''Parameters&'' )''' | + | '''FinalizeMaterialResponseKirchhoff( ''Parameters&'' )''' |
− | '''FinalizeMaterialResponseCauchy( ''Parameters&'' )''' | + | '''FinalizeMaterialResponseCauchy( ''Parameters&'' )''' |
--- to be continued | --- to be continued |
Revision as of 06:36, 27 September 2013
The constitutive law class is a core class of kratos. Located in kratos/kratos/includes/constitutive_law.h.
ConstitutiveLaw derives from Flags
Right now, the flags used are only local flags (options) for the computation of the material response.
- Current Avaliable Flags: *
List of LOCAL flags, they will be used in the Parameters.mOptions:
COMPUTE_STRAIN
COMPUTE_STRESS
COMPUTE_CONSTITUTIVE_TENSOR
ISOCHORIC_TENSOR_ONLY
VOLUMETRIC_TENSOR_ONLY
TOTAL_TENSOR
INITIAL_CONFIGURATION
LAST_KNOWN_CONFIGURATION
FINAL_CONFIGURATION
FINALIZE_MATERIAL_RESPONSE
There is also a definition of the strain and stress measures that we are going to work with.
- Strain and stress working measures: *
They are defined in to two enum arrays:
- STRAIN MEASURES: *
StrainMeasure_Infinitesimal, Infinitesimal strain measure related to small displacements
StrainMeasure_GreenLagrange, Green-Lagrange strain measure related to the reference configuration
StrainMeasure_Almansi, Almansi strain measure related to the current configuration
* true strain measures:
StrainMeasure_Hencky_Material, Hencky strain measure expressed in the reference configuration
StrainMeasure_Hencky_Spatial, Hencky strain measure expressed in the current configuration
- STRESS MEASURES: *
StressMeasure_PK1, First Piola-Kirchhoff stress related to the reference configuration non-symmetric
StressMeasure_PK2, Second Piola-Kirchhoff stress related to the reference configuration
StressMeasure_Kirchhoff, Kirchhoff stress related to the current configuration
StressMeasure_Cauchy, Cauchy stress related to the current configuration
Constitutive law parameters Struct
Structure Parameters is used by the element to pass the parameters into the constitutive law:
{
- PARAMETER OPIONS:
mOptions flags for the current Constitutive Law Parameters (input data)
- KINEMATIC PARAMETERS:
mDeterminantF copy of the determinant of the Current DeformationGradient (although Current F is also included as a matrix) (input data)
mDeterminantF0 copy of the determinant of the Total DeformationGradient (although Total F0 is also included as a matrix) (input data)
--NOTE: Pointers are used only to point to a certain variable, no new or malloc can be used for this Parameters--
mpDeformationGradientF pointer to the current deformation gradient (can be an empty matrix if a linear strain measure is used) (input data)
mpDeformationGradientF0 pointer to the total deformation gradient (can be an empty matrix if a linear strain measure is used) (input data)
mpStrainVector pointer to the current strains (total strains) (input data) (can be also an output with COMPUTE_STRAIN flag)
mpStressVector pointer to the current stresses (output with COMPUTE_STRESS flag)
mpConstitutiveMatrix pointer to the material tangent matrix (output with COMPUTE_CONSTITUTIVE_TENSOR flag)
- GEOMETRIC PARAMETERS:
mpShapeFunctionsValues pointer to the shape functions values in the current integration point (input data)
mpShapeFunctionsDerivatives pointer to the shape functions derivaties values in the current integration point (input data)
mpElementGeometry pointer to the element's geometry (input data)
- MATERIAL PROPERTIES:
mpMaterialProperties pointer to the material Properties object (input data)
- PROCESS PROPERTIES:
mpCurrentProcessInfo pointer to current ProcessInfo instance (input data)
}
ConstitutiveLaw Methods
The constitutive law is evaluated at integration point level. The struct Parameters must be set and passed to the constitutive law for the material response calculation.
General Method to get the material response in a specific StressMeasure:
CalculateMaterialResponse( Parameters& , StressMeasure )
Specific Methods for the requested stress measures:
CalculateMaterialResponsePK1( Parameters& )
CalculateMaterialResponsePK2( Parameters& )
CalculateMaterialResponseKirchhoff( Parameters& )
CalculateMaterialResponseCauchy( Parameters& )
General Method to finalize the material response in a specific StressMeasure:
FinalizeMaterialResponse( Parameters& , StressMeasure )
Specific Methods for the requested stress measures finalization:
FinalizeMaterialResponsePK1( Parameters& )
FinalizeMaterialResponsePK2( Parameters& )
FinalizeMaterialResponseKirchhoff( Parameters& )
FinalizeMaterialResponseCauchy( Parameters& )
--- to be continued