hookeai.model_architectures.rc_base_model.model.recurrent_model.VonMisesMixedVMAP

class VonMisesMixedVMAP(strain_formulation, problem_type, model_parameters, is_su_float64=True, device_type='cpu')[source]

Bases: ConstitutiveModel

Von Mises constitutive model with isotropic and kinematic hardening.

Compatible with vectorized mapping.

_name

Constitutive model name.

Type:

str

_strain_type

Material constitutive model strain formulation: infinitesimal strain formulation (‘infinitesimal’), finite strain formulation (‘finite’) or finite strain formulation through kinematic extension (‘finite-kinext’).

Type:

{‘infinitesimal’, ‘finite’, ‘finite-kinext’}

_model_parameters

Material constitutive model parameters.

Type:

dict

_n_dim

Problem number of spatial dimensions.

Type:

int

_comp_order_sym

Strain/Stress components symmetric order.

Type:

list

_comp_order_nsym

Strain/Stress components nonsymmetric order.

Type:

list

_is_su_float64

If True, then state update is locally computed in floating-point double precision. If False, then default floating-point precision is assumed.

Type:

bool

_device_type

Type of device on which torch.Tensor is allocated.

Type:

{‘cpu’, ‘cuda’}

_device

Device on which torch.Tensor is allocated.

Type:

torch.device

get_required_model_parameters()[source]

Get required material constitutive model parameters.

state_init(self)[source]

Get initialized material constitutive model state variables.

state_update(self, inc_strain, state_variables_old)[source]

Perform material constitutive model state update.

_elastic_step(cls, e_trial_strain_mf, trial_stress_mf, acc_p_strain_old, back_stress_old_mf)[source]

Perform elastic step.

_plastic_step(cls, is_elastic_step, e_trial_strain_mf,                   relative_eq_trial_stress, e_consistent_tangent_mf,                   flow_vector_mf, acc_p_strain_old, back_stress_old_mf,                   G, hardening_law, hardening_parameters,                   kinematic_hardening_law, kinematic_hardening_parameters,                   su_conv_tol, su_max_n_iterations):

Perform plastic step.

_nr_iteration(cls, inc_p_mult, residual, G, H, kin_hard_slope)[source]

Newton-Raphson iteration (return-mapping).

Constitutive model 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).

  • model_parameters (dict) – Material constitutive model parameters.

  • is_su_float64 (bool, default=True) – If True, then state update is locally computed in floating-point double precision. If False, then default floating-point precision is assumed.

  • device_type ({'cpu', 'cuda'}, default='cpu') – Type of device on which torch.Tensor is allocated.

List of Public Methods

get_device

Get device on which torch.Tensor is allocated.

get_model_parameters

Get material constitutive model parameters.

get_name

Get material constitutive model name.

get_required_model_parameters

Get required material constitutive model parameters.

get_strain_type

Get material constitutive model strain formulation.

set_device

Set device on which torch.Tensor is allocated.

state_init

Get initialized material constitutive model state variables.

state_update

Perform material constitutive model state update.

Methods

__init__(strain_formulation, problem_type, model_parameters, is_su_float64=True, device_type='cpu')[source]

Constitutive model 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).

  • model_parameters (dict) – Material constitutive model parameters.

  • is_su_float64 (bool, default=True) – If True, then state update is locally computed in floating-point double precision. If False, then default floating-point precision is assumed.

  • device_type ({'cpu', 'cuda'}, default='cpu') – Type of device on which torch.Tensor is allocated.

classmethod _elastic_step(e_trial_strain_mf, trial_stress_mf, acc_p_strain_old, back_stress_old_mf)[source]

Perform elastic step.

Parameters:
  • e_trial_strain_mf (torch.Tensor(1d)) – Elastic trial strain (matricial form).

  • trial_stress_mf (torch.Tensor(1d)) – Trial stress (matricial form).

  • acc_p_strain_old (torch.Tensor(0d)) – Last convergence accumulated plastic strain.

  • back_stress_old_mf (torch.Tensor(1d)) – Last converged back-stress (matricial form).

Returns:

elastic_step_output – Elastic step concatenated output data.

Return type:

torch.Tensor(1d)

classmethod _nr_iteration(inc_p_mult, residual, G, H, kin_hard_slope)[source]

Newton-Raphson iteration (return-mapping).

Parameters:
  • inc_p_mult (torch.Tensor(0d)) – Incremental plastic multiplier.

  • residual (torch.Tensor(0d)) – Residual.

  • G (torch.Tensor(0d)) – Shear modulus.

  • H (torch.Tensor(0d)) – Hardening modulus.

  • kin_hard_slope (torch.Tensor(0d)) – Kinematic hardening modulus.

Returns:

inc_p_mult – Incremental plastic multiplier.

Return type:

torch.Tensor(0d)

classmethod _plastic_step(is_elastic_step, e_trial_strain_mf, relative_eq_trial_stress, e_consistent_tangent_mf, flow_vector_mf, acc_p_strain_old, back_stress_old_mf, G, hardening_law, hardening_parameters, kinematic_hardening_law, kinematic_hardening_parameters, su_conv_tol, su_max_n_iterations)[source]

Perform plastic step.

Parameters:
  • is_elastic_step (torch.Tensor(0d)) – If True, then avoid return mapping computations and compute elastic response. This flag avoids non-admissible values stemming from invalid return-mapping problem and consequent runtime errors when computing gradients with autograd.

  • e_trial_strain_mf (torch.Tensor(1d)) – Elastic trial strain (matricial form).

  • relative_eq_trial_stress (torch.Tensor(1d)) – Relative equivalent trial stress.

  • e_consistent_tangent_mf (torch.Tensor(2d)) – Elastic consistent tangent modulus (matricial form).

  • flow_vector_mf (torch.Tensor(1d)) – Flow vector.

  • acc_p_strain_old (torch.Tensor(0d)) – Last convergence accumulated plastic strain.

  • back_stress_old_mf (torch.Tensor(1d)) – Last converged back-stress (matricial form).

  • G (torch.Tensor(0d)) – Shear modulus.

  • hardening_law (function) – Hardening law.

  • hardening_parameters (dict) – Hardening law parameters.

  • kinematic_hardening_law (function) – Kinematic hardening law.

  • kinematic_hardening_parameters (dict) – Kinematic hardening law parameters.

  • su_conv_tol (float) – State update convergence tolerance.

  • su_max_n_iterations (int) – State update maximum number of iterations.

Returns:

plastic_step_output – Plastic step concatenated output data.

Return type:

torch.Tensor(1d)

get_device()

Get device on which torch.Tensor is allocated.

Returns:

  • device_type ({‘cpu’, ‘cuda’}) – Type of device on which torch.Tensor is allocated.

  • device (torch.device) – Device on which torch.Tensor is allocated.

get_model_parameters()

Get material constitutive model parameters.

Returns:

model_parameters – Material constitutive model parameters.

Return type:

dict

get_name()

Get material constitutive model name.

Returns:

name – Material constitutive model name.

Return type:

str

static get_required_model_parameters()[source]

Get required material constitutive model parameters.

Model parameters:

  • ‘elastic_symmetry’ : Elastic symmetry (str, {‘isotropic’, ‘transverse_isotropic’, ‘orthotropic’, ‘monoclinic’, ‘triclinic’});

  • ‘elastic_moduli’ : Elastic moduli (dict, {‘Eijkl’: float});

  • ‘euler_angles’Euler angles (degrees) sorted according with Bunge

    convention (tuple[float]).

  • ‘hardening_law’ : Isotropic hardening law (function)

  • ‘hardening_parameters’ : Isotropic hardening law parameters (dict)

  • ‘kinematic_hardening_law’ : Kinematic hardening law (function)

  • ‘kinematic_hardening_parameters’Kinematic hardening law

    parameters (dict)

Returns:

model_parameters_names – Material constitutive model parameters names (str).

Return type:

tuple[str]

get_strain_type()

Get material constitutive model strain formulation.

Returns:

strain_type – Material constitutive model strain formulation: infinitesimal strain formulation (‘infinitesimal’), finite strain formulation (‘finite’) or finite strain formulation through kinematic extension (‘finite-kinext’).

Return type:

{‘infinitesimal’, ‘finite’, ‘finite-kinext’}

set_device(device_type)

Set device on which torch.Tensor is allocated.

Parameters:
  • device_type ({'cpu', 'cuda'}) – Type of device on which torch.Tensor is allocated.

  • device (torch.device) – Device on which torch.Tensor is allocated.

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).

    • Symbol: \(\boldsymbol{\varepsilon^{e}}\)

  • acc_p_strain

    • Accumulated plastic strain.

    • Symbol: \(\bar{\varepsilon}^{p}\)

  • strain_mf

    • Infinitesimal strains: Infinitesimal strain tensor (matricial form).

    • Symbol: \(\boldsymbol{\varepsilon}\)

  • stress_mf

    • Infinitesimal strains: Cauchy stress tensor (matricial form).

    • Symbol: \(\boldsymbol{\sigma}\)

  • back_stress_mf

    • Infinitesimal strains: Back-stress tensor (matricial form).

    • Symbol: \(\boldsymbol{\beta}\)

  • is_plastic

    • Plastic step flag.

  • is_su_fail

    • State update failure flag.


Returns:

state_variables_init – Initialized material constitutive model state variables.

Return type:

dict

state_update(inc_strain, state_variables_old)[source]

Perform material constitutive model state update.

Parameters:
  • inc_strain (torch.Tensor(2d)) – Incremental strain second-order tensor.

  • state_variables_old (dict) – Last converged constitutive model material state variables.

Returns:

  • state_variables (dict) – Material constitutive model state variables.

  • consistent_tangent_mf (torch.Tensor(2d)) – Material constitutive model consistent tangent modulus stored in matricial form.