fedoo.weakform.PlateEquilibrium
- class PlateEquilibrium(plate_properties, true_drilling_rotation=True, drill_stiffness_coefficient=0.01, name='', nlgeom=None, space=None)
Mechanical equilibrium equation for plate models.
The shear terms may be treated with different interpolation strategies to allow the use of advanced structural elements:
MITC (mixed interpolation of tensorial components): ‘ptri3mitc’, ‘pquad4mitc’, ‘ptri6mitc’, ‘pquad8mitc’, ‘pquad9mitc’. These elements use a mixed interpolation of the transverse shear strain (decoupled from the displacement and rotation degrees of freedom). This avoids most shear locking and remains robust under mesh distortion, especially for linear interpolations. Note that ‘ptri6mitc’ may become unstable in geometrically nonlinear analyses.
SRI (selective reduced interpolation): ‘ptri3sri’, ‘pquad4sri’. These elements use reduced integration to compute the transverse shear energy, while maintaining full integration for membrane and bending energies. Though better than its fully integrated counterpart, ‘ptri3sri’ is prone to shear locking and should generally be avoided. ‘pquad4sri’, however, presents an excellent performance compromise.
Fully integrated elements: ‘ptri3’, ‘pquad4’, ‘ptri6’, ‘pquad8’, ‘pquad9’.
By default, the weak form utilizes MITC formulations for ‘tri3’ and ‘quad4’ geometrical interpolations, and fully integrated elements for all higher-order shapes.
This weak form must be used in combination with a shell constitutive law, such as
fedoo.constitutivelaw.ShellHomogeneousorfedoo.constitutivelaw.ShellLaminate. Geometric nonlinearities are accounted for using a corotational approach.- Parameters:
plate_properties (str or ConstitutiveLaw object) – Shell constitutive law defining the membrane, bending, and shear stiffness (e.g.,
fedoo.constitutivelaw.ShellHomogeneousorfedoo.constitutivelaw.ShellLaminate).true_drilling_rotation (bool, default=True) –
Only active if nlgeom is enabled.
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, which are essential for large-deformation anisotropic analysis.
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. Typically scaled by the membrane shear stiffness. Increasing this value enforces the constraint more strictly but may introduce drilling locking in fully integrated elements.
name (str, optional) – Name of the WeakForm instance.
nlgeom (bool or str, optional) – Property used to treat geometric nonlinearities. If True, a step-by-step corotational frame update is activated.
- __init__(plate_properties, true_drilling_rotation=True, drill_stiffness_coefficient=0.01, name='', nlgeom=None, space=None)
Methods
Return the list of all weak forms.
PlateEquilibrium.get_weak_equation(assembly, pb)PlateEquilibrium.initialize(assembly, pb)PlateEquilibrium.nvar(self)Return the number of variables used in the modeling space associated to the WeakForm.
PlateEquilibrium.set_damping([damping])Mechanical alias for
set_dissipation.Attach a dissipative contribution.
PlateEquilibrium.set_inertia(density_or_storage)Mechanical alias for
set_storage.PlateEquilibrium.set_start(assembly, pb)PlateEquilibrium.set_storage(storage[, ...])Attach a time-storage weakform to this static weakform.
PlateEquilibrium.sum(wf1, wf2)PlateEquilibrium.to_start(assembly, pb)PlateEquilibrium.update(assembly, pb)PlateEquilibrium.update_2(assembly, pb)Return the name of the WeakForm.
Return the ModelingSpace associated to the WeakForm if defined.