fedoo.constitutivelaw.ShellHomogeneousNonLinear

class ShellHomogeneousNonLinear(material, thickness, n_thickness_points=5, k=1, name='')

Homogeneous shell integrated from nonlinear plane-stress material points.

The membrane and bending response is obtained by calling a private copy of material at Gauss–Legendre points through the thickness. The material must support the standard Fedoo "2Dstress" constitutive-law interface. Transverse shear retains the elastic Reissner–Mindlin treatment used by ShellHomogeneous.

This implementation is restricted to small-strain material laws. For plasticity (or any law needing a plane-stress return mapping) use a Simcoon law, e.g. fedoo.constitutivelaw.Simcoon("EPICP", props); the pedagogical ElastoPlasticity is 3D-only and does not support "2Dstress".

Parameters:
  • material (ConstitutiveLaw or str) – Plane-stress-compatible material law or its registered name.

  • thickness (float) – Shell thickness.

  • n_thickness_points (int, default=5) – Number of Gauss–Legendre points through the thickness.

  • k (float, default=1) – Transverse shear correction factor.

  • name (str, optional) – Name of the shell constitutive law.

__init__(material, thickness, n_thickness_points=5, k=1, name='')

Methods

ShellHomogeneousNonLinear.compute_area_density()

ShellHomogeneousNonLinear.compute_rotary_density()

ShellHomogeneousNonLinear.get_all()

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

ShellHomogeneousNonLinear.get_shell_stiffness_matrix()

ShellHomogeneousNonLinear.get_strain(...)

Return the last computed strain associated to the given assembly.

ShellHomogeneousNonLinear.get_stress(**kargs)

ShellHomogeneousNonLinear.get_stress_distribution(...)

Return stresses through the thickness at one shell Gauss point.

ShellHomogeneousNonLinear.initialize(...)

Initialize the constitutive law for the current problem.

ShellHomogeneousNonLinear.reset()

Reset the constitutive law.

ShellHomogeneousNonLinear.set_start(assembly, pb)

Begin a new time iteration.

ShellHomogeneousNonLinear.to_start(assembly, pb)

Restart the current time iteration.

ShellHomogeneousNonLinear.update(assembly, pb)

Update shell stress from the strain computed by the weak form.

ShellHomogeneousNonLinear.area_density

Mass per unit midsurface area.

ShellHomogeneousNonLinear.name

Name of the constitutive law.

ShellHomogeneousNonLinear.rotary_density

Mass moment of inertia per unit midsurface area.

ShellHomogeneousNonLinear.thickness

Shell thickness.

ShellHomogeneousNonLinear.k

Shear shape factor.

ShellHomogeneousNonLinear.is_initialized

Tag set to True once the law is intialized.