cratepy.material.models.stvenant_kirchhoff.StVenantKirchhoff

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

Bases: ConstitutiveModel

St.Venant-Kirchhoff hyperelastic constitutive model.

_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’, }

_ndim

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

get_required_properties()[source]

Get constitutive model material properties and constitutive options.

state_init(self)[source]

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]

Perform material constitutive model state update.

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

  • 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 constitutive model state update.

Methods

__init__(strain_formulation, problem_type, material_properties)[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).

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

get_material_properties()

Constitutive model material properties.

Returns:

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

Return type:

dict

get_name()

Get constitutive model name.

Returns:

name – Constitutive model name.

Return type:

str

static get_required_properties()[source]

Get constitutive model material properties and constitutive options.

Input data file syntax:

elastic_symmetry < option > < number_of_elastic_moduli >
    euler_angles < value > < value > < value >
    Eijkl < value >
    Eijkl < value >
    ...

where

  • elastic_symmetry - Elastic symmetry and number of elastic moduli.

  • euler_angles - Euler angles (degrees) sorted according with Bunge convention. Not required if elastic_symmetry is set as isotropic.

  • Eijkl - Elastic moduli. Young’s modulus (E) and Poisson’s coefficient (v) may be alternatively provided if elastic_symmetry is set as isotropic.


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

Get material constitutive model source.

Returns:

source – Material constitutive model source.

Return type:

{‘crate’,}

get_strain_type()

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’}

state_init()[source]

Get initialized material constitutive model state variables.

Constitutive model state variables:

  • e_strain_mf

    • Elastic deformation gradient (matricial form).

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

  • strain_mf

    • Deformation gradient (matricial form).

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

  • stress_mf

    • First Piola-Kirchhoff stress tensor (matricial form).

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

  • is_su_fail

    • State update failure flag.


Returns:

state_variables_init – Initialized constitutive model material state variables.

Return type:

dict

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

Perform constitutive model state update.

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

  • state_variables_old (dict) – Last converged constitutive model material 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.