# 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.