fedoo.constitutivelaw.ShellLaminateNonLinear

class ShellLaminateNonLinear(list_mat, list_thickness, n_thickness_points=3, k=1, name='')

Layered shell integrated from nonlinear plane-stress material points.

Each layer owns an independent copy of its material law and its internal variables. Membrane and bending stresses and tangents are integrated at Gauss–Legendre points in every layer. Transverse shear is treated elastically using the three-dimensional initial tangent of each material and the shell correction factor k.

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:
  • list_mat (sequence of ConstitutiveLaw or str) – Material law, or registered material name, for every layer, ordered from the bottom to the top surface.

  • list_thickness (sequence of float) – Thickness of every layer.

  • n_thickness_points (int or sequence of int, default=3) – Number of Gauss–Legendre points in each layer.

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

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

__init__(list_mat, list_thickness, n_thickness_points=3, k=1, name='')

Methods

ShellLaminateNonLinear.compute_area_density()

ShellLaminateNonLinear.compute_rotary_density()

ShellLaminateNonLinear.get_all()

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

ShellLaminateNonLinear.get_shell_stiffness_matrix()

ShellLaminateNonLinear.get_strain(assembly, ...)

Return the last computed strain associated to the given assembly.

ShellLaminateNonLinear.get_stress(**kargs)

ShellLaminateNonLinear.get_stress_distribution(...)

Return layerwise stresses at one shell Gauss point.

ShellLaminateNonLinear.initialize(assembly, pb)

Initialize the constitutive law for the current problem.

ShellLaminateNonLinear.reset()

Reset the constitutive law.

ShellLaminateNonLinear.set_start(assembly, pb)

Begin a new time iteration.

ShellLaminateNonLinear.to_start(assembly, pb)

Restart the current time iteration.

ShellLaminateNonLinear.update(assembly, pb)

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

ShellLaminateNonLinear.area_density

Mass per unit midsurface area.

ShellLaminateNonLinear.name

Name of the constitutive law.

ShellLaminateNonLinear.rotary_density

Mass moment of inertia per unit midsurface area.

ShellLaminateNonLinear.thickness

Shell thickness.

ShellLaminateNonLinear.k

Shear shape factor.

ShellLaminateNonLinear.is_initialized

Tag set to True once the law is intialized.