|
Nektar++
|
#include <AdvectionWeakDG.h>
Static Public Member Functions | |
| static AdvectionSharedPtr | create (std::string advType) |
Static Public Attributes | |
| static std::string | type |
Additional Inherited Members | |
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... | |
| 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) |
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 46 of file AdvectionWeakDG.h.
|
protected |
|
inlinestatic |
Definition at line 49 of file AdvectionWeakDG.h.
References AdvectionWeakDG().
|
protectedvirtual |
Reimplemented from Nektar::SolverUtils::Advection.
Definition at line 233 of file AdvectionWeakDG.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and Vmath::Vadd().
|
protectedvirtual |
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 80 of file AdvectionWeakDG.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and v_AdvectCoeffs().
|
protectedvirtual |
Reimplemented from Nektar::SolverUtils::Advection.
Definition at line 121 of file AdvectionWeakDG.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Vmath::Fill(), Nektar::SolverUtils::Advection::m_spaceDim, Vmath::Neg(), Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), v_AdvectTraceFlux(), and v_AdvectVolumeFlux().
Referenced by v_Advect().
|
protectedvirtual |
Advects Trace Flux.
calculate the advection flux in the cell the trace integration
Reimplemented from Nektar::SolverUtils::Advection.
Definition at line 190 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 v_AdvectCoeffs().
|
inlineprotectedvirtual |
Advects Volume Flux.
Reimplemented from Nektar::SolverUtils::Advection.
Definition at line 86 of file AdvectionWeakDG.h.
References Nektar::SolverUtils::Advection::m_fluxVector.
Referenced by v_AdvectCoeffs().
|
protectedvirtual |
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 62 of file AdvectionWeakDG.cpp.
References Nektar::SolverUtils::Advection::v_InitObject().
|
static |
Definition at line 55 of file AdvectionWeakDG.h.