fedoo.constitutivelaw.Simcoon

class Simcoon(umat_name, props, tangent_mode=1, name='')

Constitutive laws from the simcoon library.

The constitutive Law should be associated with fedoo.weakform.StressEquilibrium

Parameters:
  • umat_name (str) – Name of the constitutive law.

  • props (numpy.array) – The constitive laws properties

  • tangent_mode (int, default=1) – Tangent selector forwarded to the Simcoon UMAT.

  • name (str) – The name of the constitutive law

  • constructor (Alternative)

  • -----------------------

:param from_modular() builds the same Fedoo wrapper from a: :param simcoon.modular.ModularMaterial. The configuration supplies its: :param own flattened properties and state-variable count::: from simcoon.modular import elastic_model

configuration = elastic_model(E=210000.0, nu=0.3) material = Simcoon.from_modular(configuration, name=”steel”)

Parameters:
  • is (The regular constructor)

  • ``Simcoon(umat_name

  • props

  • tangent_mode=1

  • backward (name="")``. For)

  • compatibility

  • still (a string passed as the third positional argument is)

  • name. (interpreted as)

Notes

UMAT compatibility with the 2Daxi ModelingSpace:

  • Isotropic UMATs (e.g. ELI, NEOH, MOON, EPICP J2 plasticity): supported. Hooke’s response and J2 invariants are invariant under the slot remapping fedoo applies in 2Daxi (cf. fedoo.core.mechanical3d.Mechanical3D).

  • Orthotropic / anisotropic UMATs (e.g. ELIO, composite Mori-Tanaka, anisotropic damage / plasticity): user-supplied material direction “3” is silently the hoop direction in 2Daxi (because slot 2 of the 6-vector carries ε_θθ). Define the stiffness / hardening parameters with this convention or the response will not match the intended material orientation.

  • Hyperelastic laws (those with _Lt_from_F = True) are gated on plane stress; they remain compatible with 2Daxi at finite strain provided the F[θθ] = r/R fix is in effect (see fedoo.weakform.stress_equilibrium._comp_grad_disp()).

  • A modular material uses the MODUL UMAT. In finite strain it requires the log_R formulation; set weakform.corate = "log_R" before initializing the problem. Small-strain analyses are unaffected.

__init__(umat_name, props, tangent_mode=1, name='')

Methods

Simcoon.from_modular(modular_material[, ...])

Build a Simcoon law from a modular material configuration.

Simcoon.get_H_plane_stress(H)

Convert a full 3D tangent matrix H in an equivalent behavior in 2D with the plane stress assumption.

Simcoon.get_all()

Return a dict with all the known ConstitutiveLaw (with a name).

Simcoon.get_current_local_frame([assembly])

Return the trial material frame in global coordinates.

Simcoon.get_local_frame([assembly])

Return material frames, resolved at assembly Gauss points.

Simcoon.get_local_rotation([assembly, ...])

Return a Simcoon rotation for the requested material frame.

Simcoon.get_tangent_matrix(assembly[, dimension])

Simcoon.get_temp_gp(assembly, pb)

Return the current temperature field at Gauss points, if any.

Simcoon.global2local_H(H[, assembly, current])

Rotate a global stiffness to material axes using Simcoon.

Simcoon.global2local_rotation_increment(DR)

Express a finite rotation increment in the initial material basis.

Simcoon.global2local_strain(strain[, ...])

Express engineering-strain vector(s) from global to material axes.

Simcoon.global2local_stress(stress[, ...])

Express stress Voigt vector(s) from global to material axes.

Simcoon.global2local_tensor(tensor[, assembly])

Change both axes of 3x3 tensor fields to the initial material basis.

Simcoon.initialize(assembly, pb)

Initialize the constitutive law for the current problem.

Simcoon.local2global_H(H[, assembly, current])

Rotate a material stiffness to global axes using Simcoon.

Simcoon.local2global_strain(strain[, ...])

Express engineering-strain vector(s) from material to global axes.

Simcoon.local2global_stress(stress[, ...])

Express stress Voigt vector(s) from material to global axes.

Simcoon.reset()

Reset the constitutive law.

Simcoon.set_density(density)

Set the mass density associated with this mechanical material.

Simcoon.set_initial_statev(assembly, label, ...)

Set a labeled initial state-variable field on an assembly.

Simcoon.set_local_frame(local_frame[, location])

Define the material coordinate frame.

Simcoon.set_start(assembly, pb)

Begin a new time iteration.

Simcoon.to_start(assembly, pb)

Restart the current time iteration.

Simcoon.update(assembly, pb)

Update the constitutive law for the current problem state.

Simcoon.is_isotropic

Simcoon.manages_material_frame

Simcoon.name

Name of the constitutive law.

Simcoon.required_corate

Simcoon.is_initialized

Tag set to True once the law is intialized.