Nektar++
|
#include <DiffusionLDGNS.h>
Static Public Member Functions | |
static DiffusionSharedPtr | create (std::string diffType) |
Static Public Attributes | |
static std::string | type |
Protected Member Functions | |
DiffusionLDGNS () | |
virtual void | v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
virtual void | v_Diffuse (const int nConvective, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray) |
Calculate weak DG Diffusion in the LDG form for the Navier-Stokes (NS) equations: | |
virtual void | v_NumericalFluxO1 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &numericalFluxO1) |
Builds the numerical flux for the 1st order derivatives. | |
virtual void | v_WeakPenaltyO1 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &penaltyfluxO1) |
Imposes appropriate bcs for the 1st order derivatives. | |
virtual void | v_NumericalFluxO2 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &ufield, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &qfield, Array< OneD, Array< OneD, NekDouble > > &qflux) |
Build the numerical flux for the 2nd order derivatives. | |
virtual void | v_WeakPenaltyO2 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const int var, const int dir, const Array< OneD, const NekDouble > &qfield, Array< OneD, NekDouble > &penaltyflux) |
Imposes appropriate bcs for the 2nd order derivatives. | |
virtual void | v_SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv) |
virtual Array< OneD, Array < OneD, Array< OneD, NekDouble > > > & | v_GetFluxTensor () |
Protected Attributes | |
Array< OneD, Array< OneD, NekDouble > > | m_traceVel |
Array< OneD, Array< OneD, NekDouble > > | m_traceNormals |
LibUtilities::SessionReaderSharedPtr | m_session |
NekDouble | m_gamma |
NekDouble | m_gasConstant |
NekDouble | m_Twall |
std::string | m_ViscosityType |
NekDouble | m_mu |
NekDouble | m_thermalConductivity |
NekDouble | m_rhoInf |
NekDouble | m_pInf |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_viscTensor |
Array< OneD, Array< OneD, NekDouble > > | m_homoDerivs |
int | m_spaceDim |
int | m_diffDim |
Protected Attributes inherited from Nektar::SolverUtils::Diffusion | |
DiffusionFluxVecCB | m_fluxVector |
DiffusionFluxVecCBNS | m_fluxVectorNS |
RiemannSolverSharedPtr | m_riemann |
DiffusionArtificialDiffusion | m_ArtificialDiffusionVector |
Additional Inherited Members | |
Public Member Functions inherited from Nektar::SolverUtils::Diffusion | |
SOLVER_UTILS_EXPORT void | InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
SOLVER_UTILS_EXPORT void | Diffuse (const int nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray) |
SOLVER_UTILS_EXPORT void | FluxVec (Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &fluxvector) |
template<typename FuncPointerT , typename ObjectPointerT > | |
void | SetFluxVector (FuncPointerT func, ObjectPointerT obj) |
void | SetFluxVectorVec (DiffusionFluxVecCB fluxVector) |
template<typename FuncPointerT , typename ObjectPointerT > | |
void | SetFluxVectorNS (FuncPointerT func, ObjectPointerT obj) |
template<typename FuncPointerT , typename ObjectPointerT > | |
void | SetArtificialDiffusionVector (FuncPointerT func, ObjectPointerT obj) |
void | SetFluxVectorNS (DiffusionFluxVecCBNS fluxVector) |
void | SetRiemannSolver (RiemannSolverSharedPtr riemann) |
void | SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv) |
virtual Array< OneD, Array < OneD, Array< OneD, NekDouble > > > & | GetFluxTensor () |
Definition at line 45 of file DiffusionLDGNS.h.
|
protected |
|
inlinestatic |
Definition at line 48 of file DiffusionLDGNS.h.
References DiffusionLDGNS().
|
protectedvirtual |
Calculate weak DG Diffusion in the LDG form for the Navier-Stokes (NS) equations:
The equations that need a diffusion operator are those related with the velocities and with the energy.
Implements Nektar::SolverUtils::Diffusion.
Definition at line 105 of file DiffusionLDGNS.cpp.
References m_diffDim, Nektar::SolverUtils::Diffusion::m_fluxVectorNS, m_homoDerivs, m_spaceDim, m_viscTensor, Vmath::Neg(), v_NumericalFluxO1(), v_NumericalFluxO2(), and Vmath::Vadd().
|
inlineprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Diffusion.
Definition at line 117 of file DiffusionLDGNS.h.
References m_viscTensor.
|
protectedvirtual |
Reimplemented from Nektar::SolverUtils::Diffusion.
Definition at line 53 of file DiffusionLDGNS.cpp.
References m_diffDim, m_gamma, m_gasConstant, m_mu, m_pInf, m_rhoInf, m_session, m_spaceDim, m_thermalConductivity, m_traceNormals, m_traceVel, m_Twall, and m_ViscosityType.
|
protectedvirtual |
Builds the numerical flux for the 1st order derivatives.
Definition at line 218 of file DiffusionLDGNS.cpp.
References m_spaceDim, m_traceNormals, Vmath::Svtvp(), v_WeakPenaltyO1(), and Vmath::Vmul().
Referenced by v_Diffuse().
|
protectedvirtual |
Build the numerical flux for the 2nd order derivatives.
Definition at line 472 of file DiffusionLDGNS.cpp.
References m_traceNormals, Vmath::Svtvp(), v_WeakPenaltyO2(), Vmath::Vadd(), and Vmath::Vmul().
Referenced by v_Diffuse().
|
inlineprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Diffusion.
Definition at line 111 of file DiffusionLDGNS.h.
References m_homoDerivs.
|
protectedvirtual |
Imposes appropriate bcs for the 1st order derivatives.
Definition at line 274 of file DiffusionLDGNS.cpp.
References Nektar::SpatialDomains::eDirichlet, Nektar::SpatialDomains::eNeumann, Nektar::SpatialDomains::eWallViscous, m_gamma, m_gasConstant, m_Twall, Vmath::Smul(), Vmath::Vadd(), Vmath::Vcopy(), Vmath::Vdiv(), Vmath::Vmul(), Vmath::Vsub(), and Vmath::Zero().
Referenced by v_NumericalFluxO1().
|
protectedvirtual |
Imposes appropriate bcs for the 2nd order derivatives.
Definition at line 534 of file DiffusionLDGNS.cpp.
References ASSERTL0, Nektar::SpatialDomains::eDirichlet, Nektar::SpatialDomains::eNeumann, m_traceNormals, and Vmath::Vmul().
Referenced by v_NumericalFluxO2().
|
protected |
Definition at line 75 of file DiffusionLDGNS.h.
Referenced by v_Diffuse(), and v_InitObject().
|
protected |
Definition at line 61 of file DiffusionLDGNS.h.
Referenced by v_InitObject(), and v_WeakPenaltyO1().
|
protected |
Definition at line 62 of file DiffusionLDGNS.h.
Referenced by v_InitObject(), and v_WeakPenaltyO1().
Definition at line 72 of file DiffusionLDGNS.h.
Referenced by v_Diffuse(), and v_SetHomoDerivs().
|
protected |
Definition at line 65 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 68 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 67 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 60 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 74 of file DiffusionLDGNS.h.
Referenced by v_Diffuse(), v_InitObject(), and v_NumericalFluxO1().
|
protected |
Definition at line 66 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
Definition at line 59 of file DiffusionLDGNS.h.
Referenced by v_InitObject(), v_NumericalFluxO1(), v_NumericalFluxO2(), and v_WeakPenaltyO2().
Definition at line 58 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 63 of file DiffusionLDGNS.h.
Referenced by v_InitObject(), and v_WeakPenaltyO1().
|
protected |
Definition at line 64 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 70 of file DiffusionLDGNS.h.
Referenced by v_Diffuse(), and v_GetFluxTensor().
|
static |
Definition at line 53 of file DiffusionLDGNS.h.