Skip to content

Generalized Alpha and Moreau-Jean Integrators

RibleExtraIntegrators extends the core framework with additional time integration algorithms aimed at regimes where the default Zhong06 family is not the only useful choice. In practice, the package currently provides alternative integrators for non-smooth dynamics (Moreau) and additional solver families for specialized problems.

Generalized Alpha

GeneralizedAlpha is a higher-order implicit time integration scheme for structural dynamics. As an evolution of the Newmark family, it introduces parameters that let you trade high-frequency numerical damping against low-frequency accuracy.

Its main characteristics are:

  • second-order accuracy for the intended class of problems,

  • tunable numerical damping through the high-frequency spectral radius ,

  • good long-time behavior for stiff structural systems.

Parameter configuration

The dissipation level is controlled by . When  , the method approaches the no-damping limit; when  , it applies the strongest high-frequency damping.

julia
using Rible
using RibleExtraIntegrators

solver = DynamicsSolver(
    RibleExtraIntegrators.GeneralizedAlpha(0.8)
)

solve!(prob, solver; tspan=(0.0, 10.0), dt=1e-3)

Moreau-Jean Method

Moreau implements a classical time-stepping method for non-smooth mechanics. It is well suited to systems with impacts, unilateral contact, and friction, where velocities may jump and where event-by-event smooth integration becomes inconvenient or unstable.

Theoretical basis

In the Moreau-Jean framework, the dynamics are written in measure-differential form:

where is the mass matrix, is the generalized velocity, collects smooth forces, and is the nonsmooth impulse contribution generated by contact.

After time discretization with parameter , the continuous problem becomes a sequence of complementarity-type subproblems.

Constructor

The Moreau integrator is parameterized by the discretization parameter :

julia
using Rible
using RibleExtraIntegrators

solver = DynamicsSolver(
    RibleExtraIntegrators.Moreau(0.5)
)

solve!(prob, solver; tspan=(0.0, 0.1), dt=1e-3)

Test suite

The package test suite includes a slider-crank benchmark that compares Moreau(0.5) against the default Zhong06() solver on the same model. The test verifies trajectory agreement and energy conservation between the two methods.

See RibleExtraIntegrators/test/slider_crank.jl for the complete benchmark code.