Gyselalib++
SplineFootFinder< TimeStepper, AdvectionDomain, Mapping > Class Template Reference

Define a base class for all the time integration methods used for the advection. More...

Inheritance diagram for SplineFootFinder< TimeStepper, AdvectionDomain, Mapping >:
IFootFinder

Public Member Functions

 SplineFootFinder (TimeStepper const &time_stepper, AdvectionDomain const &advection_domain, Mapping const &mapping, SplineRThetaBuilder const &builder_advection_field, SplineRThetaEvaluatorConstBound const &evaluator_advection_field, double epsilon=1e-12)
 Instantiate a time integration method for the advection operator. More...
 
void operator() (host_t< FieldRTheta< CoordRTheta >> feet, host_t< DConstVectorFieldRTheta< X, Y >> advection_field, double dt) const final
 Advect the feet over \( dt \). More...
 

Detailed Description

template<class TimeStepper, class AdvectionDomain, class Mapping>
class SplineFootFinder< TimeStepper, AdvectionDomain, Mapping >

Define a base class for all the time integration methods used for the advection.

Template Parameters
TimeStepperA child class of ITimeStepper providing a time integration method.
AdvectionDomainA child class of AdvectionDomain providing the informations about the advection index range.
See also
BslAdvectionRTheta

Constructor & Destructor Documentation

◆ SplineFootFinder()

template<class TimeStepper , class AdvectionDomain , class Mapping >
SplineFootFinder< TimeStepper, AdvectionDomain, Mapping >::SplineFootFinder ( TimeStepper const &  time_stepper,
AdvectionDomain const &  advection_domain,
Mapping const &  mapping,
SplineRThetaBuilder const &  builder_advection_field,
SplineRThetaEvaluatorConstBound const &  evaluator_advection_field,
double  epsilon = 1e-12 
)
inline

Instantiate a time integration method for the advection operator.

Parameters
[in]time_stepperThe time integration method used to solve the characteristic equation (ITimeStepper).
[in]advection_domainAn AdvectionDomain object which defines in which index range we advect the characteristics.
[in]mappingThe mapping from the logical domain to the physical domain.
[in]builder_advection_fieldThe spline builder which computes the spline representation of the advection field.
[in]evaluator_advection_fieldThe B-splines evaluator to evaluate the advection field.
[in]epsilon\( \varepsilon \) parameter used for the linearization of the advection field around the central point.
Template Parameters
TimeStepperA child class of ITimeStepper providing a time integration method.
AdvectionDomainA child class of AdvectionDomain providing the informations about the advection index range.
See also
ITimeStepper

Member Function Documentation

◆ operator()()

template<class TimeStepper , class AdvectionDomain , class Mapping >
void SplineFootFinder< TimeStepper, AdvectionDomain, Mapping >::operator() ( host_t< FieldRTheta< CoordRTheta >>  feet,
host_t< DConstVectorFieldRTheta< X, Y >>  advection_field,
double  dt 
) const
inlinefinalvirtual

Advect the feet over \( dt \).

From the advection field in the physical index range, compute the advection field in the right index range an compute its B-splines coefficients. Then, use the given time integration method (time_stepper) to solve the characteristic equation over \( dt \).

Parameters
[in,out]feetOn input: the mesh points. On output: the characteristic feet.
[in]advection_fieldThe advection field in the physical index range.
[in]dtThe time step.

Implements IFootFinder.


The documentation for this class was generated from the following file: