cratepy.ioput.readprocedures.ElasticReferenceMaterial¶
- class ElasticReferenceMaterial(strain_formulation, problem_type, self_consistent_scheme, conv_tol=0.0001)[source]¶
Bases:
object
Elastic reference material.
- _material_properties¶
Elastic material properties (key, str) values (item, {int, float, bool}).
- Type:
- _material_properties_old¶
Last loading increment converged elastic material properties (key, str) values (item, {int, float, bool}).
- Type:
- _material_properties_init¶
Elastic material properties (key, str) values (item, {int, float, bool}) initial guess.
- Type:
- _material_properties_scs_init¶
Elastic material properties (key, str) values (item, {int, float, bool}) converged in the first loading increment.
- Type:
- _elastic_tangent_mf¶
Elastic tangent modulus in matricial form.
- Type:
numpy.ndarray (2d)
- _elastic_compliance_matrix¶
Elastic compliance in matrix form.
- Type:
numpy.ndarray (2d)
- _norm_dE¶
Normalized iterative change of Young modulus associated with the last self-consistent iteration convergence evaluation.
- Type:
- _norm_dv¶
Normalized iterative change of Poisson ratio associated with the last self-consistent iteration convergence evaluation.
- Type:
- init_material_properties(self, material_phases, material_phases_properties, material_phases_vf, properties=None)[source]¶
Set initial guess of elastic reference material properties.
- update_converged_material_properties(self)[source]¶
Update converged elastic reference material properties.
- reset_material_properties(self)[source]¶
Reset material properties to last loading increment values.
- set_material_properties_scs_init(self)[source]¶
Set material properties converged in the first loading increment.
- self_consistent_update(self, strain_mf, strain_old_mf, stress_mf, stress_old_mf, eff_tangent_mf)[source]¶
Compute reference elastic properties through self-consistent scheme.
- _update_elastic_tangent(self)[source]¶
Update reference material elastic tangent modulus and compliance.
- _check_scs_solution(self, E, v)[source]¶
Check admissibility of self-consistent scheme iterative solution.
- check_scs_convergence(self, E, v)[source]¶
Check self-consistent scheme iterative solution convergence.
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).
self_consistent_scheme ({'regression',}, default='regression') – Self-consistent scheme to update the elastic reference material properties.
conv_tol (float, default=1e-4) – Self-consistent scheme convergence tolerance.
List of Public Methods
Check self-consistent scheme iterative solution convergence.
Get available self-consistent schemes.
Get elastic compliance in matrix form.
Get elastic tangent modulus in matricial form.
Get elastic reference material properties.
Get normalized iterative change of Young modulus.
Get normalized iterative change of Poisson ratio.
Get self-consistent scheme iteration counter.
Set initial guess of elastic reference material properties.
Initialize self-consistent scheme iteration counter.
Get Lamé parameters from Young modulus and Poisson ratio.
Reset material properties to last loading increment values.
Compute reference elastic properties through self-consistent scheme.
Set material properties converged in the first loading increment.
Get Young modulus and Poisson ratio from Lamé parameters.
Update converged elastic reference material properties.
Update elastic reference material properties.
Update self-consistent scheme iteration counter.
Methods
- __init__(strain_formulation, problem_type, self_consistent_scheme, conv_tol=0.0001)[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).
self_consistent_scheme ({'regression',}, default='regression') – Self-consistent scheme to update the elastic reference material properties.
conv_tol (float, default=1e-4) – Self-consistent scheme convergence tolerance.
- _check_scs_solution(E, v)[source]¶
Check admissibility of self-consistent scheme iterative solution.
- _update_elastic_tangent()[source]¶
Update reference material elastic tangent modulus and compliance.
Infinitesimal strains:
\[\boldsymbol{\mathsf{D}}^{e,\,0} = \lambda^{0} \boldsymbol{I} \otimes \boldsymbol{I} + 2 \mu^{0} \boldsymbol{\mathsf{I}}_{s} \, ,\]where \(\boldsymbol{\mathsf{D}}^{e,\,0}\) is the reference material elastic tangent modulus, \(\lambda^{0}\) and \(\mu^{0}\) are the elastic Lamé parameters, \(\boldsymbol{I}\) is the second-order identity tensor, and \(\boldsymbol{\mathsf{I}}_{s}\) is the fourth-order symmetric identity tensor.
\[\boldsymbol{\mathsf{S}}^{e,\,0} = - \dfrac{\lambda^{0}}{2 \mu^{0} (3\lambda^{0} + 2\mu^{0})} \boldsymbol{I} \otimes \boldsymbol{I} + \dfrac{1}{2 \mu^{0}} \boldsymbol{\mathsf{I}}_{s} \, ,\]where \(\boldsymbol{\mathsf{S}}^{e,\,0}\) is the reference material elastic compliance, \(\lambda^{0}\) and \(\mu^{0}\) are the elastic Lamé parameters, \(\boldsymbol{I}\) is the second-order identity tensor, and \(\boldsymbol{\mathsf{I}}_{s}\) is the fourth-order symmetric identity tensor.
Finite strains:
\[\boldsymbol{\mathsf{A}}^{e,\,0} = \lambda^{0} \boldsymbol{I} \otimes \boldsymbol{I} + 2 \mu^{0} \boldsymbol{\mathsf{I}} \, ,\]where \(\boldsymbol{\mathsf{A}}^{e,\,0}\) is the reference material hyperelastic tangent modulus, \(\lambda^{0}\) and \(\mu^{0}\) are the elastic Lamé parameters, \(\boldsymbol{I}\) is the second-order identity tensor, and \(\boldsymbol{\mathsf{I}}\) is the fourth-order identity tensor.
\[\boldsymbol{\mathsf{S}}^{e,\,0} = - \dfrac{\lambda^{0}}{2 \mu^{0} (3\lambda^{0} + 2\mu^{0})} \boldsymbol{I} \otimes \boldsymbol{I} + \dfrac{1}{2 \mu^{0}} \boldsymbol{\mathsf{I}} \, ,\]where \(\boldsymbol{\mathsf{S}}^{e,\,0}\) is the reference material hyperelastic compliance, \(\lambda^{0}\) and \(\mu^{0}\) are the elastic Lamé parameters, \(\boldsymbol{I}\) is the second-order identity tensor, and \(\boldsymbol{\mathsf{I}}\) is the fourth-order symmetric identity tensor.
- get_elastic_compliance_matrix()[source]¶
Get elastic compliance in matrix form.
- Returns:
elastic_compliance_matrix – Elastic compliance in matrix form.
- Return type:
numpy.ndarray (2d)
- get_elastic_tangent_mf()[source]¶
Get elastic tangent modulus in matricial form.
- Returns:
elastic_tangent_mf – Elastic tangent modulus in matricial form.
- Return type:
numpy.ndarray (2d)
- get_material_properties()[source]¶
Get elastic reference material properties.
- Returns:
material_properties – Elastic material properties (key, str) values (item, {int, float, bool}).
- Return type:
- get_norm_dE()[source]¶
Get normalized iterative change of Young modulus.
- Returns:
norm_dE – Normalized iterative change of Young modulus associated with the last self-consistent iteration convergence evaluation.
- Return type:
- get_norm_dv()[source]¶
Get normalized iterative change of Poisson ratio.
- Returns:
norm_dv – Normalized iterative change of Poisson ratio associated with the last self-consistent iteration convergence evaluation.
- Return type:
- get_scs_iter()[source]¶
Get self-consistent scheme iteration counter.
- Returns:
scs_iter – Self-consistent scheme iteration counter.
- Return type:
- init_material_properties(material_phases, material_phases_properties, material_phases_vf, properties=None)[source]¶
Set initial guess of elastic reference material properties.
- Parameters:
material_phases (list[str]) – RVE material phases labels (str).
material_phases_properties (dict) – Constitutive model material properties (item, dict) associated with each material phase (key, str).
material_phases_vf (dict) – Volume fraction (item, float) associated with each material phase (key, str).
properties (dict, default=None) – Initial guess (item, float) of elastic reference material properties (key, str). Expecting Young’s modulus (‘E’) and Poisson’s coefficient (‘v’) for an isotropic elastic reference material.
- self_consistent_update(strain_mf, strain_old_mf, stress_mf, stress_old_mf, eff_tangent_mf)[source]¶
Compute reference elastic properties through self-consistent scheme.
- Parameters:
strain_mf (numpy.ndarray (1d)) – Homogenized strain (matricial form): infinitesimal strain tensor (infinitesimal strains) or deformation gradient (finite strains)
strain_old_mf (numpy.ndarray (1d)) – Last converged homogenized strain (matricial form): infinitesimal strain tensor (infinitesimal strains) or deformation gradient (finite strains)
stress_mf (numpy.ndarray (1d)) – Homogenized stress (matricial form): Cauchy stress tensor (infinitesimal strains) or first Piola-Kirchhoff stress tensor (finite strains).
stress_old_mf (numpy.ndarray (1d)) – Last converged homogenized stress (matricial form): Cauchy stress tensor (infinitesimal strains) or first Piola-Kirchhoff stress tensor (finite strains).
eff_tangent_mf (numpy.ndarray (2d)) – CRVE effective material tangent modulus (matricial form).
- Returns:
is_admissible (bool) – True if self-consistent scheme iterative solution is admissible, False otherwise.
E (float) – Young modulus of elastic reference material.
v (float) – Poisson ratio of elastic reference material.
- set_material_properties_scs_init()[source]¶
Set material properties converged in the first loading increment.
- static technical_from_lame(lam, miu)[source]¶
Get Young modulus and Poisson ratio from Lamé parameters.
- update_converged_material_properties()[source]¶
Update converged elastic reference material properties.