20 #ifndef LIBMESH_NEWMARK_SOLVER_H 21 #define LIBMESH_NEWMARK_SOLVER_H 24 #include "libmesh/second_order_unsteady_solver.h" 116 virtual void solve ()
override;
204 #endif // LIBMESH_NEWMARK_SOLVER_H virtual bool element_residual(bool request_jacobian, DiffContext &) override
This method uses the DifferentiablePhysics' element_time_derivative() and element_constraint() to bui...
Real _gamma
The value for to employ.
This class provides all data required for a physics package (e.g.
bool _initial_accel_set
This method requires an initial acceleration.
void set_gamma(Real gamma)
Setter for .
virtual bool side_residual(bool request_jacobian, DiffContext &) override
This method uses the DifferentiablePhysics' side_time_derivative() and side_constraint() to build a f...
This class defines a Newmark time integrator for second order (in time) DifferentiableSystems.
The libMesh namespace provides an interface to certain functionality in the library.
void(DiffContext::* ReinitFuncType)(Real)
virtual void compute_initial_accel()
This method uses the specified initial displacement and velocity to compute the initial acceleration ...
virtual ~NewmarkSolver()
Destructor.
NewmarkSolver(sys_type &s)
Constructor.
This class provides a specific system class.
virtual bool _general_residual(bool request_jacobian, DiffContext &, ResFuncType mass, ResFuncType damping, ResFuncType time_deriv, ResFuncType constraint, ReinitFuncType reinit)
This method is the underlying implementation of the public residual methods.
virtual void reinit() override
The reinitialization function.
void set_initial_accel_avail(bool initial_accel_set)
Allow the user to (re)set whether the initial acceleration is available.
bool(DifferentiablePhysics::* ResFuncType)(bool, DiffContext &)
Definitions of argument types for use in refactoring subclasses.
virtual void advance_timestep() override
This method advances the solution to the next timestep, after a solve() has been performed.
virtual bool nonlocal_residual(bool request_jacobian, DiffContext &) override
This method uses the DifferentiablePhysics' nonlocal_time_derivative() and nonlocal_constraint() to b...
Generic class from which second order UnsteadySolvers should subclass.
This is a generic class that defines a solver to handle time integration of DifferentiableSystems.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void set_beta(Real beta)
Setter for .
virtual Real error_order() const override
Error convergence order: 2 for , 1 otherwise.
bool _is_accel_solve
Need to be able to indicate to _general_residual if we are doing an acceleration solve or not...
virtual void solve() override
This method solves for the solution at the next timestep.
UnsteadySolver Parent
The parent class.
virtual void adjoint_advance_timestep() override
This method advances the adjoint solution to the previous timestep, after an adjoint_solve() has been...
void project_initial_accel(FunctionBase< Number > *f, FunctionBase< Gradient > *g=nullptr)
Specify non-zero initial acceleration.
Real _beta
The value for the to employ.