Nektar++
|
#include <Extrapolate.h>
Protected Attributes | |
LibUtilities::SessionReaderSharedPtr | m_session |
LibUtilities::CommSharedPtr | m_comm |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_fields |
MultiRegions::ExpListSharedPtr | m_pressure |
Pointer to field holding pressure field. More... | |
Array< OneD, int > | m_velocity |
int which identifies which components of m_fields contains the velocity (u,v,w); More... | |
SolverUtils::AdvectionSharedPtr | m_advObject |
Array< OneD, Array< OneD, NekDouble > > | m_previousVelFields |
int | m_curl_dim |
Curl-curl dimensionality. More... | |
int | m_bnd_dim |
bounday dimensionality More... | |
Array< OneD, const SpatialDomains::BoundaryConditionShPtr > | m_PBndConds |
pressure boundary conditions container More... | |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_PBndExp |
pressure boundary conditions expansion container More... | |
int | m_pressureCalls |
number of times the high-order pressure BCs have been called More... | |
int | m_pressureBCsMaxPts |
Maximum points used in pressure BC evaluation. More... | |
int | m_pressureBCsElmtMaxPts |
Maximum points used in Element adjacent to pressure BC evaluation. More... | |
int | m_intSteps |
Maximum points used in pressure BC evaluation. More... | |
NekDouble | m_timestep |
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... | |
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... | |
Array< OneD, int > | m_pressureBCtoElmtID |
Id of element to which pressure boundary condition belongs. More... | |
Array< OneD, int > | m_pressureBCtoTraceID |
Id of edge (2D) or face (3D) to which pressure boundary condition belongs. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_pressureHBCs |
Storage for current and previous levels of high order pressure boundary conditions. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_acceleration |
Storage for current and previous levels of the acceleration term. More... | |
Array< OneD, HBCInfo > | m_HBCdata |
data structure to old all the information regarding High order pressure BCs More... | |
Array< OneD, NekDouble > | m_wavenumber |
wave number 2 pi k /Lz More... | |
Array< OneD, NekDouble > | m_negWavenumberSq |
minus Square of wavenumber More... | |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_outflowVel |
Storage for current and previous velocity fields at the otuflow for high order outflow BCs. More... | |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_PhyoutfVel |
Storage for current and previous velocity fields in physical space at the otuflow for high order outflow BCs. More... | |
Array< OneD, NekDouble > | m_nonlinearterm_phys |
(if homogeneous) More... | |
Array< OneD, NekDouble > | m_nonlinearterm_coeffs |
(if homogeneous) More... | |
Array< OneD, unsigned int > | m_expsize_per_plane |
(if homogeneous) More... | |
Array< OneD, NekDouble > | m_PBndCoeffs |
(if homogeneous) More... | |
Array< OneD, Array< OneD, NekDouble > > | m_UBndCoeffs |
(if homogeneous) More... | |
int | m_totexps_per_plane |
(if homogeneous) More... | |
Static Private Attributes | |
static std::string | def |
total number of expansion for each plane (if homogeneous) More... | |
static NekDouble | StifflyStable_Betaq_Coeffs [3][3] |
static NekDouble | StifflyStable_Alpha_Coeffs [3][3] |
static NekDouble | StifflyStable_Gamma0_Coeffs [3] |
Definition at line 83 of file Extrapolate.h.
Nektar::Extrapolate::Extrapolate | ( | const LibUtilities::SessionReaderSharedPtr | pSession, |
Array< OneD, MultiRegions::ExpListSharedPtr > | pFields, | ||
MultiRegions::ExpListSharedPtr | pPressure, | ||
const Array< OneD, int > | pVel, | ||
const SolverUtils::AdvectionSharedPtr | advObject | ||
) |
Definition at line 57 of file Extrapolate.cpp.
References m_comm, m_session, and m_timestep.
|
virtual |
Definition at line 73 of file Extrapolate.cpp.
|
protected |
Unified routine for calculation high-oder terms
Casting the boundary expansion to the specific case
Picking up the element where the HOPBc is located
Assigning
Calculating the curl-curl and storing it in Q
Definition at line 191 of file Extrapolate.cpp.
References ASSERTL0, CurlCurl(), Nektar::MultiRegions::e2D, Nektar::MultiRegions::e3D, Nektar::MultiRegions::e3DH1D, Nektar::MultiRegions::e3DH2D, m_acceleration, m_bnd_dim, m_curl_dim, m_HBCdata, m_PBndExp, m_pressure, m_pressureBCsElmtMaxPts, m_pressureBCsMaxPts, and MountHOPBCs().
Referenced by EvaluatePressureBCs().
|
protected |
Definition at line 329 of file Extrapolate.cpp.
References Nektar::MultiRegions::DirCartesianMap, Nektar::MultiRegions::e3DH1D, m_bnd_dim, m_curl_dim, m_expsize_per_plane, m_fields, m_intSteps, m_nonlinearterm_coeffs, m_nonlinearterm_phys, m_outflowVel, m_PBndCoeffs, m_PBndConds, m_PBndExp, m_PhyoutfVel, m_pressure, m_pressureBCsElmtMaxPts, m_pressureBCsMaxPts, m_pressureBCtoElmtID, m_pressureBCtoTraceID, m_pressureCalls, m_session, m_totexps_per_plane, m_UBndCoeffs, m_velocity, RollOver(), Vmath::Smul(), Vmath::Svtvp(), Vmath::Vadd(), Vmath::Vcopy(), Vmath::Vvtvp(), and Vmath::Zero().
Referenced by EvaluatePressureBCs().
|
protected |
Curl Curl routine - dimension dependent
Definition at line 894 of file Extrapolate.cpp.
References ASSERTL0, Nektar::MultiRegions::DirCartesianMap, Nektar::MultiRegions::e2D, Nektar::MultiRegions::e3D, Nektar::MultiRegions::e3DH1D, Nektar::MultiRegions::e3DH2D, m_fields, m_HBCdata, m_negWavenumberSq, m_pressureBCsElmtMaxPts, m_wavenumber, Vmath::Smul(), Vmath::Vadd(), and Vmath::Vsub().
Referenced by CalcNeumannPressureBCs().
void Nektar::Extrapolate::EvaluatePressureBCs | ( | const Array< OneD, const Array< OneD, NekDouble > > & | fields, |
const Array< OneD, const Array< OneD, NekDouble > > & | N, | ||
NekDouble | kinvis | ||
) |
Function to extrapolate the new pressure boundary condition. Based on the velocity field and on the advection term. Acceleration term is also computed. This routine is a general one for 2d and 3D application and it can be called directly from velocity correction scheme. Specialisation on dimensionality is redirected to the CalcPressureBCs method.
Definition at line 90 of file Extrapolate.cpp.
References CalcNeumannPressureBCs(), CalcOutflowBCs(), m_acceleration, m_HBCdata, m_intSteps, m_PBndConds, m_PBndExp, m_pressureCalls, m_pressureHBCs, m_timestep, RollOver(), Vmath::Smul(), StifflyStable_Alpha_Coeffs, StifflyStable_Betaq_Coeffs, StifflyStable_Gamma0_Coeffs, Vmath::Svtvp(), and Vmath::Vcopy().
Referenced by Nektar::SubSteppingExtrapolate::v_SubStepSetPressureBCs().
void Nektar::Extrapolate::GenerateHOPBCMap | ( | ) |
Map to directly locate HOPBCs position and offsets in all scenarios
Definition at line 1051 of file Extrapolate.cpp.
References ASSERTL0, Nektar::MultiRegions::e2D, Nektar::MultiRegions::e3D, Nektar::MultiRegions::e3DH1D, Nektar::MultiRegions::e3DH2D, m_acceleration, m_bnd_dim, m_comm, m_curl_dim, m_HalfMode, m_HBCdata, m_intSteps, m_LhomZ, m_MultipleModes, m_negWavenumberSq, m_npointsY, m_npointsZ, m_PBndConds, m_PBndExp, m_pressure, m_pressureBCsElmtMaxPts, m_pressureBCsMaxPts, m_pressureBCtoElmtID, m_pressureBCtoTraceID, m_pressureCalls, m_pressureHBCs, m_session, m_SingleMode, m_wavenumber, Nektar::LibUtilities::ReduceSum, and sign.
Array< OneD, NekDouble > Nektar::Extrapolate::GetMaxStdVelocity | ( | const Array< OneD, Array< OneD, NekDouble > > | inarray | ) |
Definition at line 1369 of file Extrapolate.cpp.
References ASSERTL0, Nektar::SpatialDomains::eDeformed, m_curl_dim, and m_fields.
Referenced by Nektar::SubSteppingExtrapolate::GetSubstepTimeStep().
|
inline |
Definition at line 324 of file Extrapolate.h.
References v_MountHOPBCs().
Referenced by CalcNeumannPressureBCs().
Function to roll time-level storages to the next step layout. The stored data associated with the oldest time-level (not required anymore) are moved to the top, where they will be overwritten as the solution process progresses.
Definition at line 1031 of file Extrapolate.cpp.
Referenced by CalcOutflowBCs(), and EvaluatePressureBCs().
|
inline |
Definition at line 313 of file Extrapolate.h.
References v_SubStepAdvance().
|
inline |
Definition at line 283 of file Extrapolate.h.
References v_SubSteppingTimeIntegration().
|
inline |
Definition at line 293 of file Extrapolate.h.
References v_SubStepSaveFields().
|
inline |
Definition at line 302 of file Extrapolate.h.
References v_SubStepSetPressureBCs().
|
protectedpure virtual |
Implemented in Nektar::SubSteppingExtrapolate, and Nektar::StandardExtrapolate.
Referenced by MountHOPBCs().
|
protectedpure virtual |
Implemented in Nektar::SubSteppingExtrapolate, and Nektar::StandardExtrapolate.
Referenced by SubStepAdvance().
|
protectedpure virtual |
Implemented in Nektar::SubSteppingExtrapolate, and Nektar::StandardExtrapolate.
Referenced by SubSteppingTimeIntegration().
|
protectedpure virtual |
Implemented in Nektar::SubSteppingExtrapolate, and Nektar::StandardExtrapolate.
Referenced by SubStepSaveFields().
|
protectedpure virtual |
Implemented in Nektar::SubSteppingExtrapolate, and Nektar::StandardExtrapolate.
Referenced by SubStepSetPressureBCs().
|
staticprivate |
total number of expansion for each plane (if homogeneous)
Definition at line 272 of file Extrapolate.h.
Storage for current and previous levels of the acceleration term.
Definition at line 236 of file Extrapolate.h.
Referenced by CalcNeumannPressureBCs(), EvaluatePressureBCs(), and GenerateHOPBCMap().
|
protected |
Definition at line 183 of file Extrapolate.h.
Referenced by Nektar::SubSteppingExtrapolate::SubStepAdvection().
|
protected |
bounday dimensionality
Definition at line 191 of file Extrapolate.h.
Referenced by CalcNeumannPressureBCs(), CalcOutflowBCs(), and GenerateHOPBCMap().
|
protected |
Definition at line 172 of file Extrapolate.h.
Referenced by Extrapolate(), GenerateHOPBCMap(), Nektar::SubSteppingExtrapolate::GetSubstepTimeStep(), and Nektar::SubSteppingExtrapolate::v_SubStepAdvance().
|
protected |
Curl-curl dimensionality.
Definition at line 188 of file Extrapolate.h.
Referenced by Nektar::SubSteppingExtrapolate::AddAdvectionPenaltyFlux(), CalcNeumannPressureBCs(), CalcOutflowBCs(), GenerateHOPBCMap(), and GetMaxStdVelocity().
(if homogeneous)
expansion sizes of pressure boundary conditions in each plane at the outflow for high order outflow BCs
Definition at line 261 of file Extrapolate.h.
Referenced by CalcOutflowBCs().
|
protected |
Definition at line 174 of file Extrapolate.h.
Referenced by Nektar::SubSteppingExtrapolate::AddAdvectionPenaltyFlux(), Nektar::SubSteppingExtrapolate::AddDuDt2D(), Nektar::SubSteppingExtrapolate::AddDuDt3D(), CalcOutflowBCs(), CurlCurl(), GetMaxStdVelocity(), Nektar::SubSteppingExtrapolate::GetSubstepTimeStep(), Nektar::SubSteppingExtrapolate::SubStepAdvection(), Nektar::SubSteppingExtrapolate::SubStepExtrapolateField(), Nektar::SubSteppingExtrapolate::v_SubStepAdvance(), Nektar::SubSteppingExtrapolate::v_SubSteppingTimeIntegration(), Nektar::SubSteppingExtrapolate::v_SubStepSaveFields(), and Nektar::SubSteppingExtrapolate::v_SubStepSetPressureBCs().
|
protected |
Flag to determine if half homogeneous mode is used.
Definition at line 216 of file Extrapolate.h.
Referenced by GenerateHOPBCMap().
data structure to old all the information regarding High order pressure BCs
Definition at line 239 of file Extrapolate.h.
Referenced by CalcNeumannPressureBCs(), CurlCurl(), EvaluatePressureBCs(), and GenerateHOPBCMap().
|
protected |
Maximum points used in pressure BC evaluation.
Definition at line 209 of file Extrapolate.h.
Referenced by CalcOutflowBCs(), EvaluatePressureBCs(), GenerateHOPBCMap(), Nektar::SubSteppingExtrapolate::SubStepExtrapolateField(), Nektar::SubSteppingExtrapolate::v_SubStepAdvance(), Nektar::StandardExtrapolate::v_SubSteppingTimeIntegration(), and Nektar::SubSteppingExtrapolate::v_SubSteppingTimeIntegration().
|
protected |
physical length in Z direction (if homogeneous)
Definition at line 220 of file Extrapolate.h.
Referenced by GenerateHOPBCMap().
|
protected |
Flag to determine if use multiple homogenenous modes are used.
Definition at line 218 of file Extrapolate.h.
Referenced by GenerateHOPBCMap().
minus Square of wavenumber
Definition at line 245 of file Extrapolate.h.
Referenced by CurlCurl(), and GenerateHOPBCMap().
(if homogeneous)
Storage for nonlinear term in wave space at the outflow for high order outflow BCs
Definition at line 257 of file Extrapolate.h.
Referenced by CalcOutflowBCs().
(if homogeneous)
Storage for nonlinear term in physical space at the outflow for high order outflow BCs
Definition at line 254 of file Extrapolate.h.
Referenced by CalcOutflowBCs().
|
protected |
number of points in X direction (if homogeneous)
Definition at line 222 of file Extrapolate.h.
|
protected |
number of points in Y direction (if homogeneous)
Definition at line 223 of file Extrapolate.h.
Referenced by GenerateHOPBCMap().
|
protected |
number of points in Z direction (if homogeneous)
Definition at line 224 of file Extrapolate.h.
Referenced by GenerateHOPBCMap().
Storage for current and previous velocity fields at the otuflow for high order outflow BCs.
Definition at line 248 of file Extrapolate.h.
Referenced by CalcOutflowBCs().
(if homogeneous)
Storage for Fourier Coeffs of Dirichlet pressure condition from the input file
Definition at line 264 of file Extrapolate.h.
Referenced by CalcOutflowBCs().
|
protected |
pressure boundary conditions container
Definition at line 194 of file Extrapolate.h.
Referenced by CalcOutflowBCs(), EvaluatePressureBCs(), and GenerateHOPBCMap().
|
protected |
pressure boundary conditions expansion container
Definition at line 197 of file Extrapolate.h.
Referenced by CalcNeumannPressureBCs(), CalcOutflowBCs(), EvaluatePressureBCs(), and GenerateHOPBCMap().
Storage for current and previous velocity fields in physical space at the otuflow for high order outflow BCs.
Definition at line 251 of file Extrapolate.h.
Referenced by CalcOutflowBCs().
|
protected |
Pointer to field holding pressure field.
Definition at line 177 of file Extrapolate.h.
Referenced by CalcNeumannPressureBCs(), CalcOutflowBCs(), and GenerateHOPBCMap().
|
protected |
Maximum points used in Element adjacent to pressure BC evaluation.
Definition at line 206 of file Extrapolate.h.
Referenced by CalcNeumannPressureBCs(), CalcOutflowBCs(), CurlCurl(), and GenerateHOPBCMap().
|
protected |
Maximum points used in pressure BC evaluation.
Definition at line 203 of file Extrapolate.h.
Referenced by Nektar::SubSteppingExtrapolate::AddDuDt2D(), Nektar::SubSteppingExtrapolate::AddDuDt3D(), CalcNeumannPressureBCs(), CalcOutflowBCs(), and GenerateHOPBCMap().
Id of element to which pressure boundary condition belongs.
Definition at line 227 of file Extrapolate.h.
Referenced by Nektar::SubSteppingExtrapolate::AddDuDt2D(), Nektar::SubSteppingExtrapolate::AddDuDt3D(), CalcOutflowBCs(), and GenerateHOPBCMap().
Id of edge (2D) or face (3D) to which pressure boundary condition belongs.
Definition at line 230 of file Extrapolate.h.
Referenced by Nektar::SubSteppingExtrapolate::AddDuDt2D(), Nektar::SubSteppingExtrapolate::AddDuDt3D(), CalcOutflowBCs(), and GenerateHOPBCMap().
|
protected |
number of times the high-order pressure BCs have been called
Definition at line 200 of file Extrapolate.h.
Referenced by CalcOutflowBCs(), EvaluatePressureBCs(), and GenerateHOPBCMap().
Storage for current and previous levels of high order pressure boundary conditions.
Definition at line 233 of file Extrapolate.h.
Referenced by EvaluatePressureBCs(), and GenerateHOPBCMap().
Definition at line 185 of file Extrapolate.h.
|
protected |
Definition at line 170 of file Extrapolate.h.
Referenced by CalcOutflowBCs(), Extrapolate(), GenerateHOPBCMap(), and Nektar::SubSteppingExtrapolate::SubSteppingExtrapolate().
|
protected |
Flag to determine if single homogeneous mode is used.
Definition at line 214 of file Extrapolate.h.
Referenced by GenerateHOPBCMap().
|
protected |
Definition at line 211 of file Extrapolate.h.
Referenced by EvaluatePressureBCs(), Extrapolate(), Nektar::SubSteppingExtrapolate::SubStepAdvection(), Nektar::SubSteppingExtrapolate::SubStepExtrapolateField(), and Nektar::SubSteppingExtrapolate::v_SubStepAdvance().
|
protected |
(if homogeneous)
Storage for Fourier Coeffs of Neumann velocity condition from the input file
Definition at line 267 of file Extrapolate.h.
Referenced by CalcOutflowBCs().
int which identifies which components of m_fields contains the velocity (u,v,w);
Definition at line 181 of file Extrapolate.h.
Referenced by Nektar::SubSteppingExtrapolate::AddAdvectionPenaltyFlux(), Nektar::SubSteppingExtrapolate::AddDuDt(), Nektar::SubSteppingExtrapolate::AddDuDt2D(), Nektar::SubSteppingExtrapolate::AddDuDt3D(), CalcOutflowBCs(), Nektar::SubSteppingExtrapolate::GetSubstepTimeStep(), Nektar::SubSteppingExtrapolate::SubStepAdvection(), Nektar::SubSteppingExtrapolate::SubStepExtrapolateField(), Nektar::SubSteppingExtrapolate::v_SubSteppingTimeIntegration(), Nektar::SubSteppingExtrapolate::v_SubStepSaveFields(), and Nektar::SubSteppingExtrapolate::v_SubStepSetPressureBCs().
wave number 2 pi k /Lz
Definition at line 242 of file Extrapolate.h.
Referenced by CurlCurl(), and GenerateHOPBCMap().
|
staticprivate |
Definition at line 276 of file Extrapolate.h.
Referenced by EvaluatePressureBCs().
|
staticprivate |
Definition at line 275 of file Extrapolate.h.
Referenced by EvaluatePressureBCs().
|
staticprivate |
Definition at line 277 of file Extrapolate.h.
Referenced by EvaluatePressureBCs().