cratepy.online.loading.macloadincrem.LoadingSubpath¶
- class LoadingSubpath(id, strain_formulation, problem_type, init_conv_hom_state, load, presctype, inc_lfacts, inc_times, max_subinc_level)[source]¶
Bases:
object
Loading subpath.
- _applied_load¶
For each prescribed loading nature type (key, {‘strain’, ‘stress’}), stores the current applied loading constraints in a numpy.ndarray of shape (n_comps,).
- Type:
- _inc_applied_load¶
For each prescribed loading nature type (key, {‘strain’, ‘stress’}), stores the current incremental applied loading constraints in a numpy.ndarray of shape (n_comps,).
- Type:
Constructor.
- Parameters:
id (int) – Loading subpath id.
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).
init_conv_hom_state (dict) – Converged homogenized state (item, numpy.ndarray of shape (n_comps,)) for key in {‘strain’, ‘stress’} at the beginning of loading subpath.
load (dict) – For each prescribed loading nature type (key, {‘strain’, ‘stress’}), stores the loading constraints in a numpy.ndarray of shape (n_comps,).
presctype (numpy.ndarray (1d)) – Loading nature type ({‘strain’, ‘stress’}) associated with each macroscale loading constraint (numpy.ndarray of shape (n_comps,)).
inc_lfacts (numpy.ndarray (1d)) – Loading subpath incremental load factors (numpy.ndarray of shape (n_increments,)).
inc_times (numpy.ndarray (1d)) – Loading subpath incremental times (numpy.ndarray of shape (n_increments,)).
max_subinc_level (int) – Maximum level of loading subincrementation.
List of Public Methods
Get current applied loading.
Get current incremental applied loading.
Get loading subpath state data.
Perform loading increment cut.
Update increment counter, total load factor and applied loading.
Methods
- __init__(id, strain_formulation, problem_type, init_conv_hom_state, load, presctype, inc_lfacts, inc_times, max_subinc_level)[source]¶
Constructor.
- Parameters:
id (int) – Loading subpath id.
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).
init_conv_hom_state (dict) – Converged homogenized state (item, numpy.ndarray of shape (n_comps,)) for key in {‘strain’, ‘stress’} at the beginning of loading subpath.
load (dict) – For each prescribed loading nature type (key, {‘strain’, ‘stress’}), stores the loading constraints in a numpy.ndarray of shape (n_comps,).
presctype (numpy.ndarray (1d)) – Loading nature type ({‘strain’, ‘stress’}) associated with each macroscale loading constraint (numpy.ndarray of shape (n_comps,)).
inc_lfacts (numpy.ndarray (1d)) – Loading subpath incremental load factors (numpy.ndarray of shape (n_increments,)).
inc_times (numpy.ndarray (1d)) – Loading subpath incremental times (numpy.ndarray of shape (n_increments,)).
max_subinc_level (int) – Maximum level of loading subincrementation.
- _update_inc_applied_load()[source]¶
Update current incremental applied loading.
Infinitesimal strains:
\[\boldsymbol{\varepsilon}_{n+1} = \boldsymbol{\varepsilon}_{0} + \lambda_{n+1} (\boldsymbol{\varepsilon}^{\text{total}} - \boldsymbol{\varepsilon}_{0})\]\[\Delta \boldsymbol{\varepsilon}_{n+1} = \Delta \lambda_{n+1} (\boldsymbol{\varepsilon}^{ \text{total}} - \boldsymbol{\varepsilon}_{0})\]where \(\boldsymbol{\varepsilon}_{n+1}\) is the current applied infinitesimal strain tensor, \(\lambda_{n+1}\) is the current load factor, \(\boldsymbol{\varepsilon}^{\text{total}}\) is the total infinitesimal strain tensor prescribed in the mononotic loading path, \(\boldsymbol{\varepsilon}_{0}\) is the infinitesimal strain tensor at the beginning of the mononotic loading path, \(\Delta \boldsymbol{\varepsilon}_{n+1}\) is the incremental infinitesimal strain tensor, \(\Delta \lambda_{n+1}\) is the incremental load factor, and \(n+1\) denotes the current increment.
\[\boldsymbol{\sigma}_{n+1} = \boldsymbol{\sigma}_{0} + \lambda_{n+1} (\boldsymbol{\sigma}^{\text{total}} - \boldsymbol{\sigma}_{0})\]\[\Delta \boldsymbol{\sigma}_{n+1} = \Delta \lambda_{n+1} (\boldsymbol{\sigma}^{\text{total}} - \boldsymbol{\sigma}_{0})\]where \(\boldsymbol{\sigma}_{n+1}\) is the current applied Cauchy stress tensor, \(\lambda_{n+1}\) is the current load factor, \(\boldsymbol{\sigma}^{\text{total}}\) is the total Cauchy stress tensor prescribed in the mononotic loading path, \(\boldsymbol{\sigma}_{0}\) is the Cauchy stress tensor at the beginning of the mononotic loading path, \(\Delta \boldsymbol{\sigma}_{n+1}\) is the incremental Cauchy stress tensor, \(\Delta \lambda_{n+1}\) is the incremental load factor, and \(n+1\) denotes the current increment.
Finite strains:
\[\boldsymbol{F}_{n+1} = \exp (\lambda_{n+1} \ln ( \boldsymbol{F}^{\text{total}} \boldsymbol{F}_{0}^{-1})) \boldsymbol{F}_{0}\]\[\boldsymbol{F}_{\Delta, n+1} = \exp (\Delta \lambda_{n+1} \ln ( \boldsymbol{F}^{\text{total}} \boldsymbol{F}_{0}^{-1}))\]where \(\boldsymbol{F}_{n+1}\) is the current applied deformation gradient, \(\lambda_{n+1}\) is the current load factor, \(\boldsymbol{F}_{\text{total}}\) is the total deformation gradient prescribed in the mononotic loading path, and \(\boldsymbol{F}_{0}\) is the deformation gradient at the beginning of the mononotic loading path, \(\boldsymbol{F}_{\Delta, n+1}\) is the incremental deformation gradient, \(\Delta \lambda_{n+1}\) is the incremental load factor, and \(n+1\) denotes the current increment.
\[\boldsymbol{P}_{n+1} = \boldsymbol{P}_{0} + \lambda_{n+1} (\boldsymbol{P}^{\text{total}} - \boldsymbol{P}_{0})\]\[\Delta \boldsymbol{P}_{n+1} = \Delta \lambda_{n+1} (\boldsymbol{P}^{\text{total}} - \boldsymbol{P}_{0})\]where \(\boldsymbol{P}_{n+1}\) is the current applied first Piola-Kirchhoff stress tensor, \(\lambda_{n+1}\) is the current load factor, \(\boldsymbol{P}^{\text{total}}\) is the total first Piola-Kirchhoff stress tensor prescribed in the mononotic loading path, \(\boldsymbol{P}_{0}\) is the first Piola-Kirchhoff stress tensor at the beginning of the mononotic loading path, \(\Delta \boldsymbol{P}_{n+1}\) is the incremental first Piola-Kirchhoff stress tensor, \(\Delta \lambda_{n+1}\) is the incremental load factor, and \(n+1\) denotes the current increment.
Remark: It is not straightforward how to perform a component-wise multiplicative decomposition of the deformation gradient in the case of a mixed strain-stress loading prescription.
- get_applied_load()[source]¶
Get current applied loading.
- Returns:
applied_load – For each prescribed loading nature type (key, {‘strain’, ‘stress’}), stores the current applied loading constraints in a numpy.ndarray of shape (n_comps,).
- Return type:
- get_inc_applied_load()[source]¶
Get current incremental applied loading.
- Returns:
inc_applied_load – For each prescribed loading nature type (key, {‘strain’, ‘stress’}), stores the current incremental applied loading constraints in a numpy.ndarray of shape (n_comps,).
- Return type:
- get_state()[source]¶
Get loading subpath state data.
- Returns:
id (int) – Loading subpath id.
inc (int) – Loading subpath increment counter.
total_lfact (float) – Loading subpath current total load factor.
inc_lfact (float) – Loading subpath current incremental load factor.
total_time (float) – Loading subpath current total time.
inc_time (float) – Loading subpath current incremental time.
sub_inc_level (int) – Loading subpath current subincrementation level.