12 #ifndef MFEM_TMOP_TOOLS_HPP
13 #define MFEM_TMOP_TOOLS_HPP
30 const double dt_scale;
32 void ComputeAtNewPositionScalar(
const Vector &new_nodes,
Vector &new_field);
36 ode_solver(), nodes0(), field0(), dt_scale(timestep_scale) { }
167 else { MFEM_ABORT(
"Invalid type"); }
180 else { MFEM_ABORT(
"Invalid type"); }
186 const TargetConstructor &tc, Mesh &pmesh,
187 char *title,
int position);
190 const TargetConstructor &tc, ParMesh &pmesh,
191 char *title,
int position);
Abstract class for all finite elements.
VectorGridFunctionCoefficient u_coeff
void vis_tmop_metric_p(int order, TMOP_QualityMetric &qm, const TargetConstructor &tc, ParMesh &pmesh, char *title, int position)
Class for an integration rule - an Array of IntegrationPoint.
Class for grid function - Vector with associated FE space.
const IntegrationRule & Get(int GeomType, int Order)
Returns an integration rule for given GeomType and Order.
void UpdateDiscreteTC(const TMOP_Integrator &ti, const Vector &x_new) const
void SetIntegrationRules(IntegrationRules &irules, int order)
Prescribe a set of integration rules; relevant for mixed meshes.
const IntegrationRule & ir
Base abstract class for first order time dependent operators.
Container class for integration rules.
const IntegrationRule & GetIntegrationRule(const FiniteElement &el) const
virtual void SetSolver(Solver &solver)
Set the linear solver for inverting the Jacobian.
Abstract parallel finite element space.
void vis_tmop_metric_s(int order, TMOP_QualityMetric &qm, const TargetConstructor &tc, Mesh &mesh, char *title, int position)
virtual void ComputeAtNewPosition(const Vector &new_nodes, Vector &new_field)
Geometry::Type GetGeomType() const
Returns the Geometry::Type of the reference element.
AdvectorCG(double timestep_scale=0.5)
SerialAdvectorCGOper(const Vector &x_start, GridFunction &vel, FiniteElementSpace &fes)
virtual void Mult(const Vector &ind, Vector &di_dt) const
Perform the action of the operator: y = k = f(x, t), where k solves the algebraic equation F(x...
Performs a single remap advection step in serial.
TMOPNewtonSolver(const IntegrationRule &irule, int type=0)
virtual void Mult(const Vector &b, Vector &x) const
Solve the nonlinear system with right-hand side b.
IntegrationRules * IntegRules
virtual void ProcessNewState(const Vector &x) const
This method can be overloaded in derived classes to perform computations that need knowledge of the n...
The classical explicit forth-order Runge-Kutta method, RK4.
virtual void SetPreconditioner(Solver &pr)
This should be called before SetOperator.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
virtual void Mult(const Vector &b, Vector &x) const
Solve the nonlinear system with right-hand side b.
ParAdvectorCGOper(const Vector &x_start, GridFunction &vel, ParFiniteElementSpace &pfes)
TMOPNewtonSolver(MPI_Comm comm, const IntegrationRule &irule, int type=0)
Performs a single remap advection step in parallel.
virtual void SetSolver(Solver &solver)
Set the linear solver for inverting the Jacobian.
virtual void ComputeAtNewPosition(const Vector &new_nodes, Vector &new_field)
void vel(const Vector &x, double t, Vector &u)
virtual void SetInitialField(const Vector &init_nodes, const Vector &init_field)
VectorGridFunctionCoefficient u_coeff
virtual void Mult(const Vector &ind, Vector &di_dt) const
Perform the action of the operator: y = k = f(x, t), where k solves the algebraic equation F(x...
virtual void Mult(const Vector &b, Vector &x) const
Solve the nonlinear system with right-hand side b.
FindPointsGSLIB can robustly evaluate a GridFunction on an arbitrary collection of points...
virtual double ComputeScalingFactor(const Vector &x, const Vector &b) const
This method can be overloaded in derived classes to implement line search algorithms.
Vector coefficient defined by a vector GridFunction.
virtual void SetSolver(Solver &solver)
Set the linear solver for inverting the Jacobian.
virtual void SetInitialField(const Vector &init_nodes, const Vector &init_field)
A TMOP integrator class based on any given TMOP_QualityMetric and TargetConstructor.