cratepy.online.crom.asca.InfinitesimalRegressionSCS

class InfinitesimalRegressionSCS(strain_formulation, problem_type, material_properties_old, inc_strain_mf, inc_stress_mf, is_symmetrized=False)[source]

Bases: ReferenceMaterialOptimizer

Infinitesimal strains format regression-based self-consistent scheme.

Mimization problem:

\[\left\{ \lambda^{0}_{n+1}, \, \mu^{0}_{n+1} \right\} = \underset{ \left\{ \lambda ', \, \, \mu ' \right\} }{ \mathrm{argmin}} \, || \Delta \boldsymbol{\sigma}_{n+1} - \boldsymbol{\mathsf{D}}^{e, \, 0}_{n+1}(\lambda ',\mu ') : \Delta \boldsymbol{\varepsilon}_{n+1} ||^{2}\]

where \(\lambda^{0}\) and \(\mu^{0}\) are the elastic Lamé parameters, \(\Delta \boldsymbol{\sigma}\) is the homogenized incremental Cauchy stress tensor, \(\boldsymbol{\mathsf{D}}^{e,\,0}\) is the reference material elastic tangent modulus, \(\Delta \boldsymbol{\varepsilon}\) is the homogenized incremental infinitesimal strain tensor, and \(n+1\) denotes the current increment.


Solution:

\[\begin{split}\begin{bmatrix} \lambda^{0}_{m+1} \\[10pt] \mu^{0}_{m+1} \end{bmatrix} = \begin{bmatrix} \text{tr} \, \left[ \boldsymbol{I} \right] \, \text{tr} \, \left[ \Delta \boldsymbol{\varepsilon}_{m+1} \right] & 2 \, \text{tr} \, \left[ \Delta \boldsymbol{\varepsilon}_{m+1} \right] \\[10pt] \text{tr} \, \left[ \Delta \boldsymbol{\varepsilon}_{m+1} \right]^{2} & 2 \Delta \boldsymbol{\varepsilon}_{m+1} : \Delta \boldsymbol{\varepsilon}_{m+1} \end{bmatrix}^{-1} \begin{bmatrix} \, \text{tr} \, \left[ \Delta \boldsymbol{\sigma}_{m+1} \right] \\[10pt] \Delta \boldsymbol{\sigma}_{m+1}: \Delta \boldsymbol{\varepsilon}_{m+1} \end{bmatrix} \, .\end{split}\]
_n_dim

Problem number of spatial dimensions.

Type:

int

_comp_order_sym

Strain/Stress components symmetric order.

Type:

list[str]

_comp_order_nsym

Strain/Stress components nonsymmetric order.

Type:

list[str]

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_old (dict) – Last loading increment converged elastic reference material properties (key, str) values (item, {int, float, bool}).

  • inc_strain_mf (numpy.ndarray (1d)) – Incremental homogenized strain (matricial form).

  • inc_stress_mf (numpy.ndarray (1d)) – Incremental homogenized stress (matricial form).

  • is_symmetrized (bool, default=False) – True if a symmetric alternative stress-strain conjugate pair is adopted in the finite strains regression-based self-consistent scheme, False otherwise.

List of Public Methods

compute_reference_properties

Compute elastic reference material properties.

Methods

__init__(strain_formulation, problem_type, material_properties_old, inc_strain_mf, inc_stress_mf, is_symmetrized=False)[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_old (dict) – Last loading increment converged elastic reference material properties (key, str) values (item, {int, float, bool}).

  • inc_strain_mf (numpy.ndarray (1d)) – Incremental homogenized strain (matricial form).

  • inc_stress_mf (numpy.ndarray (1d)) – Incremental homogenized stress (matricial form).

  • is_symmetrized (bool, default=False) – True if a symmetric alternative stress-strain conjugate pair is adopted in the finite strains regression-based self-consistent scheme, False otherwise.

compute_reference_properties()[source]

Compute elastic reference material properties.

Returns:

  • E (float) – Young modulus of elastic reference material.

  • v (float) – Poisson ratio of elastic reference material.