Nektar++
|
Defines a callback function which evaluates the flux vector. More...
#include <Advection.h>
Public Member Functions | |
SOLVER_UTILS_EXPORT void | InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
SOLVER_UTILS_EXPORT void | Advect (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &advVel, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray) |
template<typename FuncPointerT , typename ObjectPointerT > | |
void | SetFluxVector (FuncPointerT func, ObjectPointerT obj) |
Set the flux vector callback function. | |
void | SetRiemannSolver (RiemannSolverSharedPtr riemann) |
Set a Riemann solver object for this advection object. | |
void | SetFluxVector (AdvectionFluxVecCB fluxVector) |
Set the flux vector callback function. |
Protected Member Functions | |
virtual void | v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
virtual void | v_Advect (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &advVel, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)=0 |
Protected Attributes | |
AdvectionFluxVecCB | m_fluxVector |
Callback function to the flux vector (set when advection is in conservative form). | |
RiemannSolverSharedPtr | m_riemann |
Riemann solver for DG-type schemes. | |
int | m_spaceDim |
Storage for space dimension. Used for homogeneous extension. |
Defines a callback function which evaluates the flux vector.
An abstract base class encapsulating the concept of advection of a vector field.
Subclasses override the Advection::v_InitObject function to initialise the object and the Advection::v_Advect function to evaluate the advection of the vector field.
Definition at line 68 of file Advection.h.
void Nektar::SolverUtils::Advection::Advect | ( | const int | nConvectiveFields, |
const Array< OneD, MultiRegions::ExpListSharedPtr > & | fields, | ||
const Array< OneD, Array< OneD, NekDouble > > & | advVel, | ||
const Array< OneD, Array< OneD, NekDouble > > & | inarray, | ||
Array< OneD, Array< OneD, NekDouble > > & | outarray | ||
) |
Definition at line 57 of file Advection.cpp.
References v_Advect().
void Nektar::SolverUtils::Advection::InitObject | ( | LibUtilities::SessionReaderSharedPtr | pSession, |
Array< OneD, MultiRegions::ExpListSharedPtr > | pFields | ||
) |
Definition at line 50 of file Advection.cpp.
References v_InitObject().
|
inline |
Set the flux vector callback function.
This routine is a utility function to avoid the explicit use of boost::bind. A function and object can be passed to this function instead.
Definition at line 90 of file Advection.h.
References m_fluxVector.
|
inline |
Set the flux vector callback function.
fluxVector | The callback function to override. |
Definition at line 110 of file Advection.h.
References m_fluxVector.
|
inline |
Set a Riemann solver object for this advection object.
riemann | The RiemannSolver object. |
Definition at line 100 of file Advection.h.
References m_riemann.
|
protectedpure virtual |
Implemented in Nektar::SolverUtils::AdvectionFR, Nektar::SolverUtils::Advection3DHomogeneous1D, Nektar::SolverUtils::AdvectionNonConservative, and Nektar::SolverUtils::AdvectionWeakDG.
Referenced by Advect().
|
protectedvirtual |
Reimplemented in Nektar::SolverUtils::AdvectionFR, Nektar::SolverUtils::Advection3DHomogeneous1D, Nektar::SolverUtils::AdvectionNonConservative, and Nektar::SolverUtils::AdvectionWeakDG.
Definition at line 67 of file Advection.cpp.
References ASSERTL0, and m_spaceDim.
Referenced by InitObject().
|
protected |
Callback function to the flux vector (set when advection is in conservative form).
Definition at line 129 of file Advection.h.
Referenced by SetFluxVector(), Nektar::SolverUtils::AdvectionWeakDG::v_Advect(), Nektar::SolverUtils::Advection3DHomogeneous1D::v_Advect(), and Nektar::SolverUtils::AdvectionFR::v_Advect().
|
protected |
Riemann solver for DG-type schemes.
Definition at line 131 of file Advection.h.
Referenced by SetRiemannSolver(), Nektar::SolverUtils::AdvectionWeakDG::v_Advect(), Nektar::SolverUtils::AdvectionFR::v_Advect(), and Nektar::SolverUtils::Advection3DHomogeneous1D::v_InitObject().
|
protected |
Storage for space dimension. Used for homogeneous extension.
Definition at line 133 of file Advection.h.
Referenced by Nektar::SolverUtils::AdvectionWeakDG::v_Advect(), Nektar::SolverUtils::AdvectionFR::v_Advect(), and v_InitObject().