PFASST++
pfasst::examples::boris::InjectiveTransfer< scalar, time > Class Template Reference

#include <injective_transfer.hpp>

+ Inheritance diagram for pfasst::examples::boris::InjectiveTransfer< scalar, time >:
+ Collaboration diagram for pfasst::examples::boris::InjectiveTransfer< scalar, time >:

Public Types

typedef BorisSweeper< scalar, time >::encap_type encap_type
 
typedef BorisSweeper< scalar, time >::acceleration_type force_type
 

Public Member Functions

virtual ~InjectiveTransfer ()
 
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=false) override
 Interpolate, in time and space, from the coarse sweeper to the fine sweeper. More...
 
virtual void interpolate (shared_ptr< ParticleCloud< scalar >> dst, shared_ptr< const ParticleCloud< scalar >> src)
 
virtual void interpolate (shared_ptr< ParticleCloudComponent< scalar >> dst, shared_ptr< const ParticleCloudComponent< scalar >> 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=false) override
 Restrict, in time and space, from the fine sweeper to the coarse sweeper. More...
 
virtual void restrict (shared_ptr< ParticleCloud< scalar >> dst, shared_ptr< const ParticleCloud< scalar >> src)
 
virtual void restrict (shared_ptr< ParticleCloudComponent< scalar >> dst, shared_ptr< const ParticleCloudComponent< scalar >> 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 ()
 

Detailed Description

template<typename scalar, typename time = pfasst::time_precision>
class pfasst::examples::boris::InjectiveTransfer< scalar, time >

Definition at line 28 of file injective_transfer.hpp.

Member Typedef Documentation

template<typename scalar , typename time = pfasst::time_precision>
typedef BorisSweeper<scalar, time>::encap_type pfasst::examples::boris::InjectiveTransfer< scalar, time >::encap_type

Definition at line 32 of file injective_transfer.hpp.

template<typename scalar , typename time = pfasst::time_precision>
typedef BorisSweeper<scalar, time>::acceleration_type pfasst::examples::boris::InjectiveTransfer< scalar, time >::force_type

Definition at line 33 of file injective_transfer.hpp.

Constructor & Destructor Documentation

template<typename scalar , typename time = pfasst::time_precision>
virtual pfasst::examples::boris::InjectiveTransfer< scalar, time >::~InjectiveTransfer ( )
inlinevirtual

Definition at line 36 of file injective_transfer.hpp.

Member Function Documentation

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::fas ( time  dt,
shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
inlineoverridevirtual

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 187 of file injective_transfer.hpp.

References pfasst::examples::boris::ParticleCloudFactory< precision >::num_particles(), pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict(), and pfasst::examples::boris::zero().

+ Here is the call graph for this function:

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src,
bool  interp_initial = false 
)
inlineoverridevirtual

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 68 of file injective_transfer.hpp.

References pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate_initial(), pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict(), and pfasst::encap::solution.

Referenced by pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate_initial().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate ( shared_ptr< ParticleCloud< scalar >>  dst,
shared_ptr< const ParticleCloud< scalar >>  src 
)
inlinevirtual

Definition at line 116 of file injective_transfer.hpp.

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate ( shared_ptr< ParticleCloudComponent< scalar >>  dst,
shared_ptr< const ParticleCloudComponent< scalar >>  src 
)
inlinevirtual

Definition at line 124 of file injective_transfer.hpp.

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate_initial ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
inlineoverridevirtual

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 40 of file injective_transfer.hpp.

References pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate(), pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict(), and pfasst::encap::solution.

Referenced by pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src,
bool  restrict_initial = false 
)
inlineoverridevirtual

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 146 of file injective_transfer.hpp.

References pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict_initial().

Referenced by pfasst::examples::boris::InjectiveTransfer< scalar, time >::fas(), pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate(), and pfasst::examples::boris::InjectiveTransfer< scalar, time >::interpolate_initial().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict ( shared_ptr< ParticleCloud< scalar >>  dst,
shared_ptr< const ParticleCloud< scalar >>  src 
)
inlinevirtual

Definition at line 170 of file injective_transfer.hpp.

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict ( shared_ptr< ParticleCloudComponent< scalar >>  dst,
shared_ptr< const ParticleCloudComponent< scalar >>  src 
)
inlinevirtual

Definition at line 178 of file injective_transfer.hpp.

template<typename scalar , typename time = pfasst::time_precision>
virtual void pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict_initial ( shared_ptr< ISweeper< time >>  dst,
shared_ptr< const ISweeper< time >>  src 
)
inlineoverridevirtual

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 133 of file injective_transfer.hpp.

Referenced by pfasst::examples::boris::InjectiveTransfer< scalar, time >::restrict().

+ Here is the caller graph for this function:


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