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) with 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:
constitutivelaw (str, ConstitutiveLaw, WeakForm) –
Defines the internal forces (stiffness).
If a string or
ConstitutiveLawis given, afedoo.weakform.StressEquilibriuminstance is created.If a
WeakFormis given, it is used as the stiffness component.
density (float, ndarray, or WeakForm) –
Defines the mass inertia component.
A float or array gives the material density at Gauss points.
A
WeakFormprovides a custom mass formulation.
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 weak form.
nlgeom (bool or {'UL', 'TL'}, optional) – Geometric-nonlinearity formulation.
Trueand"UL"select the updated Lagrangian method;"TL"selects the total Lagrangian method.space (ModelingSpace, optional) – Modeling space. Defaults to the active modeling space.
Notes
The method is unconditionally stable if \(\gamma \ge 0.5\) and \(\beta \ge 0.25(\gamma + 0.5)^2\).
Use \(\gamma > 0.5\) to introduce algorithmic damping.
Physical Rayleigh damping can be set through
rayleigh_damping.
Example
wf = fd.weakform.ImplicitDynamic(material, density) wf.rayleigh_damping = [alpha, beta]
- __init__(constitutivelaw, density, beta=0.25, gamma=0.5, name='', nlgeom=False, space=None)
Methods
Return the list of all weak forms.
Return the optional dissipative provider for a time integrator.
Return the optional storage weakform for a time integrator.
ImplicitDynamic.get_weak_equation(assembly, pb)ImplicitDynamic.initialize(assembly, pb)Iterate over the already flattened list of weakforms.
ImplicitDynamic.set_damping([damping])Mechanical alias for
set_dissipation.Attach a dissipative contribution.
ImplicitDynamic.set_inertia(density_or_storage)Mechanical alias for
set_storage.ImplicitDynamic.set_start(assembly, pb)ImplicitDynamic.set_storage(storage[, evolution])Attach a time-storage weakform to this static weakform.
ImplicitDynamic.sum(wf1, wf2)ImplicitDynamic.to_start(assembly, pb)ImplicitDynamic.update(assembly, pb)ImplicitDynamic.update_2(assembly, pb)Return the name of the WeakForm.
Number of variables in the modeling space associated to the WeakForm.
Coefficients [a, b] for Rayleigh damping.
Return the ModelingSpace associated to the WeakForm if defined.