cratepy.material.models.von_mises.Elastic¶
- class Elastic(strain_formulation, problem_type, material_properties)[source]¶
Bases:
ConstitutiveModel
Linear elastic constitutive model.
- _strain_type¶
Constitutive model strain formulation: infinitesimal strain formulation (‘infinitesimal’), finite strain formulation (‘finite’) or finite strain formulation through kinematic extension (infinitesimal constitutive formulation and purely finite strain kinematic extension - ‘finite-kinext’).
- Type:
{‘infinitesimal’, ‘finite’, ‘finite-kinext’}
- _source¶
Material constitutive model source.
- Type:
{‘crate’,}
- get_required_properties()[source]¶
Get constitutive model material properties and constitutive options.
- state_update(self, inc_strain, state_variables_old, su_max_n_iterations=20, su_conv_tol=1e-6)[source]¶
Perform constitutive model state update.
- get_available_elastic_symmetries()[source]¶
Get available elastic symmetries under general anisotropy.
- elastic_tangent_modulus(elastic_properties, elastic_symmetry='isotropic')[source]¶
Compute 3D elasticity tensor under general anisotropic elasticity.
- get_technical_from_elastic_moduli(elastic_symmetry, elastic_properties)[source]¶
Get technical constants of elasticity from elastic moduli.
Constructor.
- Parameters:
strain_formulation ({'infinitesimal', 'finite'}) – Problem strain formulation.
problem_type (int) – Problem type: 2D plane strain (1), 2D plane stress (2), 2D axisymmetric (3) and 3D (4).
material_properties (dict) – Constitutive model material properties (key, str) values (item, {int, float, bool}).
List of Public Methods
Compute 3D elasticity tensor under general anisotropic elasticity.
Get available elastic symmetries under general anisotropy.
Constitutive model material properties.
Get constitutive model name.
Get constitutive model material properties and constitutive options.
Get material constitutive model source.
Get material constitutive model strain formulation.
Get technical constants of elasticity from elastic moduli.
Get initialized material constitutive model state variables.
Perform constitutive model state update.
Methods
- __init__(strain_formulation, problem_type, material_properties)[source]¶
Constructor.
- Parameters:
strain_formulation ({'infinitesimal', 'finite'}) – Problem strain formulation.
problem_type (int) – Problem type: 2D plane strain (1), 2D plane stress (2), 2D axisymmetric (3) and 3D (4).
material_properties (dict) – Constitutive model material properties (key, str) values (item, {int, float, bool}).
- static elastic_tangent_modulus(elastic_properties, elastic_symmetry='isotropic')[source]¶
Compute 3D elasticity tensor under general anisotropic elasticity.
- Parameters:
elastic_properties (dict) – Elastic material properties (key, str) values (item, float). Expecting independent elastic moduli (‘Eijkl’) according to elastic symmetries. Young modulus (‘E’) and Poisson’s ratio (‘v’) may alternatively provided under elastic isotropy.
elastic_symmetry ({'isotropic', 'transverse_isotropic', 'orthotropic', 'monoclinic', 'triclinic'}, default='isotropic') –
Elastic symmetries:
’triclinic’: assumes no elastic symmetries.
’monoclinic’: assumes plane of symmetry 12.
’orthotropic’: assumes planes of symmetry 12 and 13.
’transverse_isotropic’: assumes axis of symmetry 3
’isotropic’: assumes complete symmetry.
- Returns:
elastic_tangent_mf – 3D elasticity tensor in matricial form.
- Return type:
numpy.ndarray (2d)
- static get_available_elastic_symmetries()[source]¶
Get available elastic symmetries under general anisotropy.
Available elastic symmetries:
Isotropic:
Input data file syntax:
elastic_symmetry isotropic 2 E1111 < value > E1122 < value >
or
elastic_symmetry isotropic 2 E < value > v < value >
where
elastic_symmetry
- Elastic symmetry and number of elastic moduli.Eijkl
- Elastic moduli. Young’s modulus (E
) and Poisson’s coefficient (v
) may be alternatively provided ifelastic_symmetry
is set as isotropic.
Transverse isotropic (axis of symmetry 3):
Input data file syntax:
elastic_symmetry transverse_isotropic 6 euler_angles < value > < value > < value > Eijkl < value > ...
where
elastic_symmetry
- Elastic symmetry and number of elastic moduli.euler_angles
- Euler angles (degrees) sorted according with Bunge convention.Eijkl
- Elastic moduli.
Orthotropic (planes of symmetry 12 and 13):
Input data file syntax:
elastic_symmetry orthotropic 10 euler_angles < value > < value > < value > Eijkl < value > ...
where
elastic_symmetry
- Elastic symmetry and number of elastic moduli.euler_angles
- Euler angles (degrees) sorted according with Bunge convention.Eijkl
- Elastic moduli.
Monoclinic (plane of symmetry 12):
Input data file syntax:
elastic_symmetry monoclinic 14 euler_angles < value > < value > < value > Eijkl < value > ...
where
elastic_symmetry
- Elastic symmetry and number of elastic moduli.euler_angles
- Euler angles (degrees) sorted according with Bunge convention.Eijkl
- Elastic moduli.
Triclinic:
Input data file syntax:
elastic_symmetry triclinic 22 euler_angles < value > < value > < value > Eijkl < value > ...
where
elastic_symmetry
- Elastic symmetry and number of elastic moduli.euler_angles
- Euler angles (degrees) sorted according with Bunge convention.Eijkl
- Elastic moduli.
- Returns:
elastic_symmetries – Elastic moduli (item, tuple[str]) required for each available elastic symmetry (key, str).
- Return type:
- get_material_properties()¶
Constitutive model material properties.
- Returns:
material_properties – Constitutive model material properties (key, str) values (item, {int, float, bool}).
- Return type:
- static get_required_properties()[source]¶
Get constitutive model material properties and constitutive options.
Input data file syntax:
elastic_symmetry < option > < number_of_elastic_moduli > euler_angles < value > < value > < value > Eijkl < value > Eijkl < value > ...
where
elastic_symmetry
- Elastic symmetry and number of elastic moduli.euler_angles
- Euler angles (degrees) sorted according with Bunge convention. Not required ifelastic_symmetry
is set as isotropic.Eijkl
- Elastic moduli. Young’s modulus (E
) and Poisson’s coefficient (v
) may be alternatively provided ifelastic_symmetry
is set as isotropic.
- Returns:
material_properties (list[str]) – Constitutive model material properties names (str).
constitutive_options (dict) – Constitutive options (key, str) and available specifications (item, tuple[str]).
- get_source()¶
Get material constitutive model source.
- Returns:
source – Material constitutive model source.
- Return type:
{‘crate’,}
- get_strain_type()¶
Get material constitutive model strain formulation.
- Returns:
strain_type – Constitutive model strain formulation: infinitesimal strain formulation (‘infinitesimal’), finite strain formulation (‘finite’) or finite strain formulation through kinematic extension (infinitesimal constitutive formulation and purely finite strain kinematic extension - ‘finite-kinext’).
- Return type:
{‘infinitesimal’, ‘finite’, ‘finite-kinext’}
- get_technical_from_elastic_moduli(elastic_properties)[source]¶
Get technical constants of elasticity from elastic moduli.
- Parameters:
elastic_symmetry ({'isotropic', 'transverse_isotropic', 'orthotropic', 'monoclinic', 'triclinic'}, default='isotropic') –
Elastic symmetries:
’triclinic’: assumes no elastic symmetries.
’monoclinic’: assumes plane of symmetry 12.
’orthotropic’: assumes planes of symmetry 12 and 13.
’transverse_isotropic’: assumes axis of symmetry 3
’isotropic’: assumes complete symmetry.
elastic_properties (dict) – Elastic material properties (key, str) values (item, float). Expecting independent elastic moduli (‘Eijkl’) according to elastic symmetries.
- Returns:
technical_constants – Technical constants of elasticity according with elastic symmetries.
- Return type:
- state_init()[source]¶
Get initialized material constitutive model state variables.
Constitutive model state variables:
e_strain_mf
Infinitesimal strains: Elastic infinitesimal strain tensor (matricial form).
Finite strains: Elastic spatial logarithmic strain tensor (matricial form).
Symbol: \(\boldsymbol{\varepsilon^{e}}\) / \(\boldsymbol{\varepsilon^{e}}\)
strain_mf
Infinitesimal strains: Infinitesimal strain tensor (matricial form).
Finite strains: Spatial logarithmic strain tensor (matricial form).
Symbol: \(\boldsymbol{\varepsilon}\) / \(\boldsymbol{\varepsilon}\)
stress_mf
Infinitesimal strains: Cauchy stress tensor (matricial form).
Finite strains: Kirchhoff stress tensor (matricial form) within
state_update()
, first Piola-Kirchhoff stress tensor (matricial form) otherwise.Symbol: \(\boldsymbol{\sigma}\) / (\(\boldsymbol{\tau}\), \(\boldsymbol{P}\))
is_su_fail
State update failure flag.
- Returns:
state_variables_init – Initialized constitutive model material state variables.
- Return type:
- state_update(inc_strain, state_variables_old, su_max_n_iterations=20, su_conv_tol=1e-06)[source]¶
Perform constitutive model state update.
- Parameters:
inc_strain (numpy.ndarray (2d)) – Incremental strain second-order tensor.
state_variables_old (dict) – Last converged constitutive model material state variables.
su_max_n_iterations (int, default=20) – State update maximum number of iterations.
su_conv_tol (float, default=1e-6) – State update convergence tolerance.
- Returns:
state_variables (dict) – Material constitutive model state variables.
consistent_tangent_mf (numpy.ndarray (2d)) – Material constitutive model consistent tangent modulus in matricial form.