Nektar++
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Nektar::SolverUtils::Diffusion Class Referenceabstract

#include <Diffusion.h>

Inheritance diagram for Nektar::SolverUtils::Diffusion:
[legend]

Public Member Functions

SOLVER_UTILS_EXPORT void InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
 
SOLVER_UTILS_EXPORT void Diffuse (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void Diffuse (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, NekDouble time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseCoeffs (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseCoeffs (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, NekDouble time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseCalcDerivative (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseVolumeFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, int > &nonZeroIndex=NullInt1DArray)
 Diffusion Volume FLux. More...
 
SOLVER_UTILS_EXPORT void DiffuseTraceFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, Array< OneD, NekDouble > > &TraceFlux, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray, Array< OneD, int > &nonZeroIndex=NullInt1DArray)
 Diffusion term Trace Flux. More...
 
SOLVER_UTILS_EXPORT void SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv)
 
SOLVER_UTILS_EXPORT TensorOfArray3D< NekDouble > & GetFluxTensor ()
 
SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & GetTraceNormal ()
 Get trace normal. More...
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxVector (FuncPointerT func, ObjectPointerT obj)
 
SOLVER_UTILS_EXPORT void SetFluxVector (DiffusionFluxVecCB fluxVector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxVectorNS (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxVectorNS (DiffusionFluxVecCBNS fluxVector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxPenaltyNS (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxPenaltyNS (DiffusionFluxPenaltyNS flux)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetDiffusionFluxCons (FuncPointerT func, ObjectPointerT obj)
 
void SetDiffusionFluxCons (DiffusionFluxCons flux)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetDiffusionFluxConsTrace (FuncPointerT func, ObjectPointerT obj)
 
void SetDiffusionFluxConsTrace (DiffusionFluxCons flux)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetSpecialBndTreat (FuncPointerT func, ObjectPointerT obj)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetDiffusionSymmFluxCons (FuncPointerT func, ObjectPointerT obj)
 
SOLVER_UTILS_EXPORT void SetGridVelocityTrace (Array< OneD, Array< OneD, NekDouble > > &gridVelocityTrace)
 

Protected Member Functions

virtual SOLVER_UTILS_EXPORT ~Diffusion ()=default
 
virtual SOLVER_UTILS_EXPORT void v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)=0
 
virtual SOLVER_UTILS_EXPORT void v_Diffuse (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)=0
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseCoeffs (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseCalcDerivative (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)
 Diffusion Flux, calculate the physical derivatives. More...
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseVolumeFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, int > &nonZeroIndex)
 Diffusion Volume Flux. More...
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseTraceFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &Qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, Array< OneD, NekDouble > > &TraceFlux, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd, Array< OneD, int > &nonZeroIndex)
 Diffusion term Trace Flux. More...
 
virtual void v_SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv)
 
virtual TensorOfArray3D< NekDouble > & v_GetFluxTensor ()
 
virtual SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & v_GetTraceNormal ()
 

Protected Attributes

Array< OneD, NekDoublem_divVel
 Params for Ducros sensor. More...
 
Array< OneD, NekDoublem_divVelSquare
 
Array< OneD, NekDoublem_curlVelSquare
 
DiffusionFluxVecCB m_fluxVector
 
DiffusionFluxVecCBNS m_fluxVectorNS
 
DiffusionFluxPenaltyNS m_fluxPenaltyNS
 
DiffusionFluxCons m_FunctorDiffusionfluxCons
 
DiffusionFluxCons m_FunctorDiffusionfluxConsTrace
 
SpecialBndTreat m_SpecialBndTreat
 
DiffusionSymmFluxCons m_FunctorSymmetricfluxCons
 
Array< OneD, Array< OneD, NekDouble > > m_gridVelocityTrace
 
NekDouble m_time = 0.0
 

Detailed Description

Definition at line 136 of file Diffusion.h.

Constructor & Destructor Documentation

◆ ~Diffusion()

Diffusion::~Diffusion ( )
protectedvirtualdefault

Definition at line 129 of file DiffusionSolverTimeInt.cpp.

130{
131 session->Finalise();
132}

Member Function Documentation

◆ Diffuse() [1/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::Diffuse ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 152 of file Diffusion.h.

161 {
162 v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
163 }
virtual SOLVER_UTILS_EXPORT void v_Diffuse(const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)=0

References v_Diffuse().

◆ Diffuse() [2/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::Diffuse ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
NekDouble  time,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 165 of file Diffusion.h.

174 {
175 m_time = time;
176 v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
177 }

References m_time, and v_Diffuse().

◆ DiffuseCalcDerivative()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseCalcDerivative ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 209 of file Diffusion.h.

217 {
218 v_DiffuseCalcDerivative(fields, inarray, qfields, pFwd, pBwd);
219 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseCalcDerivative(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)
Diffusion Flux, calculate the physical derivatives.
Definition: Diffusion.cpp:62

References v_DiffuseCalcDerivative().

Referenced by Nektar::SolverUtils::DiffusionLDG::v_DiffuseCoeffs(), Nektar::DiffusionLDGNS::v_DiffuseCoeffs(), and Nektar::SolverUtils::DiffusionIP::v_DiffuseCoeffs().

◆ DiffuseCoeffs() [1/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseCoeffs ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 179 of file Diffusion.h.

188 {
189 v_DiffuseCoeffs(nConvectiveFields, fields, inarray, outarray, pFwd,
190 pBwd);
191 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseCoeffs(const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)
Definition: Diffusion.cpp:45

References v_DiffuseCoeffs().

◆ DiffuseCoeffs() [2/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseCoeffs ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
NekDouble  time,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 193 of file Diffusion.h.

202 {
203 m_time = time;
204 v_DiffuseCoeffs(nConvectiveFields, fields, inarray, outarray, pFwd,
205 pBwd);
206 }

References m_time, and v_DiffuseCoeffs().

◆ DiffuseTraceFlux()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseTraceFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, Array< OneD, NekDouble > > &  TraceFlux,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray,
Array< OneD, int > &  nonZeroIndex = NullInt1DArray 
)
inline

Diffusion term Trace Flux.

Definition at line 233 of file Diffusion.h.

244 {
245 v_DiffuseTraceFlux(fields, inarray, qfields, VolumeFlux, TraceFlux,
246 pFwd, pBwd, nonZeroIndex);
247 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseTraceFlux(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &Qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, Array< OneD, NekDouble > > &TraceFlux, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd, Array< OneD, int > &nonZeroIndex)
Diffusion term Trace Flux.
Definition: Diffusion.cpp:82

References v_DiffuseTraceFlux().

Referenced by Nektar::SolverUtils::DiffusionLDG::v_DiffuseCoeffs(), Nektar::DiffusionLDGNS::v_DiffuseCoeffs(), and Nektar::SolverUtils::DiffusionIP::v_DiffuseCoeffs().

◆ DiffuseVolumeFlux()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseVolumeFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, int > &  nonZeroIndex = NullInt1DArray 
)
inline

Diffusion Volume FLux.

Definition at line 222 of file Diffusion.h.

228 {
229 v_DiffuseVolumeFlux(fields, inarray, qfields, VolumeFlux, nonZeroIndex);
230 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseVolumeFlux(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, int > &nonZeroIndex)
Diffusion Volume Flux.
Definition: Diffusion.cpp:72

References v_DiffuseVolumeFlux().

Referenced by Nektar::SolverUtils::DiffusionLDG::v_DiffuseCoeffs(), Nektar::DiffusionLDGNS::v_DiffuseCoeffs(), and Nektar::SolverUtils::DiffusionIP::v_DiffuseCoeffs().

◆ GetFluxTensor()

SOLVER_UTILS_EXPORT TensorOfArray3D< NekDouble > & Nektar::SolverUtils::Diffusion::GetFluxTensor ( )
inline

Definition at line 255 of file Diffusion.h.

256 {
257 return v_GetFluxTensor();
258 }
virtual TensorOfArray3D< NekDouble > & v_GetFluxTensor()
Definition: Diffusion.h:423

References v_GetFluxTensor().

◆ GetTraceNormal()

SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & Nektar::SolverUtils::Diffusion::GetTraceNormal ( )
inline

Get trace normal.

Definition at line 262 of file Diffusion.h.

263 {
264 return v_GetTraceNormal();
265 }
virtual SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & v_GetTraceNormal()
Definition: Diffusion.cpp:56

References v_GetTraceNormal().

◆ InitObject()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)
inline

Definition at line 139 of file Diffusion.h.

142 {
143 v_InitObject(pSession, pFields);
144
145 // Div curl storage
146 int nPts = pFields[0]->GetTotPoints();
147 m_divVel = Array<OneD, NekDouble>(nPts, 0.0);
148 m_divVelSquare = Array<OneD, NekDouble>(nPts, 0.0);
149 m_curlVelSquare = Array<OneD, NekDouble>(nPts, 0.0);
150 }
Array< OneD, NekDouble > m_divVelSquare
Definition: Diffusion.h:357
Array< OneD, NekDouble > m_divVel
Params for Ducros sensor.
Definition: Diffusion.h:356
Array< OneD, NekDouble > m_curlVelSquare
Definition: Diffusion.h:358
virtual SOLVER_UTILS_EXPORT void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)=0

References m_curlVelSquare, m_divVel, m_divVelSquare, and v_InitObject().

◆ SetDiffusionFluxCons() [1/2]

void Nektar::SolverUtils::Diffusion::SetDiffusionFluxCons ( DiffusionFluxCons  flux)
inline

Definition at line 314 of file Diffusion.h.

315 {
317 }
DiffusionFluxCons m_FunctorDiffusionfluxCons
Definition: Diffusion.h:363

References m_FunctorDiffusionfluxCons.

◆ SetDiffusionFluxCons() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetDiffusionFluxCons ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 306 of file Diffusion.h.

307 {
309 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
310 std::placeholders::_3, std::placeholders::_4,
311 std::placeholders::_5, std::placeholders::_6);
312 }

References m_FunctorDiffusionfluxCons.

◆ SetDiffusionFluxConsTrace() [1/2]

void Nektar::SolverUtils::Diffusion::SetDiffusionFluxConsTrace ( DiffusionFluxCons  flux)
inline

Definition at line 328 of file Diffusion.h.

329 {
331 }
DiffusionFluxCons m_FunctorDiffusionfluxConsTrace
Definition: Diffusion.h:364

References m_FunctorDiffusionfluxConsTrace.

◆ SetDiffusionFluxConsTrace() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetDiffusionFluxConsTrace ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 320 of file Diffusion.h.

321 {
323 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
324 std::placeholders::_3, std::placeholders::_4,
325 std::placeholders::_5, std::placeholders::_6);
326 }

References m_FunctorDiffusionfluxConsTrace.

◆ SetDiffusionSymmFluxCons()

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetDiffusionSymmFluxCons ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 340 of file Diffusion.h.

341 {
343 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
344 std::placeholders::_3, std::placeholders::_4,
345 std::placeholders::_5, std::placeholders::_6);
346 }
DiffusionSymmFluxCons m_FunctorSymmetricfluxCons
Definition: Diffusion.h:366

References m_FunctorSymmetricfluxCons.

◆ SetFluxPenaltyNS() [1/2]

void Nektar::SolverUtils::Diffusion::SetFluxPenaltyNS ( DiffusionFluxPenaltyNS  flux)
inline

Definition at line 300 of file Diffusion.h.

301 {
302 m_fluxPenaltyNS = flux;
303 }
DiffusionFluxPenaltyNS m_fluxPenaltyNS
Definition: Diffusion.h:362

References m_fluxPenaltyNS.

◆ SetFluxPenaltyNS() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxPenaltyNS ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 293 of file Diffusion.h.

294 {
296 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
297 std::placeholders::_3);
298 }

References m_fluxPenaltyNS.

◆ SetFluxVector() [1/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::SetFluxVector ( DiffusionFluxVecCB  fluxVector)
inline

Definition at line 274 of file Diffusion.h.

275 {
276 m_fluxVector = fluxVector;
277 }
DiffusionFluxVecCB m_fluxVector
Definition: Diffusion.h:360

References m_fluxVector.

◆ SetFluxVector() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVector ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 268 of file Diffusion.h.

269 {
270 m_fluxVector = std::bind(func, obj, std::placeholders::_1,
271 std::placeholders::_2, std::placeholders::_3);
272 }

References m_fluxVector.

◆ SetFluxVectorNS() [1/2]

void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( DiffusionFluxVecCBNS  fluxVector)
inline

Definition at line 287 of file Diffusion.h.

288 {
289 m_fluxVectorNS = fluxVector;
290 }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:361

References m_fluxVectorNS.

◆ SetFluxVectorNS() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 280 of file Diffusion.h.

281 {
283 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
284 std::placeholders::_3);
285 }

References m_fluxVectorNS.

◆ SetGridVelocityTrace()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::SetGridVelocityTrace ( Array< OneD, Array< OneD, NekDouble > > &  gridVelocityTrace)
inline

Definition at line 348 of file Diffusion.h.

350 {
351 m_gridVelocityTrace = gridVelocityTrace;
352 }
Array< OneD, Array< OneD, NekDouble > > m_gridVelocityTrace
Definition: Diffusion.h:367

References m_gridVelocityTrace.

◆ SetHomoDerivs()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inline

Definition at line 249 of file Diffusion.h.

251 {
252 v_SetHomoDerivs(deriv);
253 }
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
Definition: Diffusion.h:418

References v_SetHomoDerivs().

◆ SetSpecialBndTreat()

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetSpecialBndTreat ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 334 of file Diffusion.h.

335 {
336 m_SpecialBndTreat = std::bind(func, obj, std::placeholders::_1);
337 }
SpecialBndTreat m_SpecialBndTreat
Definition: Diffusion.h:365

References m_SpecialBndTreat.

◆ v_Diffuse()

virtual SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::v_Diffuse ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd 
)
protectedpure virtual

◆ v_DiffuseCalcDerivative()

void Diffusion::v_DiffuseCalcDerivative ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd 
)
protectedvirtual

Diffusion Flux, calculate the physical derivatives.

Reimplemented in Nektar::SolverUtils::DiffusionIP, Nektar::SolverUtils::DiffusionLDG, and Nektar::DiffusionLDGNS.

Definition at line 62 of file Diffusion.cpp.

68{
69 NEKERROR(ErrorUtil::efatal, "Not defined for function DiffuseVolumeFLux.");
70}
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:202

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseCalcDerivative().

◆ v_DiffuseCoeffs()

void Diffusion::v_DiffuseCoeffs ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd 
)
protectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLDG, Nektar::DiffusionLDGNS, and Nektar::SolverUtils::DiffusionIP.

Definition at line 45 of file Diffusion.cpp.

52{
53 NEKERROR(ErrorUtil::efatal, "v_DiffuseCoeffs not defined");
54}

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseCoeffs().

◆ v_DiffuseTraceFlux()

void Diffusion::v_DiffuseTraceFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  Qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, Array< OneD, NekDouble > > &  TraceFlux,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd,
Array< OneD, int > &  nonZeroIndex 
)
protectedvirtual

Diffusion term Trace Flux.

Reimplemented in Nektar::SolverUtils::DiffusionIP, Nektar::SolverUtils::DiffusionLDG, and Nektar::DiffusionLDGNS.

Definition at line 82 of file Diffusion.cpp.

91{
92 NEKERROR(ErrorUtil::efatal, "Not defined function DiffuseTraceFLux.");
93}

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseTraceFlux().

◆ v_DiffuseVolumeFlux()

void Diffusion::v_DiffuseVolumeFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, int > &  nonZeroIndex 
)
protectedvirtual

Diffusion Volume Flux.

Reimplemented in Nektar::SolverUtils::DiffusionIP, Nektar::SolverUtils::DiffusionLDG, and Nektar::DiffusionLDGNS.

Definition at line 72 of file Diffusion.cpp.

78{
79 NEKERROR(ErrorUtil::efatal, "Not defined for function DiffuseVolumeFLux.");
80}

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseVolumeFlux().

◆ v_GetFluxTensor()

virtual TensorOfArray3D< NekDouble > & Nektar::SolverUtils::Diffusion::v_GetFluxTensor ( )
inlineprotectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLFRNS, and Nektar::DiffusionLDGNS.

Definition at line 423 of file Diffusion.h.

424 {
425 static TensorOfArray3D<NekDouble> tmp;
426 return tmp;
427 }

Referenced by GetFluxTensor().

◆ v_GetTraceNormal()

const Array< OneD, const Array< OneD, NekDouble > > & Diffusion::v_GetTraceNormal ( )
protectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionIP.

Definition at line 56 of file Diffusion.cpp.

57{
58 NEKERROR(ErrorUtil::efatal, "v_GetTraceNormal not defined");
60}
static Array< OneD, Array< OneD, NekDouble > > NullNekDoubleArrayOfArray

References Nektar::ErrorUtil::efatal, NEKERROR, and Nektar::NullNekDoubleArrayOfArray.

Referenced by GetTraceNormal().

◆ v_InitObject()

virtual SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::v_InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)
protectedpure virtual

◆ v_SetHomoDerivs()

virtual void Nektar::SolverUtils::Diffusion::v_SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inlineprotectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLFRNS, and Nektar::DiffusionLDGNS.

Definition at line 418 of file Diffusion.h.

420 {
421 }

Referenced by SetHomoDerivs().

Member Data Documentation

◆ m_curlVelSquare

Array<OneD, NekDouble> Nektar::SolverUtils::Diffusion::m_curlVelSquare
protected

Definition at line 358 of file Diffusion.h.

Referenced by InitObject().

◆ m_divVel

Array<OneD, NekDouble> Nektar::SolverUtils::Diffusion::m_divVel
protected

Params for Ducros sensor.

Definition at line 356 of file Diffusion.h.

Referenced by InitObject().

◆ m_divVelSquare

Array<OneD, NekDouble> Nektar::SolverUtils::Diffusion::m_divVelSquare
protected

Definition at line 357 of file Diffusion.h.

Referenced by InitObject().

◆ m_fluxPenaltyNS

DiffusionFluxPenaltyNS Nektar::SolverUtils::Diffusion::m_fluxPenaltyNS
protected

◆ m_fluxVector

DiffusionFluxVecCB Nektar::SolverUtils::Diffusion::m_fluxVector
protected

◆ m_fluxVectorNS

DiffusionFluxVecCBNS Nektar::SolverUtils::Diffusion::m_fluxVectorNS
protected

◆ m_FunctorDiffusionfluxCons

DiffusionFluxCons Nektar::SolverUtils::Diffusion::m_FunctorDiffusionfluxCons
protected

◆ m_FunctorDiffusionfluxConsTrace

DiffusionFluxCons Nektar::SolverUtils::Diffusion::m_FunctorDiffusionfluxConsTrace
protected

◆ m_FunctorSymmetricfluxCons

DiffusionSymmFluxCons Nektar::SolverUtils::Diffusion::m_FunctorSymmetricfluxCons
protected

◆ m_gridVelocityTrace

Array<OneD, Array<OneD, NekDouble> > Nektar::SolverUtils::Diffusion::m_gridVelocityTrace
protected

◆ m_SpecialBndTreat

SpecialBndTreat Nektar::SolverUtils::Diffusion::m_SpecialBndTreat
protected

◆ m_time

NekDouble Nektar::SolverUtils::Diffusion::m_time = 0.0
protected

Definition at line 368 of file Diffusion.h.

Referenced by Diffuse(), and DiffuseCoeffs().