PFASST++
pfasst::ITransfer< time > Class Template Referenceabstract

Abstract time/space transfer (restrict/interpolate) class. More...

#include <interfaces.hpp>

+ Inheritance diagram for pfasst::ITransfer< time >:
+ Collaboration diagram for pfasst::ITransfer< time >:

Public Member Functions

virtual ~ITransfer ()
 
virtual void interpolate_initial (shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src)
 Interpolate initial condition from the coarse sweeper to the fine sweeper. More...
 
virtual void interpolate (shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src, bool interp_initial=false)=0
 Interpolate, in time and space, from the coarse sweeper to the fine sweeper. More...
 
virtual void restrict_initial (shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src)
 Restrict initial condition from the fine sweeper to the coarse sweeper. More...
 
virtual void restrict (shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src, bool restrict_initial=false)=0
 Restrict, in time and space, from the fine sweeper to the coarse sweeper. More...
 
virtual void fas (time dt, shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src)=0
 Compute FAS correction between the coarse and fine sweepers. More...
 

Detailed Description

template<typename time = time_precision>
class pfasst::ITransfer< time >

Abstract time/space transfer (restrict/interpolate) class.

Template Parameters
timetime precision; defaults to pfasst::time_precision

Definition at line 295 of file interfaces.hpp.

Constructor & Destructor Documentation

template<typename time >
pfasst::ITransfer< time >::~ITransfer ( )
virtual

Definition at line 213 of file interfaces_impl.hpp.

Member Function Documentation

template<typename time = time_precision>
virtual void pfasst::ITransfer< time >::fas ( time  dt,
shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
pure virtual

Compute FAS correction between the coarse and fine sweepers.

Parameters
[in]dtwidth of the time step to compute FAS correction for
[in,out]dstsweeper to compute FAS correction for (i.e. coarse level)
[in]srcsweeper to compute FAS correction from (i.e. fine level)

Implemented in pfasst::examples::boris::InjectiveTransfer< scalar, time >, and pfasst::encap::PolyInterpMixin< time >.

template<typename time = time_precision>
virtual void pfasst::ITransfer< time >::interpolate ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src,
bool  interp_initial = false 
)
pure virtual

Interpolate, in time and space, from the coarse sweeper to the fine sweeper.

Parameters
[in,out]dstsweeper to interpolate onto (i.e. fine level)
[in]srcsweeper to interpolate from (i.e. coarse level)
[in]interp_initialtrue if a delta for the initial condtion should also be computed (PFASST)

Implemented in pfasst::examples::boris::InjectiveTransfer< scalar, time >, and pfasst::encap::PolyInterpMixin< time >.

template<typename time >
void pfasst::ITransfer< time >::interpolate_initial ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
virtual

Interpolate initial condition from the coarse sweeper to the fine sweeper.

Parameters
[in,out]dstsweeper to interpolate onto (i.e. fine level)
[in]srcsweeper to interpolate from (i.e. coarse level)
Exceptions
NotImplementedYetThis function is required by PFASST

Reimplemented in pfasst::examples::boris::InjectiveTransfer< scalar, time >, and pfasst::encap::PolyInterpMixin< time >.

Definition at line 220 of file interfaces_impl.hpp.

References UNUSED.

template<typename time = time_precision>
virtual void pfasst::ITransfer< time >::restrict ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src,
bool  restrict_initial = false 
)
pure virtual

Restrict, in time and space, from the fine sweeper to the coarse sweeper.

Parameters
[in,out]dstsweeper to restrict onto (i.e. coarse level)
[in]srcsweeper to restrict from (i.e. fine level)
[in]restrict_initialtrue if the initial condition should also be restricted

Implemented in pfasst::examples::boris::InjectiveTransfer< scalar, time >, and pfasst::encap::PolyInterpMixin< time >.

template<typename time >
void pfasst::ITransfer< time >::restrict_initial ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
virtual

Restrict initial condition from the fine sweeper to the coarse sweeper.

Parameters
[in,out]dstsweeper to restrict onto (i.e. coarse level)
[in]srcsweeper to restrict from (i.e. fine level)
Exceptions
NotImplementedYetThis function is required by PFASST

Reimplemented in pfasst::examples::boris::InjectiveTransfer< scalar, time >, and pfasst::encap::PolyInterpMixin< time >.

Definition at line 231 of file interfaces_impl.hpp.

References UNUSED.


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