PFASST++
pfasst::encap::PolyInterpMixin< time > Class Template Reference

Polynomial time interpolation mixin. More...

#include <poly_interp.hpp>

+ Inheritance diagram for pfasst::encap::PolyInterpMixin< time >:
+ Collaboration diagram for pfasst::encap::PolyInterpMixin< time >:

Public Member Functions

virtual ~PolyInterpMixin ()
 
virtual void interpolate_initial (shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src) override
 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) override
 Interpolate, in time and space, from the coarse sweeper to the fine sweeper. More...
 
virtual void interpolate (shared_ptr< Encapsulation< time >> dst, shared_ptr< const Encapsulation< time >> src)
 
virtual void restrict_initial (shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src) override
 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) override
 Restrict, in time and space, from the fine sweeper to the coarse sweeper. More...
 
virtual void restrict (shared_ptr< Encapsulation< time >> dst, shared_ptr< const Encapsulation< time >> src)
 
virtual void fas (time dt, shared_ptr< ISweeper< time >> dst, shared_ptr< const ISweeper< time >> src) override
 Compute FAS correction between the coarse and fine sweepers. More...
 
- Public Member Functions inherited from pfasst::ITransfer< time >
virtual ~ITransfer ()
 
typedef vector< shared_ptr< Encapsulation< time > > > EncapVecT
 
Matrix< time > tmat
 
Matrix< time > fmat
 

Detailed Description

template<typename time = time_precision>
class pfasst::encap::PolyInterpMixin< time >

Polynomial time interpolation mixin.

Definition at line 20 of file poly_interp.hpp.

Member Typedef Documentation

template<typename time = time_precision>
typedef vector<shared_ptr<Encapsulation<time> > > pfasst::encap::PolyInterpMixin< time >::EncapVecT
protected

Definition at line 25 of file poly_interp.hpp.

Constructor & Destructor Documentation

template<typename time >
pfasst::encap::PolyInterpMixin< time >::~PolyInterpMixin ( )
virtual

Definition at line 16 of file poly_interp_impl.hpp.

Member Function Documentation

template<typename time >
void pfasst::encap::PolyInterpMixin< time >::fas ( time  dt,
shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
overridevirtual

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)

Implements pfasst::ITransfer< time >.

Definition at line 136 of file poly_interp_impl.hpp.

References pfasst::encap::as_encap_sweeper(), and pfasst::encap::solution.

+ Here is the call graph for this function:

template<typename time >
void pfasst::encap::PolyInterpMixin< time >::interpolate ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src,
bool  interp_initial 
)
overridevirtual

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)

Implements pfasst::ITransfer< time >.

Definition at line 41 of file poly_interp_impl.hpp.

References pfasst::encap::as_encap_sweeper(), and pfasst::encap::solution.

+ Here is the call graph for this function:

template<typename time >
void pfasst::encap::PolyInterpMixin< time >::interpolate ( shared_ptr< Encapsulation< time >>  dst,
shared_ptr< const Encapsulation< time >>  src 
)
virtual

Definition at line 80 of file poly_interp_impl.hpp.

References UNUSED.

template<typename time >
void pfasst::encap::PolyInterpMixin< time >::interpolate_initial ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
overridevirtual

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 from pfasst::ITransfer< time >.

Definition at line 20 of file poly_interp_impl.hpp.

References pfasst::encap::as_encap_sweeper(), and pfasst::encap::solution.

+ Here is the call graph for this function:

template<typename time >
void pfasst::encap::PolyInterpMixin< time >::restrict ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src,
bool  restrict_initial 
)
overridevirtual

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

Implements pfasst::ITransfer< time >.

Definition at line 98 of file poly_interp_impl.hpp.

References pfasst::encap::as_encap_sweeper(), and ML_CLOG.

+ Here is the call graph for this function:

template<typename time >
void pfasst::encap::PolyInterpMixin< time >::restrict ( shared_ptr< Encapsulation< time >>  dst,
shared_ptr< const Encapsulation< time >>  src 
)
virtual

Definition at line 128 of file poly_interp_impl.hpp.

References UNUSED.

template<typename time >
void pfasst::encap::PolyInterpMixin< time >::restrict_initial ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
overridevirtual

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 from pfasst::ITransfer< time >.

Definition at line 88 of file poly_interp_impl.hpp.

References pfasst::encap::as_encap_sweeper().

+ Here is the call graph for this function:

Member Data Documentation

template<typename time = time_precision>
Matrix<time> pfasst::encap::PolyInterpMixin< time >::fmat
protected

Definition at line 27 of file poly_interp.hpp.

template<typename time = time_precision>
Matrix<time> pfasst::encap::PolyInterpMixin< time >::tmat
protected

Definition at line 26 of file poly_interp.hpp.


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