CentralDifference

Implementation of explicit, Central Difference integration without invoking any of the nonlinear solver

Description

Central difference integration is a common explicit integration scheme, typically used in structural dynamics. For a variable, uu, at time tt with a time step, Δt\Delta t, the central difference approximations for the first and second time derivatives, u˙\dot{u} and u¨\ddot{u}, are given as,

u˙(t)=u(t+Δt)u(tΔt)2Δtu¨(t)=u(t+Δt)2u(t)+u(tΔt)Δt2\begin{aligned} \mathbf{\dot{u}}(t) &=& \frac{\mathbf{u}(t+\Delta t)-\mathbf{u}(t-\Delta t)}{2 \Delta t} \\ \mathbf{\ddot{u}}(t) &=& \frac{\mathbf{u}(t+\Delta t)-2\mathbf{u}(t)+\mathbf{u}(t-\Delta t)}{\Delta t^2} \end{aligned}

The central difference time integrator derives from the ActuallyExplicitEuler class and therefore circumvents the nonlinear solver. It can be used with consistent, lumped or lump_preconditioned, solve_type options. Information on these solve options can be found on the ActuallyExplicitEuler page.

Input Parameters

  • solve_typeconsistentThe way to solve the system. A 'consistent' solve uses the full mass matrix and actually needs to use a linear solver to solve the problem. 'lumped' uses a lumped mass matrix with a simple inversion - incredibly fast but may be less accurate. 'lump_preconditioned' uses the lumped mass matrix as a preconditioner for the 'consistent' solve

    Default:consistent

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:consistent, lumped, lump_preconditioned

    Controllable:No

    Description:The way to solve the system. A 'consistent' solve uses the full mass matrix and actually needs to use a linear solver to solve the problem. 'lumped' uses a lumped mass matrix with a simple inversion - incredibly fast but may be less accurate. 'lump_preconditioned' uses the lumped mass matrix as a preconditioner for the 'consistent' solve

  • use_constant_massFalseIf set to true, will only compute the mass matrix in the first time step, and keep using it throughout the simulation.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:If set to true, will only compute the mass matrix in the first time step, and keep using it throughout the simulation.

  • variablesA subset of the variables that this time integrator should be applied to

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:A subset of the variables that this time integrator should be applied to

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters