Nektar++
|
#include <NavierStokesCFE.h>
Static Public Member Functions | |
static SolverUtils::EquationSystemSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Static Public Attributes | |
static std::string | className |
Protected Member Functions | |
NavierStokesCFE (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) | |
void | GetViscousFluxVectorConservVar (const int nDim, const Array< OneD, Array< OneD, NekDouble > > &inarray, const TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &outarray, Array< OneD, int > &nonZeroIndex=NullInt1DArray, const Array< OneD, Array< OneD, NekDouble >> &normal=NullNekDoubleArrayOfArray, const Array< OneD, NekDouble > &ArtifDiffFactor=NullNekDouble1DArray) |
void | GetViscousSymmtrFluxConservVar (const int nSpaceDim, const Array< OneD, Array< OneD, NekDouble > > &inaverg, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &outarray, Array< OneD, int > &nonZeroIndex, const Array< OneD, Array< OneD, NekDouble > > &normals) |
Calculate and return the Symmetric flux in IP method. More... | |
void | SpecialBndTreat (Array< OneD, Array< OneD, NekDouble > > &consvar) |
For very special treatment. For general boundaries it does nothing But for WallViscous and WallAdiabatic, special treatment is needed because they get the same Bwd value, special treatment is needed for boundary treatment of diffusion flux Note: This special treatment could be removed by seperating WallViscous and WallAdiabatic into two different classes. More... | |
void | GetArtificialViscosity (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, NekDouble > &muav) |
Calculate and return the ArtificialViscosity for shock-capturing. More... | |
void | CalcViscosity (const Array< OneD, const Array< OneD, NekDouble >> &inaverg, Array< OneD, NekDouble > &mu) |
void | InitObject_Explicit () |
virtual void | v_InitObject () |
Initialization object for CompressibleFlowSystem class. More... | |
virtual void | v_ExtraFldOutput (std::vector< Array< OneD, NekDouble >> &fieldcoeffs, std::vector< std::string > &variables) |
virtual void | v_DoDiffusion (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray, const Array< OneD, const Array< OneD, NekDouble >> &pFwd, const Array< OneD, const Array< OneD, NekDouble >> &pBwd) |
virtual void | v_GetViscousFluxVector (const Array< OneD, const Array< OneD, NekDouble >> &physfield, TensorOfArray3D< NekDouble > &derivatives, TensorOfArray3D< NekDouble > &viscousTensor) |
Return the flux vector for the LDG diffusion problem. More... | |
virtual void | v_GetViscousFluxVectorDeAlias (const Array< OneD, const Array< OneD, NekDouble >> &physfield, TensorOfArray3D< NekDouble > &derivatives, TensorOfArray3D< NekDouble > &viscousTensor) |
Return the flux vector for the LDG diffusion problem. More... | |
void | GetPhysicalAV (const Array< OneD, const Array< OneD, NekDouble >> &physfield) |
Calculate the physical artificial viscosity. More... | |
void | Ducros (Array< OneD, NekDouble > &field) |
Applied Ducros (anti-vorticity) sensor. More... | |
void | C0Smooth (Array< OneD, NekDouble > &field) |
Make field C0. More... | |
virtual void | v_GetFluxPenalty (const Array< OneD, const Array< OneD, NekDouble >> &uFwd, const Array< OneD, const Array< OneD, NekDouble >> &uBwd, Array< OneD, Array< OneD, NekDouble >> &penaltyCoeff) |
Return the penalty vector for the LDGNS diffusion problem. More... | |
void | GetViscosityAndThermalCondFromTemp (const Array< OneD, NekDouble > &temperature, Array< OneD, NekDouble > &mu, Array< OneD, NekDouble > &thermalCond) |
Update viscosity todo: add artificial viscosity here. More... | |
template<class T , typename = typename std::enable_if < std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value >::type> | |
void | GetViscosityAndThermalCondFromTempKernel (const T &temperature, T &mu, T &thermalCond) |
template<class T , typename = typename std::enable_if < std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value >::type> | |
void | GetViscosityFromTempKernel (const T &temperature, T &mu) |
template<class T , typename = typename std::enable_if < std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value >::type> | |
void | GetViscousFluxBilinearFormKernel (const unsigned short nDim, const unsigned short FluxDirection, const unsigned short DerivDirection, const T *inaverg, const T *injumpp, const T &mu, T *outarray) |
Calculate diffusion flux using the Jacobian form. More... | |
template<bool IS_TRACE> | |
void | GetViscousFluxVectorConservVar (const int nDim, const Array< OneD, Array< OneD, NekDouble > > &inarray, const TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &outarray, Array< OneD, int > &nonZeroIndex, const Array< OneD, Array< OneD, NekDouble > > &normal, const Array< OneD, NekDouble > &ArtifDiffFactor) |
Return the flux vector for the IP diffusion problem, based on conservative variables. More... | |
![]() | |
CompressibleFlowSystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) | |
void | InitialiseParameters () |
Load CFS parameters from the session file. More... | |
void | InitAdvection () |
Create advection and diffusion objects for CFS. More... | |
void | DoOdeRhs (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray, const NekDouble time) |
Compute the right-hand side. More... | |
void | DoOdeProjection (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray, const NekDouble time) |
Compute the projection and call the method for imposing the boundary conditions in case of discontinuous projection. More... | |
void | DoAdvection (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray, const NekDouble time, const Array< OneD, const Array< OneD, NekDouble >> &pFwd, const Array< OneD, const Array< OneD, NekDouble >> &pBwd) |
Compute the advection terms for the right-hand side. More... | |
void | DoDiffusion (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray, const Array< OneD, const Array< OneD, NekDouble >> &pFwd, const Array< OneD, const Array< OneD, NekDouble >> &pBwd) |
Add the diffusions terms to the right-hand side. More... | |
void | GetFluxVector (const Array< OneD, const Array< OneD, NekDouble >> &physfield, TensorOfArray3D< NekDouble > &flux) |
Return the flux vector for the compressible Euler equations. More... | |
void | GetFluxVectorDeAlias (const Array< OneD, const Array< OneD, NekDouble >> &physfield, TensorOfArray3D< NekDouble > &flux) |
Return the flux vector for the compressible Euler equations by using the de-aliasing technique. More... | |
void | SetBoundaryConditions (Array< OneD, Array< OneD, NekDouble >> &physarray, NekDouble time) |
void | SetBoundaryConditionsBwdWeight () |
Set up a weight on physical boundaries for boundary condition applications. More... | |
void | GetElmtTimeStep (const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, NekDouble > &tstep) |
Calculate the maximum timestep on each element subject to CFL restrictions. More... | |
virtual NekDouble | v_GetTimeStep (const Array< OneD, const Array< OneD, NekDouble > > &inarray) |
Calculate the maximum timestep subject to CFL restrictions. More... | |
virtual void | v_SetInitialConditions (NekDouble initialtime=0.0, bool dumpInitialConditions=true, const int domain=0) |
Set up logic for residual calculation. More... | |
NekDouble | GetGamma () |
const Array< OneD, const Array< OneD, NekDouble > > & | GetVecLocs () |
const Array< OneD, const Array< OneD, NekDouble > > & | GetNormals () |
virtual void | v_ExtraFldOutput (std::vector< Array< OneD, NekDouble > > &fieldcoeffs, std::vector< std::string > &variables) |
virtual Array< OneD, NekDouble > | v_GetMaxStdVelocity (const NekDouble SpeedSoundFactor) |
Compute the advection velocity in the standard space for each element of the expansion. More... | |
virtual void | v_SteadyStateResidual (int step, Array< OneD, NekDouble > &L2) |
![]() | |
virtual SOLVER_UTILS_EXPORT bool | v_PostIntegrate (int step) |
![]() | |
SOLVER_UTILS_EXPORT | UnsteadySystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Initialises UnsteadySystem class members. More... | |
SOLVER_UTILS_EXPORT NekDouble | MaxTimeStepEstimator () |
Get the maximum timestep estimator for cfl control. More... | |
virtual SOLVER_UTILS_EXPORT void | v_DoSolve () |
Solves an unsteady problem. More... | |
virtual SOLVER_UTILS_EXPORT void | v_DoInitialise () |
Sets up initial conditions. More... | |
virtual SOLVER_UTILS_EXPORT void | v_GenerateSummary (SummaryList &s) |
Print a summary of time stepping parameters. More... | |
virtual SOLVER_UTILS_EXPORT void | v_AppendOutput1D (Array< OneD, Array< OneD, NekDouble >> &solution1D) |
Print the solution at each solution point in a txt file. More... | |
virtual SOLVER_UTILS_EXPORT NekDouble | v_GetTimeStep (const Array< OneD, const Array< OneD, NekDouble >> &inarray) |
Return the timestep to be used for the next step in the time-marching loop. More... | |
virtual SOLVER_UTILS_EXPORT bool | v_PreIntegrate (int step) |
virtual SOLVER_UTILS_EXPORT bool | v_RequireFwdTrans () |
SOLVER_UTILS_EXPORT void | CheckForRestartTime (NekDouble &time, int &nchk) |
SOLVER_UTILS_EXPORT void | SVVVarDiffCoeff (const Array< OneD, Array< OneD, NekDouble >> vel, StdRegions::VarCoeffMap &varCoeffMap) |
Evaluate the SVV diffusion coefficient according to Moura's paper where it should proportional to h time velocity. More... | |
virtual SOLVER_UTILS_EXPORT bool | UpdateTimeStepCheck () |
![]() | |
SOLVER_UTILS_EXPORT | EquationSystem (const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph) |
Initialises EquationSystem class members. More... | |
virtual SOLVER_UTILS_EXPORT NekDouble | v_LinfError (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray) |
Virtual function for the L_inf error computation between fields and a given exact solution. More... | |
virtual SOLVER_UTILS_EXPORT NekDouble | v_L2Error (unsigned int field, const Array< OneD, NekDouble > &exactsoln=NullNekDouble1DArray, bool Normalised=false) |
Virtual function for the L_2 error computation between fields and a given exact solution. More... | |
virtual SOLVER_UTILS_EXPORT void | v_TransCoeffToPhys () |
Virtual function for transformation to physical space. More... | |
virtual SOLVER_UTILS_EXPORT void | v_TransPhysToCoeff () |
Virtual function for transformation to coefficient space. More... | |
virtual SOLVER_UTILS_EXPORT void | v_EvaluateExactSolution (unsigned int field, Array< OneD, NekDouble > &outfield, const NekDouble time) |
virtual SOLVER_UTILS_EXPORT void | v_Output (void) |
virtual SOLVER_UTILS_EXPORT MultiRegions::ExpListSharedPtr | v_GetPressure (void) |
Protected Attributes | |
std::string | m_ViscosityType |
bool | m_is_mu_variable {false} |
flag to switch between constant viscosity and Sutherland an enum could be added for more options More... | |
bool | m_is_diffIP {false} |
flag to switch between IP and LDG an enum could be added for more options More... | |
NekDouble | m_Cp |
NekDouble | m_Cv |
NekDouble | m_Prandtl |
NekDouble | m_mu0 |
std::string | m_physicalSensorType |
std::string | m_smoothing |
MultiRegions::ContFieldSharedPtr | m_C0ProjectExp |
EquationOfStateSharedPtr | m_eos |
Equation of system for computing temperature. More... | |
NekDouble | m_Twall |
NekDouble | m_muRef |
NekDouble | m_thermalConductivityRef |
Array< OneD, NekDouble > | m_mu |
Array< OneD, NekDouble > | m_thermalConductivity |
![]() | |
SolverUtils::DiffusionSharedPtr | m_diffusion |
ArtificialDiffusionSharedPtr | m_artificialDiffusion |
Array< OneD, Array< OneD, NekDouble > > | m_vecLocs |
NekDouble | m_gamma |
std::string | m_shockCaptureType |
NekDouble | m_filterAlpha |
NekDouble | m_filterExponent |
NekDouble | m_filterCutoff |
bool | m_useFiltering |
bool | m_useLocalTimeStep |
Array< OneD, NekDouble > | m_muav |
Array< OneD, NekDouble > | m_muavTrace |
VariableConverterSharedPtr | m_varConv |
std::vector< CFSBndCondSharedPtr > | m_bndConds |
NekDouble | m_bndEvaluateTime |
std::vector< SolverUtils::ForcingSharedPtr > | m_forcing |
![]() | |
SolverUtils::AdvectionSharedPtr | m_advObject |
Advection term. More... | |
![]() | |
int | m_infosteps |
Number of time steps between outputting status information. More... | |
int | m_abortSteps |
Number of steps between checks for abort conditions. More... | |
int | m_filtersInfosteps |
Number of time steps between outputting filters information. More... | |
int | m_nanSteps |
LibUtilities::TimeIntegrationSchemeSharedPtr | m_intScheme |
Wrapper to the time integration scheme. More... | |
LibUtilities::TimeIntegrationSchemeOperators | m_ode |
The time integration scheme operators to use. More... | |
NekDouble | m_epsilon |
bool | m_explicitDiffusion |
Indicates if explicit or implicit treatment of diffusion is used. More... | |
bool | m_explicitAdvection |
Indicates if explicit or implicit treatment of advection is used. More... | |
bool | m_explicitReaction |
Indicates if explicit or implicit treatment of reaction is used. More... | |
bool | m_homoInitialFwd |
Flag to determine if simulation should start in homogeneous forward transformed state. More... | |
NekDouble | m_steadyStateTol |
Tolerance to which steady state should be evaluated at. More... | |
int | m_steadyStateSteps |
Check for steady state at step interval. More... | |
NekDouble | m_steadyStateRes = 1.0 |
NekDouble | m_steadyStateRes0 = 1.0 |
Array< OneD, Array< OneD, NekDouble > > | m_previousSolution |
Storage for previous solution for steady-state check. More... | |
std::ofstream | m_errFile |
std::vector< int > | m_intVariables |
std::vector< std::pair< std::string, FilterSharedPtr > > | m_filters |
NekDouble | m_filterTimeWarning |
Number of time steps between outputting status information. More... | |
NekDouble | m_TimeIntegLambda =0.0 |
coefff of spacial derivatives(rhs or m_F in GLM) in calculating the residual of the whole equation(used in unsteady time integrations) More... | |
bool | m_flagImplicitItsStatistics |
bool | m_flagImplicitSolver = false |
Array< OneD, NekDouble > | m_magnitdEstimat |
estimate the magnitude of each conserved varibles More... | |
Array< OneD, NekDouble > | m_locTimeStep |
local time step(notice only for jfnk other see m_cflSafetyFactor) More... | |
NekDouble | m_inArrayNorm =-1.0 |
int | m_TotLinItePerStep =0 |
int | m_StagesPerStep =1 |
bool | m_flagUpdatePreconMat |
int | m_maxLinItePerNewton |
int | m_TotNewtonIts =0 |
int | m_TotLinIts =0 |
int | m_TotImpStages =0 |
bool | m_CalcPhysicalAV = true |
flag to update artificial viscosity More... | |
![]() | |
LibUtilities::CommSharedPtr | m_comm |
Communicator. More... | |
bool | m_verbose |
bool | m_root |
LibUtilities::SessionReaderSharedPtr | m_session |
The session reader. More... | |
std::map< std::string, SolverUtils::SessionFunctionSharedPtr > | m_sessionFunctions |
Map of known SessionFunctions. More... | |
LibUtilities::FieldIOSharedPtr | m_fld |
Field input/output. More... | |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_fields |
Array holding all dependent variables. More... | |
SpatialDomains::BoundaryConditionsSharedPtr | m_boundaryConditions |
Pointer to boundary conditions object. More... | |
SpatialDomains::MeshGraphSharedPtr | m_graph |
Pointer to graph defining mesh. More... | |
std::string | m_sessionName |
Name of the session. More... | |
NekDouble | m_time |
Current time of simulation. More... | |
int | m_initialStep |
Number of the step where the simulation should begin. More... | |
NekDouble | m_fintime |
Finish time of the simulation. More... | |
NekDouble | m_timestep |
Time step size. More... | |
NekDouble | m_timestepMax = -1.0 |
Time step size. More... | |
NekDouble | m_lambda |
Lambda constant in real system if one required. More... | |
NekDouble | m_checktime |
Time between checkpoints. More... | |
NekDouble | m_lastCheckTime |
NekDouble | m_TimeIncrementFactor |
int | m_nchk |
Number of checkpoints written so far. More... | |
int | m_steps |
Number of steps to take. More... | |
int | m_checksteps |
Number of steps between checkpoints. More... | |
int | m_spacedim |
Spatial dimension (>= expansion dim). More... | |
int | m_expdim |
Expansion dimension. More... | |
bool | m_singleMode |
Flag to determine if single homogeneous mode is used. More... | |
bool | m_halfMode |
Flag to determine if half homogeneous mode is used. More... | |
bool | m_multipleModes |
Flag to determine if use multiple homogenenous modes are used. More... | |
bool | m_useFFT |
Flag to determine if FFT is used for homogeneous transform. More... | |
bool | m_homogen_dealiasing |
Flag to determine if dealiasing is used for homogeneous simulations. More... | |
bool | m_specHP_dealiasing |
Flag to determine if dealisising is usde for the Spectral/hp element discretisation. More... | |
enum MultiRegions::ProjectionType | m_projectionType |
Type of projection; e.g continuous or discontinuous. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_traceNormals |
Array holding trace normals for DG simulations in the forwards direction. More... | |
Array< OneD, bool > | m_checkIfSystemSingular |
Flag to indicate if the fields should be checked for singularity. More... | |
LibUtilities::FieldMetaDataMap | m_fieldMetaDataMap |
Map to identify relevant solver info to dump in output fields. More... | |
int | m_NumQuadPointsError |
Number of Quadrature points used to work out the error. More... | |
enum HomogeneousType | m_HomogeneousType |
NekDouble | m_LhomX |
physical length in X direction (if homogeneous) More... | |
NekDouble | m_LhomY |
physical length in Y direction (if homogeneous) More... | |
NekDouble | m_LhomZ |
physical length in Z direction (if homogeneous) More... | |
int | m_npointsX |
number of points in X direction (if homogeneous) More... | |
int | m_npointsY |
number of points in Y direction (if homogeneous) More... | |
int | m_npointsZ |
number of points in Z direction (if homogeneous) More... | |
int | m_HomoDirec |
number of homogenous directions More... | |
Friends | |
class | MemoryManager< NavierStokesCFE > |
Additional Inherited Members | |
![]() | |
NekDouble | m_cflSafetyFactor |
CFL safety factor (comprise between 0 to 1). More... | |
NekDouble | m_cflNonAcoustic |
NekDouble | m_CFLGrowth |
CFL growth rate. More... | |
NekDouble | m_CFLEnd |
maximun cfl in cfl growth More... | |
![]() | |
enum | HomogeneousType { eHomogeneous1D , eHomogeneous2D , eHomogeneous3D , eNotHomogeneous } |
Parameter for homogeneous expansions. More... | |
![]() | |
static std::string | equationSystemTypeLookupIds [] |
Definition at line 49 of file NavierStokesCFE.h.
|
virtual |
Definition at line 54 of file NavierStokesCFE.cpp.
|
protected |
Definition at line 46 of file NavierStokesCFE.cpp.
Make field C0.
field | Input Field |
Definition at line 893 of file NavierStokesCFE.cpp.
References m_C0ProjectExp, Vmath::Vcopy(), and Vmath::Vdiv().
Referenced by v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
|
protected |
Definition at line 869 of file NavierStokesCFE.cpp.
References Vmath::Fill(), m_mu, Nektar::CompressibleFlowSystem::m_varConv, and m_ViscosityType.
Referenced by InitObject_Explicit().
|
inlinestatic |
Definition at line 55 of file NavierStokesCFE.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
Applied Ducros (anti-vorticity) sensor.
field | Input Field |
Definition at line 925 of file NavierStokesCFE.cpp.
References Vmath::Fill(), Nektar::NekConstants::kNekZeroTol, Nektar::CompressibleFlowSystem::m_diffusion, Nektar::SolverUtils::EquationSystem::m_fields, Vmath::Vadd(), Vmath::Vdiv(), Vmath::Vmul(), and Vmath::Vsum().
Referenced by v_ExtraFldOutput(), v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
|
protected |
Calculate and return the ArtificialViscosity for shock-capturing.
Definition at line 760 of file NavierStokesCFE.cpp.
References Nektar::CompressibleFlowSystem::m_artificialDiffusion.
Referenced by InitObject_Explicit().
|
protected |
Calculate the physical artificial viscosity.
physfield | Input field. |
Definition at line 825 of file NavierStokesCFE.cpp.
References Nektar::CompressibleFlowSystem::GetElmtMinHP(), Nektar::SolverUtils::EquationSystem::m_fields, m_mu0, Nektar::CompressibleFlowSystem::m_muav, Nektar::CompressibleFlowSystem::m_varConv, Smath::Smax(), Vmath::Smul(), Vmath::Vadd(), Vmath::Vmax(), and Vmath::Vsum().
Referenced by v_DoDiffusion(), and Nektar::NavierStokesImplicitCFE::v_DoDiffusionCoeff().
|
protected |
Update viscosity todo: add artificial viscosity here.
Definition at line 998 of file NavierStokesCFE.cpp.
References GetViscosityAndThermalCondFromTempKernel(), and CellMLToNektar.cellml_metadata::p.
Referenced by v_GetFluxPenalty(), v_GetViscousFluxVector(), Nektar::NavierStokesCFEAxisym::v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
|
inlineprotected |
Definition at line 175 of file NavierStokesCFE.h.
References GetViscosityFromTempKernel(), m_Cp, and m_Prandtl.
Referenced by GetViscosityAndThermalCondFromTemp().
|
inlineprotected |
Definition at line 189 of file NavierStokesCFE.h.
References m_is_mu_variable, m_muRef, and Nektar::CompressibleFlowSystem::m_varConv.
Referenced by GetViscosityAndThermalCondFromTempKernel(), GetViscousFluxVectorConservVar(), and GetViscousSymmtrFluxConservVar().
|
inlineprotected |
Calculate diffusion flux using the Jacobian form.
in | |
out | outarray[nvars] flux |
Definition at line 217 of file NavierStokesCFE.h.
References Nektar::CompressibleFlowSystem::m_gamma, and m_Prandtl.
Referenced by GetViscousFluxVectorConservVar(), and GetViscousSymmtrFluxConservVar().
|
inlineprotected |
Return the flux vector for the IP diffusion problem, based on conservative variables.
Definition at line 362 of file NavierStokesCFE.h.
References GetViscosityFromTempKernel(), GetViscousFluxBilinearFormKernel(), tinysimd::is_not_aligned, Nektar::CompressibleFlowSystem::m_varConv, and CellMLToNektar.cellml_metadata::p.
|
protected |
|
protected |
Calculate and return the Symmetric flux in IP method.
Definition at line 770 of file NavierStokesCFE.cpp.
References GetViscosityFromTempKernel(), GetViscousFluxBilinearFormKernel(), Nektar::CompressibleFlowSystem::m_varConv, and CellMLToNektar.cellml_metadata::p.
Referenced by InitObject_Explicit().
|
protected |
Definition at line 71 of file NavierStokesCFE.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, CalcViscosity(), Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), GetArtificialViscosity(), Nektar::SolverUtils::GetDiffusionFactory(), GetViscousSymmtrFluxConservVar(), m_C0ProjectExp, m_Cp, m_Cv, Nektar::CompressibleFlowSystem::m_diffusion, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::CompressibleFlowSystem::m_gamma, Nektar::SolverUtils::EquationSystem::m_graph, m_is_diffIP, m_is_mu_variable, m_mu, m_mu0, m_muRef, m_physicalSensorType, m_Prandtl, Nektar::SolverUtils::EquationSystem::m_session, Nektar::CompressibleFlowSystem::m_shockCaptureType, m_smoothing, Nektar::SolverUtils::EquationSystem::m_specHP_dealiasing, m_thermalConductivity, m_thermalConductivityRef, m_Twall, m_ViscosityType, Nektar::CompressibleFlowSystem::SetBoundaryConditionsBwdWeight(), SpecialBndTreat(), v_GetFluxPenalty(), v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
Referenced by v_InitObject(), and Nektar::NavierStokesImplicitCFE::v_InitObject().
|
protected |
For very special treatment. For general boundaries it does nothing But for WallViscous and WallAdiabatic, special treatment is needed because they get the same Bwd value, special treatment is needed for boundary treatment of diffusion flux Note: This special treatment could be removed by seperating WallViscous and WallAdiabatic into two different classes.
Definition at line 671 of file NavierStokesCFE.cpp.
References Nektar::SpatialDomains::ePeriodic, Vmath::Fill(), Nektar::SolverUtils::EquationSystem::GetPhys_Offset(), Nektar::SolverUtils::EquationSystem::m_fields, m_Twall, Nektar::CompressibleFlowSystem::m_varConv, Vmath::Vcopy(), Vmath::Vvtvp(), and Vmath::Zero().
Referenced by InitObject_Explicit().
|
protectedvirtual |
Reimplemented from Nektar::CompressibleFlowSystem.
Reimplemented in Nektar::NavierStokesCFEAxisym.
Definition at line 301 of file NavierStokesCFE.cpp.
References Nektar::ErrorUtil::efatal, Nektar::SolverUtils::EquationSystem::GetNpoints(), GetPhysicalAV(), Nektar::SolverUtils::EquationSystem::GetTraceTotPoints(), Nektar::CompressibleFlowSystem::m_bndEvaluateTime, Nektar::SolverUtils::UnsteadySystem::m_CalcPhysicalAV, Nektar::CompressibleFlowSystem::m_diffusion, Nektar::SolverUtils::EquationSystem::m_fields, m_is_diffIP, Nektar::CompressibleFlowSystem::m_shockCaptureType, Nektar::CompressibleFlowSystem::m_varConv, NEKERROR, Nektar::NullNekDoubleArrayOfArray, and Vmath::Vadd().
Referenced by Nektar::NavierStokesCFEAxisym::v_DoDiffusion().
|
protectedvirtual |
Definition at line 179 of file NavierStokesCFE.cpp.
References Ducros(), Nektar::CompressibleFlowSystem::m_artificialDiffusion, Nektar::CompressibleFlowSystem::m_diffusion, Nektar::SolverUtils::EquationSystem::m_fields, Nektar::CompressibleFlowSystem::m_muav, Nektar::SolverUtils::EquationSystem::m_session, Nektar::CompressibleFlowSystem::m_shockCaptureType, Nektar::SolverUtils::EquationSystem::m_spacedim, Nektar::CompressibleFlowSystem::m_varConv, and CG_Iterations::pressure.
|
protectedvirtual |
Return the penalty vector for the LDGNS diffusion problem.
Definition at line 955 of file NavierStokesCFE.cpp.
References GetViscosityAndThermalCondFromTemp(), Vmath::Svtsvtp(), Vmath::Vmul(), and Vmath::Vsub().
Referenced by InitObject_Explicit().
|
protectedvirtual |
Return the flux vector for the LDG diffusion problem.
Reimplemented in Nektar::NavierStokesCFEAxisym.
Definition at line 404 of file NavierStokesCFE.cpp.
References C0Smooth(), Ducros(), GetViscosityAndThermalCondFromTemp(), Nektar::SolverUtils::UnsteadySystem::m_CalcPhysicalAV, Nektar::SolverUtils::UnsteadySystem::m_explicitDiffusion, m_mu, Nektar::CompressibleFlowSystem::m_muav, m_physicalSensorType, Nektar::CompressibleFlowSystem::m_shockCaptureType, m_smoothing, Nektar::SolverUtils::EquationSystem::m_spacedim, m_thermalConductivity, Vmath::Smul(), Vmath::Vadd(), Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vvtvp(), and Vmath::Zero().
Referenced by InitObject_Explicit().
|
protectedvirtual |
Return the flux vector for the LDG diffusion problem.
Reimplemented in Nektar::NavierStokesCFEAxisym.
Definition at line 512 of file NavierStokesCFE.cpp.
References C0Smooth(), Ducros(), GetViscosityAndThermalCondFromTemp(), Nektar::SolverUtils::UnsteadySystem::m_CalcPhysicalAV, Nektar::SolverUtils::UnsteadySystem::m_explicitDiffusion, Nektar::SolverUtils::EquationSystem::m_fields, m_mu, Nektar::CompressibleFlowSystem::m_muav, m_physicalSensorType, Nektar::CompressibleFlowSystem::m_shockCaptureType, m_smoothing, Nektar::SolverUtils::EquationSystem::m_spacedim, m_thermalConductivity, Vmath::Smul(), Vmath::Vadd(), Vmath::Vmul(), Vmath::Vvtvp(), and Vmath::Zero().
Referenced by InitObject_Explicit().
|
protectedvirtual |
Initialization object for CompressibleFlowSystem class.
Reimplemented from Nektar::CompressibleFlowSystem.
Reimplemented in Nektar::NavierStokesImplicitCFE, and Nektar::NavierStokesCFEAxisym.
Definition at line 62 of file NavierStokesCFE.cpp.
References InitObject_Explicit(), and Nektar::CompressibleFlowSystem::v_InitObject().
Referenced by Nektar::NavierStokesCFEAxisym::v_InitObject().
|
friend |
Definition at line 1 of file NavierStokesCFE.h.
|
static |
Definition at line 65 of file NavierStokesCFE.h.
|
protected |
Definition at line 85 of file NavierStokesCFE.h.
Referenced by C0Smooth(), and InitObject_Explicit().
|
protected |
Definition at line 78 of file NavierStokesCFE.h.
Referenced by GetViscosityAndThermalCondFromTempKernel(), and InitObject_Explicit().
|
protected |
Definition at line 79 of file NavierStokesCFE.h.
Referenced by Nektar::NavierStokesImplicitCFE::GetdFlux_dU_2D(), Nektar::NavierStokesImplicitCFE::GetdFlux_dU_3D(), and InitObject_Explicit().
|
protected |
Equation of system for computing temperature.
Definition at line 88 of file NavierStokesCFE.h.
|
protected |
flag to switch between IP and LDG an enum could be added for more options
Definition at line 76 of file NavierStokesCFE.h.
Referenced by InitObject_Explicit(), v_DoDiffusion(), and Nektar::NavierStokesImplicitCFE::v_DoDiffusionCoeff().
|
protected |
flag to switch between constant viscosity and Sutherland an enum could be added for more options
Definition at line 73 of file NavierStokesCFE.h.
Referenced by GetViscosityFromTempKernel(), and InitObject_Explicit().
Definition at line 94 of file NavierStokesCFE.h.
Referenced by CalcViscosity(), InitObject_Explicit(), Nektar::NavierStokesImplicitCFE::v_CalcMuDmuDT(), Nektar::NavierStokesImplicitCFE::v_GetFluxDerivJacDirctn(), v_GetViscousFluxVector(), Nektar::NavierStokesCFEAxisym::v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
|
protected |
Definition at line 82 of file NavierStokesCFE.h.
Referenced by GetPhysicalAV(), and InitObject_Explicit().
|
protected |
Definition at line 92 of file NavierStokesCFE.h.
Referenced by GetViscosityFromTempKernel(), and InitObject_Explicit().
|
protected |
Definition at line 83 of file NavierStokesCFE.h.
Referenced by InitObject_Explicit(), v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
|
protected |
Definition at line 80 of file NavierStokesCFE.h.
Referenced by Nektar::NavierStokesImplicitCFE::GetdFlux_dQx_2D(), Nektar::NavierStokesImplicitCFE::GetdFlux_dQx_3D(), Nektar::NavierStokesImplicitCFE::GetdFlux_dQy_2D(), Nektar::NavierStokesImplicitCFE::GetdFlux_dQy_3D(), Nektar::NavierStokesImplicitCFE::GetdFlux_dQz_3D(), Nektar::NavierStokesImplicitCFE::GetdFlux_dU_2D(), Nektar::NavierStokesImplicitCFE::GetdFlux_dU_3D(), GetViscosityAndThermalCondFromTempKernel(), GetViscousFluxBilinearFormKernel(), and InitObject_Explicit().
|
protected |
Definition at line 84 of file NavierStokesCFE.h.
Referenced by InitObject_Explicit(), v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
Definition at line 95 of file NavierStokesCFE.h.
Referenced by InitObject_Explicit(), v_GetViscousFluxVector(), Nektar::NavierStokesCFEAxisym::v_GetViscousFluxVector(), and v_GetViscousFluxVectorDeAlias().
|
protected |
Definition at line 93 of file NavierStokesCFE.h.
Referenced by InitObject_Explicit().
|
protected |
Definition at line 90 of file NavierStokesCFE.h.
Referenced by InitObject_Explicit(), and SpecialBndTreat().
|
protected |
Definition at line 70 of file NavierStokesCFE.h.
Referenced by CalcViscosity(), InitObject_Explicit(), Nektar::NavierStokesImplicitCFE::v_CalcMuDmuDT(), and Nektar::NavierStokesImplicitCFE::v_GetFluxDerivJacDirctn().