Nektar++
|
#include <Advection3DHomogeneous1D.h>
Static Public Member Functions | |
static AdvectionSharedPtr | create (std::string advType) |
Static Public Attributes | |
static std::string | type [] |
Protected Member Functions | |
Advection3DHomogeneous1D (std::string advType) | |
AdvectionFR uses the Flux Reconstruction (FR) approach to compute the advection term. The implementation is only for segments, quadrilaterals and hexahedra at the moment. More... | |
virtual void | v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
Initiliase Advection3DHomogeneous1D objects and store them before starting the time-stepping. More... | |
virtual void | v_Advect (const int nConvField, 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) |
Compute the advection operator for a given input inarray and put the result in outarray. More... | |
![]() | |
virtual SOLVER_UTILS_EXPORT void | v_AdvectVolumeFlux (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &advVel, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &pVolumeFlux, const NekDouble &time) |
Advects Volume Flux. More... | |
virtual SOLVER_UTILS_EXPORT void | v_AdvectTraceFlux (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 >> &pTraceFlux, const NekDouble &time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray) |
Advects Trace Flux. More... | |
virtual SOLVER_UTILS_EXPORT void | v_AdvectCoeffs (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) |
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... | |
virtual SOLVER_UTILS_EXPORT void | v_AddVolumJacToMat (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const int &nConvectiveFields, const TensorOfArray5D< NekDouble > &ElmtJacArray, Array< OneD, Array< OneD, SNekBlkMatSharedPtr >> &gmtxarray) |
Protected Attributes | |
std::string | m_advType |
SolverUtils::AdvectionSharedPtr | m_planeAdv |
int | m_numPoints |
int | m_numPointsPlane |
int | m_numPlanes |
int | m_planeCounter |
Array< OneD, unsigned int > | m_planes |
Array< OneD, unsigned int > | m_planePos |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_fluxVecStore |
Array< OneD, Array< OneD, NekDouble > > | m_inarrayPlane |
Array< OneD, Array< OneD, NekDouble > > | m_outarrayPlane |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_fieldsPlane |
Array< OneD, Array< OneD, NekDouble > > | m_advVelPlane |
Array< OneD, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > > | m_fluxVecPlane |
![]() | |
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... | |
Private Member Functions | |
void | ModifiedFluxVector (const Array< OneD, Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &flux) |
Additional Inherited Members | |
![]() | |
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... | |
SOLVER_UTILS_EXPORT void | AdvectVolumeFlux (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, Array< OneD, NekDouble >> &pAdvVel, const Array< OneD, Array< OneD, NekDouble >> &pInarray, TensorOfArray3D< NekDouble > &pVolumeFlux, const NekDouble &pTime) |
Interface function to advect the Volume field. More... | |
SOLVER_UTILS_EXPORT void | AdvectTraceFlux (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, Array< OneD, NekDouble >> &pAdvVel, const Array< OneD, Array< OneD, NekDouble >> &pInarray, Array< OneD, Array< OneD, NekDouble >> &pTraceFlux, const NekDouble &pTime, const Array< OneD, Array< OneD, NekDouble >> &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble >> &pBwd=NullNekDoubleArrayOfArray) |
Interface function to advect the Trace field. More... | |
SOLVER_UTILS_EXPORT void | AdvectCoeffs (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) |
Similar with Advection::Advect(): calculate the advection flux The difference is in the outarray: it is the coefficients of basis for AdvectCoeffs() it is the physics on quadrature points for Advect() 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) |
SOLVER_UTILS_EXPORT void | AddVolumJacToMat (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const int &nConvectiveFields, const TensorOfArray5D< NekDouble > &ElmtJacArray, Array< OneD, Array< OneD, SNekBlkMatSharedPtr >> &gmtxarray) |
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) |
Definition at line 47 of file Advection3DHomogeneous1D.h.
|
protected |
AdvectionFR uses the Flux Reconstruction (FR) approach to compute the advection term. The implementation is only for segments, quadrilaterals and hexahedra at the moment.
Definition at line 73 of file Advection3DHomogeneous1D.cpp.
References Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), Nektar::SolverUtils::GetAdvectionFactory(), and m_planeAdv.
Referenced by create().
|
inlinestatic |
Definition at line 50 of file Advection3DHomogeneous1D.h.
References Advection3DHomogeneous1D().
|
private |
Definition at line 248 of file Advection3DHomogeneous1D.cpp.
References m_fluxVecPlane, m_numPlanes, and m_planeCounter.
Referenced by v_InitObject().
|
protectedvirtual |
Compute the advection operator for a given input inarray and put the result in outarray.
nConvectiveFields | Number of fields to advect. |
fields | Pointer to fields. |
advVel | Advection velocities. |
inarray | Input which will be advected. |
outarray | Computed advection. |
Implements Nektar::SolverUtils::Advection.
Definition at line 190 of file Advection3DHomogeneous1D.cpp.
References m_advVelPlane, m_fieldsPlane, m_fluxVecStore, Nektar::SolverUtils::Advection::m_fluxVector, m_inarrayPlane, m_numPlanes, m_numPoints, m_numPointsPlane, m_outarrayPlane, m_planeAdv, m_planePos, and Vmath::Vadd().
|
protectedvirtual |
Initiliase Advection3DHomogeneous1D 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 89 of file Advection3DHomogeneous1D.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SolverUtils::HomoRSScalar::Exec(), Nektar::SolverUtils::HomoRSVector::Exec(), m_advVelPlane, m_fieldsPlane, m_fluxVecPlane, m_fluxVecStore, m_inarrayPlane, m_numPlanes, m_numPoints, m_numPointsPlane, m_outarrayPlane, m_planeAdv, m_planeCounter, m_planePos, m_planes, Nektar::SolverUtils::Advection::m_riemann, and ModifiedFluxVector().
|
protected |
Definition at line 60 of file Advection3DHomogeneous1D.h.
|
protected |
Definition at line 72 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
|
protected |
Definition at line 71 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
|
protected |
Definition at line 74 of file Advection3DHomogeneous1D.h.
Referenced by ModifiedFluxVector(), and v_InitObject().
|
protected |
Definition at line 68 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
|
protected |
Definition at line 69 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
|
protected |
Definition at line 64 of file Advection3DHomogeneous1D.h.
Referenced by ModifiedFluxVector(), v_Advect(), and v_InitObject().
|
protected |
Definition at line 62 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
|
protected |
Definition at line 63 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
|
protected |
Definition at line 70 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
|
protected |
Definition at line 61 of file Advection3DHomogeneous1D.h.
Referenced by Advection3DHomogeneous1D(), v_Advect(), and v_InitObject().
|
protected |
Definition at line 65 of file Advection3DHomogeneous1D.h.
Referenced by ModifiedFluxVector(), and v_InitObject().
Definition at line 67 of file Advection3DHomogeneous1D.h.
Referenced by v_Advect(), and v_InitObject().
Definition at line 66 of file Advection3DHomogeneous1D.h.
Referenced by v_InitObject().
|
static |
Definition at line 55 of file Advection3DHomogeneous1D.h.