fedoo.weakform.PlateEquilibriumFI

class PlateEquilibriumFI(plate_properties, true_drilling_rotation=True, drill_stiffness_coefficient=0.01, name='', nlgeom=None, space=None, *, consistent_tangent=False)

Mechanical equilibrium equation for plate models, with full integration.

This weakform implements the mechanical equilibrium for shell/plate elements. It uses full integration (FI) by default, which may lead to shear or membrane locking for linear elements (e.g., Tri3, Quad4). This weak form is not compatible with MITC or reduced integration elements.

:mod:`fedoo.weakform.PlateEquilibrium` should be prefered unless you know what you are doing.

Geometrical nonlinearities are implemented via a corotational approach, decomposing the motion into a rigid-body rotation and a local deformational part.

Parameters:
  • plate_properties (ConstitutiveLaw name (str) or ConstitutiveLaw object) – Shell Constitutive Law defining the membrane, bending, and shear stiffness (e.g., fedoo.constitutivelaw.ShellHomogeneous or fedoo.constitutivelaw.ShellLaminate).

  • true_drilling_rotation (bool, default=True) –

    Only active if nlgeom is enabled. - If True: Enforces a kinematic link between the nodal RotZ and

    the in-plane displacement gradients (0.5 * [dv/dx - du/dy]). This allows for physically consistent in-plane material rotations, essential for large-deformation anisotropic analysis.

    • If False: Applies a simple numerical penalty on the nodal RotZ to prevent matrix singularity without coupling it to the membrane deformation.

  • drill_stiffness_coefficient (float, default=1e-2) – The penalty coefficient used for the drilling rotation constraint scaled by the initial membrane shear stiffness, held fixed during the solve for both tangent options and both drilling modes. Increasing this value enforces the constraint more strictly but may introduce drilling locking in fully integrated elements.

  • consistent_tangent (bool, default=False) – For UL, analytically differentiate the complete corotational residual, including current geometry, frame, FI/SRI/MITC interpolation and drilling. The tangent can be nonsymmetric. False retains the historical material plus membrane-force geometric stiffness. Both options use the same fixed initial stiffness scale for the drilling penalty.

  • name (str, optional) – Name of the WeakForm.

  • nlgeom (bool or str, optional) – Property used to treat geometric nonlinearities. If True, a step-by-step frame update is used.

__init__(plate_properties, true_drilling_rotation=True, drill_stiffness_coefficient=0.01, name='', nlgeom=None, space=None, *, consistent_tangent=False)

Methods

PlateEquilibriumFI.copy()

Return a shallow copy sharing the weak form's model objects.

PlateEquilibriumFI.drill_constraint_operator()

PlateEquilibriumFI.generalized_strain_operator()

PlateEquilibriumFI.get_all()

Return the list of all weak forms.

PlateEquilibriumFI.get_dissipation()

Return the optional dissipative provider for a time integrator.

PlateEquilibriumFI.get_storage()

Return the optional storage weakform for a time integrator.

PlateEquilibriumFI.get_weak_equation(...)

PlateEquilibriumFI.initialize(assembly, pb)

PlateEquilibriumFI.iter_leaf()

Iterate over the leaf weakforms contained in this object.

PlateEquilibriumFI.reset()

PlateEquilibriumFI.set_damping([damping])

Mechanical alias for set_dissipation.

PlateEquilibriumFI.set_dissipation([...])

Attach a dissipative contribution.

PlateEquilibriumFI.set_inertia(...)

Mechanical alias for set_storage.

PlateEquilibriumFI.set_start(assembly, pb)

PlateEquilibriumFI.set_storage(storage[, ...])

Attach a time-storage weakform to this static weakform.

PlateEquilibriumFI.sum(wf1, wf2)

PlateEquilibriumFI.to_start(assembly, pb)

PlateEquilibriumFI.update(assembly, pb)

PlateEquilibriumFI.update_2(assembly, pb)

Prepare tangent fields once, after the constitutive state update.

PlateEquilibriumFI.name

Return the name of the WeakForm.

PlateEquilibriumFI.nvar

Number of variables in the modeling space associated to the WeakForm.

PlateEquilibriumFI.space

Return the ModelingSpace associated to the WeakForm if defined.