Materials
Relevant module: edelweissfe.config.materiallibrary
- edelweissfe.config.materiallibrary.getMaterialClass(materialName, provider=None)[source]
Get the the requested material class.
- Parameters
materialName (str) – The name of the requested material.
provider (str) – The name of the material provider.
- Returns
The material provider class type.
- Return type
type
Materials are defined in EdelweissFE using the *material
keyword.
Arguments are
Option |
Type |
Description |
---|---|---|
|
|
A unique ID, which is used for referencing the material in EdelweissFE. |
|
|
The name of of the material. |
|
|
The material properties as a float vector, multiline possible. |
|
|
(Optional) The material provider. |
If the material provider is not given marmotmaterial
is assumed. Materials are assigned to elements by means of Sections.
Provider edelweissmaterial
Relevant module: edelweissfe.materials
Linear elastic material
This material uses a linear elastic relation between stress and strain. The linear elastic material can be used as 2D plane stress and plane strain material as well as 3D material. This material needs the following material properties in the correct order
E - Elasticity module (Young’s modulus).
\(\mathbf{\nu}\) - Poisson’s ratio.
For the 2D plane strain and 3D material the following law in voigt notation is used
and for the 2D plane stress material the following law is used
For the second case the third strain component gets calculated by using
- class edelweissfe.materials.linearelastic.linearelastic.LinearElasticMaterial(materialProperties)[source]
Initialize.
Methods
assignCurrentStateVars
(currentStateVars)Assign new current state vars.
computePlaneStress
(stress, dStressdStrain, ...)Computes the stresses for a 2D material with plane stress.
computeStress
(stress, dStressdStrain, ...)Computes the stresses for a 3D material.
computeStress2D
(stress, dStressdStrain, ...)Computes the stresses for a 2D material with plane strain.
computeUniaxialStress
(stress, ...)Computes the stresses for a uniaxial stress state.
Initalize a 3D material elasticity matrix.
Initalize a 2D plane strain material elasticity matrix.
Initalize a 2D plane stress material elasticity matrix.
Returns number of needed material state Variables per integration point in the material.
getResult
(result)Get the result, as a persistent view which is continiously updated by the material.
- Parameters
materialProperties (ndarray) –
- assignCurrentStateVars(currentStateVars)[source]
Assign new current state vars.
- Parameters
currentStateVars (ndarray) – Array containing the material state vars.
- computePlaneStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a 2D material with plane stress.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- computeStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a 3D material.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- computeStress2D(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a 2D material with plane strain.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- computeUniaxialStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a uniaxial stress state.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- elasticityMatrix()[source]
Initalize a 3D material elasticity matrix.
- Returns
The elasticity matrix.
- Return type
np.ndarray
- elasticityMatrix2D()[source]
Initalize a 2D plane strain material elasticity matrix.
- Returns
The elasticity matrix.
- Return type
np.ndarray
- elasticityMatrixPlaneStress()[source]
Initalize a 2D plane stress material elasticity matrix.
- Returns
The elasticity matrix.
- Return type
np.ndarray
Von Mises material
This material uses the same linear elastic law as the linear elastic material until plasticity is reached. The von Mises material can be used as 2D plane strain and 3D material. This material needs the following material properties in the correct order
E - Elasticity module (Young’s modulus).
\(\mathbf{\nu}\) - Poisson’s ratio.
\(\mathbf{f_{y0}}\) - Yield stress.
\(\mathbf{H_{lin}}\) - Linear plastic hardening parameter.
\(\mathbf{\Delta f_y}\) - Multiplicator for nonlinear isotropic hardening.
\(\mathbf{\delta}\) - Exponent for nonlinear isotropic hardening.
The law used for nonlinear isotropic hardening in this material is \(f_y(\kappa)=f_{y0}+H_{lin}\kappa+\Delta f_{y} e^{-\delta\kappa}\) with \(\kappa\) as the hardening parameter. Plasticity is reached once the yield function f is \(f(\kappa)=||\mathbf{s}||-\sqrt{\frac{2}{3}}f_y(\kappa) > 0\) with \(\mathbf{s}\) as the deviatoric stress. With plasticity reached the material calculates a new \(\Delta\kappa\) using Newton’s method which is afterwards added to the hardening parameter \(\kappa\). In the end the full material tangent and the back projected stress get calculated. For the back projected stress
is used with
and \(\mathbf{s}\) as the deviatoric stress.
- class edelweissfe.materials.vonmises.vonmises.VonMisesMaterial(materialProperties)[source]
Initialize.
Methods
assignCurrentStateVars
(currentStateVars)Assign new current state vars.
computePlaneStress
(stress, dStressdStrain, ...)Computes the stresses for a plane stress material.
computeStress
(stress, dStressdStrain, ...)Computes the stresses for a 3D material.
computeUniaxialStress
(stress, ...)Computes the stresses for a uniaxial stress state.
Initalize a 3D material elasticity matrix.
Returns number of needed material state Variables per integration point in the material.
getResult
(result)Get the result, as a persistent view which is continiously updated by the material.
- Parameters
materialProperties (ndarray) –
- assignCurrentStateVars(currentStateVars)[source]
Assign new current state vars.
- Parameters
currentStateVars (ndarray) – Array containing the material state vars.
- computePlaneStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a plane stress material.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- computeStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a 3D material.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- computeUniaxialStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a uniaxial stress state.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- elasticityMatrix()[source]
Initalize a 3D material elasticity matrix.
- Returns
The elasticity matrix.
- Return type
np.ndarray
Implementing your own materials
Relevant module: edelweissfe.materials.base.basehypoelasticmaterial
- class edelweissfe.materials.base.basehypoelasticmaterial.BaseHypoElasticMaterial(materialProperties)[source]
Initialize.
Methods
assignCurrentStateVars
(currentStateVars)Assign new current state vars.
computePlaneStress
(stress, dStressdStrain, ...)Computes the stresses for a 2D material with plane stress.
computeStress
(stress, dStressdStrain, ...)Computes the stresses for a 3D material/2D material with plane strain.
computeUniaxialStress
(stress, ...)Computes the stresses for a uniaxial stress state.
Returns number of needed material state Variables per integration point in the material.
getResult
(result)Get the result, as a persistent view which is continiously updated by the material.
- Parameters
materialProperties (ndarray) –
- abstract assignCurrentStateVars(currentStateVars)[source]
Assign new current state vars.
- Parameters
currentStateVars (ndarray) – Array containing the material state vars.
- abstract computePlaneStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a 2D material with plane stress.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- abstract computeStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a 3D material/2D material with plane strain.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.
- abstract computeUniaxialStress(stress, dStressdStrain, dStrain, time, dTime)[source]
Computes the stresses for a uniaxial stress state.
- Parameters
stress (ndarray) – Vector containing the stresses.
dStressdStrain (ndarray) – Matrix containing dStress/dStrain.
dStrain (ndarray) – Strain vector increment at time step t to t+dTime.
time (float) – Array of step time and total time.
dTime (float) – Current time step size.