35 #ifndef NEKTAR_SOLVERS_INCNAVIERSTOKES_H
36 #define NEKTAR_SOLVERS_INCNAVIERSTOKES_H
69 "UnsteadyLinearisedNS",
70 "UnsteadyNavierStokes",
244 void SetUpWomersley(
const int fldid,
const int bndid, std::string womstr);
256 ASSERTL0(
false,
"This method is not defined in this class");
261 ASSERTL0(
false,
"This method is not defined in this class");
#define ASSERTL0(condition, msg)
This class is the base class for Navier Stokes problems.
virtual Array< OneD, NekDouble > v_GetMaxStdVelocity(const NekDouble SpeedSoundFactor)
Array< OneD, int > & GetVelocity(void)
std::ofstream m_mdlFile
modal energy file
Array< OneD, Array< OneD, int > > m_fieldsBCToTraceID
Mapping from BCs to Elmt Edge IDs.
virtual MultiRegions::ExpListSharedPtr v_GetPressure()
virtual void v_InitObject()
Init object for UnsteadySystem class.
virtual int v_GetForceDimension()=0
void SetWomersleyBoundary(const int fldid, const int bndid)
Set Womersley Profile if specified.
void SetZeroNormalVelocity()
Set Normal Velocity Component to Zero.
void WriteModalEnergy(void)
void SetBoundaryConditions(NekDouble time)
time dependent boundary conditions updating
virtual bool v_PreIntegrate(int step)
MultiRegions::ExpListSharedPtr m_pressure
Pointer to field holding pressure field.
NekDouble m_kinvis
Kinematic viscosity.
bool m_SmoothAdvection
bool to identify if advection term smoothing is requested
virtual ~IncNavierStokes()
virtual void GetDensity(const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, NekDouble > &density)
Extract array with density from physfield.
void SetRadiationBoundaryForcing(int fieldid)
Set Radiation forcing term.
Array< OneD, Array< OneD, NekDouble > > m_fieldsRadiationFactor
RHS Factor for Radiation Condition.
void SetUpWomersley(const int fldid, const int bndid, std::string womstr)
Set Up Womersley details.
ExtrapolateSharedPtr m_extrapolation
Array< OneD, int > m_velocity
int which identifies which components of m_fields contains the velocity (u,v,w);
virtual void v_TransPhysToCoeff(void)
Virtual function for transformation to coefficient space.
std::map< int, std::map< int, WomersleyParamsSharedPtr > > m_womersleyParams
Womersley parameters if required.
Array< OneD, Array< OneD, int > > m_fieldsBCToElmtID
Mapping from BCs to Elmt IDs.
int m_energysteps
dump energy to file at steps time
EquationType m_equationType
equation type;
EquationType GetEquationType(void)
int GetNConvectiveFields(void)
int m_intSteps
Number of time integration steps AND Order of extrapolation for pressure boundary conditions.
virtual void v_TransCoeffToPhys(void)
Virtual function for transformation to physical space.
int m_nConvectiveFields
Number of fields to be convected;.
void AddForcing(const SolverUtils::ForcingSharedPtr &pForce)
std::vector< SolverUtils::ForcingSharedPtr > m_forcing
Forcing terms.
virtual bool HasConstantDensity()
void EvaluateAdvectionTerms(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
IncNavierStokes(const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph)
Constructor.
A base class for PDEs which include an advection component.
SOLVER_UTILS_EXPORT MultiRegions::ExpListSharedPtr GetPressure()
Get pressure field if available.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
SOLVER_UTILS_EXPORT typedef std::shared_ptr< Forcing > ForcingSharedPtr
A shared pointer to an EquationSystem object.
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
The above copyright notice and this permission notice shall be included.
const std::string kAdvectionFormStr[]
std::complex< double > NekComplexDouble
std::shared_ptr< Extrapolate > ExtrapolateSharedPtr
std::shared_ptr< IncNavierStokes > IncNavierStokesSharedPtr
std::shared_ptr< WomersleyParams > WomersleyParamsSharedPtr
const std::string kEquationTypeStr[]
Array< OneD, NekDouble > m_axisnormal
std::vector< NekComplexDouble > m_wom_vel
Array< OneD, Array< OneD, NekDouble > > m_poiseuille
Array< OneD, NekDouble > m_axispoint
virtual ~WomersleyParams()
Array< OneD, Array< OneD, Array< OneD, NekComplexDouble > > > m_zvel