Nektar++
|
#include <AdvectionWeakDG.h>
Public Member Functions | |
SOLVER_UTILS_EXPORT void | AdvectCoeffs (const int nConvective, 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, const NekDouble &time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray) |
SOLVER_UTILS_EXPORT void | AdvectTraceFlux (const int nConvective, 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 > > &TraceFlux, const NekDouble &time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray) |
SOLVER_UTILS_EXPORT void | AdvectVolumeFlux (const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &VolumeFlux) |
Public Member Functions inherited from Nektar::SolverUtils::Advection | |
virtual SOLVER_UTILS_EXPORT | ~Advection () |
SOLVER_UTILS_EXPORT void | InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
Interface function to initialise the advection object. More... | |
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, const NekDouble &time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray) |
Interface function to advect the vector field. More... | |
template<typename FuncPointerT , typename ObjectPointerT > | |
void | SetFluxVector (FuncPointerT func, ObjectPointerT obj) |
Set the flux vector callback function. More... | |
void | SetRiemannSolver (RiemannSolverSharedPtr riemann) |
Set a Riemann solver object for this advection object. More... | |
void | SetFluxVector (AdvectionFluxVecCB fluxVector) |
Set the flux vector callback function. More... | |
void | SetBaseFlow (const Array< OneD, Array< OneD, NekDouble > > &inarray, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields) |
Set the base flow used for linearised advection objects. More... | |
template<typename DataType , typename TypeNekBlkMatSharedPtr > | |
SOLVER_UTILS_EXPORT void | AddTraceJacToMat (const int nConvectiveFields, const int nSpaceDim, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, TypeNekBlkMatSharedPtr > &TracePntJacCons, Array< OneD, Array< OneD, TypeNekBlkMatSharedPtr > > &gmtxarray, const Array< OneD, TypeNekBlkMatSharedPtr > &TracePntJacGrad, const Array< OneD, Array< OneD, DataType > > &TracePntJacGradSign) |
template<typename DataType , typename TypeNekBlkMatSharedPtr > | |
void | CalcJacobTraceInteg (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const int m, const int n, const Array< OneD, const TypeNekBlkMatSharedPtr > &PntJac, const Array< OneD, const Array< OneD, DataType > > &PntJacSign, Array< OneD, DNekMatSharedPtr > &TraceJacFwd, Array< OneD, DNekMatSharedPtr > &TraceJacBwd) |
template<typename DataType , typename TypeNekBlkMatSharedPtr > | |
void | AddTraceJacToMat (const int nConvectiveFields, const int nSpaceDim, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, TypeNekBlkMatSharedPtr > &TracePntJacCons, Array< OneD, Array< OneD, TypeNekBlkMatSharedPtr > > &gmtxarray, const Array< OneD, TypeNekBlkMatSharedPtr > &TracePntJacGrad, const Array< OneD, Array< OneD, DataType > > &TracePntJacGradSign) |
Static Public Member Functions | |
static AdvectionSharedPtr | create (std::string advType) |
Static Public Attributes | |
static std::string | type |
Protected Member Functions | |
AdvectionWeakDG () | |
void | v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) override |
Initialise AdvectionWeakDG objects and store them before starting the time-stepping. More... | |
void | v_Advect (const int nConvective, 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, const NekDouble &time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray) override |
Compute the advection term at each time-step using the Discontinuous Galerkin approach (DG). More... | |
Protected Member Functions inherited from Nektar::SolverUtils::Advection | |
virtual SOLVER_UTILS_EXPORT void | v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
Initialises the advection object. More... | |
virtual SOLVER_UTILS_EXPORT 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, const NekDouble &time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)=0 |
Advects a vector field. More... | |
virtual SOLVER_UTILS_EXPORT void | v_SetBaseFlow (const Array< OneD, Array< OneD, NekDouble > > &inarray, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields) |
Overrides the base flow used during linearised advection. More... | |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::SolverUtils::Advection | |
AdvectionFluxVecCB | m_fluxVector |
Callback function to the flux vector (set when advection is in conservative form). More... | |
RiemannSolverSharedPtr | m_riemann |
Riemann solver for DG-type schemes. More... | |
int | m_spaceDim |
Storage for space dimension. Used for homogeneous extension. More... | |
Definition at line 42 of file AdvectionWeakDG.h.
|
protected |
void Nektar::SolverUtils::AdvectionWeakDG::AdvectCoeffs | ( | const int | nConvective, |
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, | ||
const NekDouble & | time, | ||
const Array< OneD, Array< OneD, NekDouble > > & | pFwd = NullNekDoubleArrayOfArray , |
||
const Array< OneD, Array< OneD, NekDouble > > & | pBwd = NullNekDoubleArrayOfArray |
||
) |
Definition at line 117 of file AdvectionWeakDG.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), AdvectTraceFlux(), AdvectVolumeFlux(), Vmath::Fill(), Nektar::SolverUtils::Advection::m_spaceDim, Vmath::Neg(), Nektar::LibUtilities::Timer::Start(), and Nektar::LibUtilities::Timer::Stop().
Referenced by v_Advect().
void Nektar::SolverUtils::AdvectionWeakDG::AdvectTraceFlux | ( | const int | nConvective, |
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 > > & | TraceFlux, | ||
const NekDouble & | time, | ||
const Array< OneD, Array< OneD, NekDouble > > & | pFwd = NullNekDoubleArrayOfArray , |
||
const Array< OneD, Array< OneD, NekDouble > > & | pBwd = NullNekDoubleArrayOfArray |
||
) |
Definition at line 195 of file AdvectionWeakDG.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), ASSERTL1, Nektar::SolverUtils::Advection::m_riemann, Nektar::SolverUtils::Advection::m_spaceDim, Nektar::NullNekDoubleArrayOfArray, Nektar::LibUtilities::Timer::Start(), and Nektar::LibUtilities::Timer::Stop().
Referenced by AdvectCoeffs().
|
inline |
Definition at line 74 of file AdvectionWeakDG.h.
References Nektar::SolverUtils::Advection::m_fluxVector.
Referenced by AdvectCoeffs().
|
inlinestatic |
Definition at line 45 of file AdvectionWeakDG.h.
References AdvectionWeakDG().
|
overrideprotectedvirtual |
Compute the advection term at each time-step using the Discontinuous Galerkin approach (DG).
nConvectiveFields | Number of fields. |
fields | Pointer to fields. |
advVel | Advection velocities. |
inarray | Solution at the previous time-step. |
outarray | Advection term to be passed at the time integration class. |
Implements Nektar::SolverUtils::Advection.
Definition at line 76 of file AdvectionWeakDG.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), AdvectCoeffs(), Nektar::LibUtilities::Timer::Start(), and Nektar::LibUtilities::Timer::Stop().
|
overrideprotectedvirtual |
Initialise AdvectionWeakDG objects and store them before starting the time-stepping.
pSession | Pointer to session reader. |
pFields | Pointer to fields. |
Reimplemented from Nektar::SolverUtils::Advection.
Definition at line 58 of file AdvectionWeakDG.cpp.
References Nektar::SolverUtils::Advection::v_InitObject().
|
static |
Definition at line 50 of file AdvectionWeakDG.h.