hookeai.simulators.fetorch.material.models.vmap.lou.ConstitutiveModel¶
- class ConstitutiveModel(strain_formulation, problem_type, model_parameters, device_type='cpu')[source]¶
Bases:
ABCMaterial constitutive model interface.
- _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’}
- _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
- state_update(self, inc_strain, state_variables_old)[source]¶
Perform material constitutive model state update.
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 on which torch.Tensor is allocated.
Get material constitutive model parameters.
Get material constitutive model name.
Get required material constitutive model parameters.
Get material constitutive model strain formulation.
Set device on which torch.Tensor is allocated.
Get initialized material constitutive model state variables.
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:
- get_name()[source]¶
Get material constitutive model name.
- Returns:
name – Material constitutive model name.
- Return type:
- abstract static get_required_model_parameters()[source]¶
Get required material constitutive model parameters.
- 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:
- 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.