cratepy.material.models.elastic.ConstitutiveModel

class ConstitutiveModel(strain_formulation, problem_type, material_properties)[source]

Bases: ABC

Constitutive model interface.

_name

Constitutive model name.

Type:

str

_strain_type

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

Type:

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

_source

Material constitutive model source.

Type:

{‘crate’,}

get_required_properties()[source]

abstract: Get constitutive model material properties and constitutive options.

state_init(self)[source]

abstract: Get initialized material constitutive model state variables.

state_update(self, inc_strain, state_variables_old, su_max_n_iterations=20, su_conv_tol=1e-6)[source]

abstract: Perform material constitutive model state update.

get_name(self)[source]

Get constitutive model name.

get_strain_type(self)[source]

Get material constitutive model strain formulation.

get_source(self)[source]

Get material constitutive model source.

get_material_properties(self)[source]

Constitutive model material properties.

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 (dict) – Constitutive model material properties (key, str) values (item, {int, float, bool}).

List of Public Methods

get_material_properties

Constitutive model material properties.

get_name

Get constitutive model name.

get_required_properties

Get constitutive model material properties and constitutive options.

get_source

Get material constitutive model source.

get_strain_type

Get material constitutive model strain formulation.

state_init

Get initialized material constitutive model state variables.

state_update

Perform material constitutive model state update.

Methods

abstract __init__(strain_formulation, problem_type, material_properties)[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 (dict) – Constitutive model material properties (key, str) values (item, {int, float, bool}).

get_material_properties()[source]

Constitutive model material properties.

Returns:

material_properties – Constitutive model material properties (key, str) values (item, {int, float, bool}).

Return type:

dict

get_name()[source]

Get constitutive model name.

Returns:

name – Constitutive model name.

Return type:

str

abstract static get_required_properties()[source]

Get constitutive model material properties and constitutive options.

Returns:

  • material_properties (list[str]) – Constitutive model material properties names (str).

  • constitutive_options (dict) – Constitutive options (key, str) and available specifications (item, tuple[str]).

get_source()[source]

Get material constitutive model source.

Returns:

source – Material constitutive model source.

Return type:

{‘crate’,}

get_strain_type()[source]

Get material constitutive model strain formulation.

Returns:

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

Return type:

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

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, su_max_n_iterations=20, su_conv_tol=1e-06)[source]

Perform material constitutive model state update.

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

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

  • su_max_n_iterations (int, default=20) – State update maximum number of iterations.

  • su_conv_tol (float, default=1e-6) – State update convergence tolerance.

Returns:

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

  • consistent_tangent_mf (numpy.ndarray (2d)) – Material constitutive model consistent tangent modulus in matricial form.