fedoo.weakform.ImplicitDynamic

class ImplicitDynamic(constitutivelaw, density, beta=0.25, gamma=0.5, name='', nlgeom=False, space=None)

Weak formulation for implicit dynamic problems.

Constructs a dynamic weak formulation by combining internal forces (stiffness matrix) to inertia (mass matrix). Time integration is performed using the Newmark-beta scheme.

By default, the Constant Average Acceleration method is used (\(\\gamma=0.5, \\beta=0.25\)), which is unconditionally stable and energy-preserving.

Parameters:
  • stiffness (str, ConstitutiveLaw, WeakForm) –

    Defines the internal forces (stiffness). - If str or ConstitutiveLaw: Automatically creates a

    fedoo.weakform.StressEquilibrium instance based on the given constitutive law.

    • If WeakForm: Uses the provided weakform as the stiffness component.

  • density (float, ndarray, or WeakForm) –

    Defines the mass inertia component. - If float or ndarray: Material density at Gauss points for 3D/2D

    solid model.

    • If WeakForm: A custom weakform used for mass assembly.

  • beta (float, default=0.25) – Newmark integration parameter $beta$. Controls the acceleration variation over the time step.

  • gamma (float, default=0.5) – Newmark integration parameter $gamma$. Controls numerical damping.

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

  • nlgeom (bool or {'UL', 'TL'}, optional) –

    Enable geometric nonlinearities:

    • True or 'UL': Updated Lagrangian method.

    • 'TL': Total Lagrangian method.

    • None: Uses the global problem.nlgeom setting.

  • space (ModelingSpace, optional) – Modeling space for the weakform. Defaults to the currently active ModelingSpace.

Returns:

A weakform containing both stiffness and inertia components configured for Newmark time integration.

Return type:

ImplicitDynamicSum

Notes

  • Stability: The method is unconditionally stable if $gamma ge 0.5$ and $beta ge 0.25(gamma + 0.5)^2$.

  • Numerical Damping: Use $gamma > 0.5$ to introduce algorithmic damping, useful for filtering high-frequency parasitic oscillations.

  • Physical Damping: To include Rayleigh damping ($mathbf{C} = alpha mathbf{M} + beta mathbf{K}$), modify the rayleigh_damping attribute of the returned object.

    wf = fd.weakform.ImplicitDynamic(material, density)
    wf.rayleigh_damping = [alpha, beta]
    
__init__(**kwargs)