hookeai.simulators.fetorch.material.models.standard.von_mises_mixed.ConstitutiveModel

class ConstitutiveModel(strain_formulation, problem_type, model_parameters, device_type='cpu')[source]

Bases: ABC

Material constitutive model interface.

_name

Material 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

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

get_name(self)[source]

Get material constitutive model name.

get_strain_type(self)[source]

Get material constitutive model strain formulation.

get_model_parameters(self)[source]

Get material constitutive model parameters.

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.

  • 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

abstract __init__(strain_formulation, problem_type, model_parameters, device_type='cpu')[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).

  • model_parameters (dict) – Material constitutive model parameters.

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

get_device()[source]

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()[source]

Get material constitutive model parameters.

Returns:

model_parameters – Material constitutive model parameters.

Return type:

dict

get_name()[source]

Get material constitutive model name.

Returns:

name – Material constitutive model name.

Return type:

str

abstract static get_required_model_parameters()[source]

Get required material constitutive model parameters.

Returns:

model_parameters_names – Material constitutive model parameters names (str).

Return type:

tuple[str]

get_strain_type()[source]

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)[source]

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.

abstract state_init()[source]

Get initialized material constitutive model state variables.

Returns:

state_variables_init – Initialized material constitutive model state variables.

Return type:

dict

abstract 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 material constitutive model 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.