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. In finite strain it requires thelog_Rformulation; setweakform.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.
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.
Name of the constitutive law.
Tag set to True once the law is intialized.