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: :paramsimcoon.modular.ModularMaterial. The configuration supplies its: :param own flattened properties and state-variable count::: from simcoon.modular import elastic_modelconfiguration = 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
2DaxiModelingSpace:Isotropic UMATs (e.g.
ELI,NEOH,MOON,EPICPJ2 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 (seefedoo.weakform.stress_equilibrium._comp_grad_disp()).A modular material uses the
MODULUMAT. Undernlgeom="UL"it requires thelog_Rrate, the default. Small-strain analyses are unaffected.Under
nlgeom="TL"the laws run the total formulation: they are fed the material logarithmic strain ln U and work on the stress T dual to it (seefedoo.weakform.StressEquilibrium.kinematic_form).
- __init__(umat_name, props, tangent_mode=1, name='')
Methods
Simcoon.from_modular(modular_material[, ...])Build a Simcoon law from a modular material configuration.
Convert a full 3D tangent matrix H in an equivalent behavior in 2D with the plane stress assumption.
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
assemblyGauss 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.
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.
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.
Hyperelastic kernels built from F (
_Lt_from_F) are objective by construction and keep the initial material basis.Name of the constitutive law.
Whether simcoon serves this law under the total formulation.
Tag set to True once the law is intialized.