CSMm 2.5.Constitutive Laws
From KratosWiki
(Difference between revisions)
(10 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category: CSMm 2.Structure]] | ||
[[Category: CSMm 2.5.Constitutive_Laws]] | [[Category: CSMm 2.5.Constitutive_Laws]] | ||
+ | |||
+ | For the moment one can use a simple elastic model or a more complex elasto-plastic model with a VonMisses yield criterion: | ||
+ | |||
+ | |||
+ | *'''Elastic model''' | ||
+ | |||
+ | |||
+ | <math>\boldsymbol{\sigma = D \cdot \epsilon} </math> | ||
+ | |||
+ | |||
+ | *'''Elasto-Plastic model:''' | ||
+ | |||
+ | |||
+ | It uses a '''Von Mises''' yield criterion: plastic yielding starts when the elastic energy stored in changes of shape reaches a critical value. | ||
+ | |||
+ | |||
+ | <!-- The following text is commented--> | ||
+ | |||
+ | <!-- | ||
The constitutive law class is a core class of kratos. Located in kratos/kratos/includes/constitutive_law.h. | The constitutive law class is a core class of kratos. Located in kratos/kratos/includes/constitutive_law.h. | ||
Line 7: | Line 27: | ||
== ConstitutiveLaw derives from Flags == | == 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, | + | List of ''LOCAL'' flags, they will be used in the Parameters.mOptions: |
'''COMPUTE_STRAIN''' | '''COMPUTE_STRAIN''' | ||
Line 33: | Line 53: | ||
'''FINALIZE_MATERIAL_RESPONSE''' | '''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: | 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 51: | Line 73: | ||
'''StrainMeasure_Hencky_Material''', Hencky strain measure expressed in the reference configuration | '''StrainMeasure_Hencky_Material''', Hencky strain measure expressed in the reference configuration | ||
− | + | ||
'''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 72: | Line 94: | ||
{ | { | ||
− | + | * 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 83: | Line 105: | ||
− | + | ''--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 96: | Line 118: | ||
− | + | * 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 105: | Line 127: | ||
− | + | * 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 118: | Line 140: | ||
== ConstitutiveLaw Methods == | == 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'': | General Method to get the material response in a specific ''StressMeasure'': | ||
− | '''CalculateMaterialResponse( ''Parameters&'' , ''StressMeasure'' )''' | + | '''CalculateMaterialResponse( ''Parameters&'' , ''StressMeasure'' )''' |
− | Specific Methods for the requested stress | + | Specific Methods for the requested stress measures: |
− | '''CalculateMaterialResponsePK1( ''Parameters&'' )''' | + | '''CalculateMaterialResponsePK1( ''Parameters&'' )''' |
− | '''CalculateMaterialResponsePK2( ''Parameters&'' )''' | + | '''CalculateMaterialResponsePK2( ''Parameters&'' )''' |
− | '''CalculateMaterialResponseKirchhoff( ''Parameters&'' )''' | + | '''CalculateMaterialResponseKirchhoff( ''Parameters&'' )''' |
− | '''CalculateMaterialResponseCauchy( ''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 | --- to be continued | ||
+ | |||
+ | --> |
Latest revision as of 11:22, 3 October 2013
For the moment one can use a simple elastic model or a more complex elasto-plastic model with a VonMisses yield criterion:
- Elastic model
- Elasto-Plastic model:
It uses a Von Mises yield criterion: plastic yielding starts when the elastic energy stored in changes of shape reaches a critical value.