Nektar++
|
#include <SubSteppingExtrapolate.h>
Static Public Member Functions | |
static ExtrapolateSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, MultiRegions::ExpListSharedPtr &pPressure, const Array< OneD, int > &pVel, const AdvectionTermSharedPtr &advObject) |
Creates an instance of this class. |
Static Public Attributes | |
static std::string | className |
Name of class. |
Protected Member Functions | |
virtual void | v_SubSteppingTimeIntegration (int intMethod, const LibUtilities::TimeIntegrationWrapperSharedPtr &IntegrationScheme) |
virtual void | v_SubStepSaveFields (int nstep) |
virtual void | v_SubStepSetPressureBCs (const Array< OneD, const Array< OneD, NekDouble > > &inarray, NekDouble Aii_Dt, NekDouble kinvis) |
virtual void | v_SubStepAdvance (const LibUtilities::TimeIntegrationSolutionSharedPtr &integrationSoln, int nstep, NekDouble time) |
virtual void | v_MountHOPBCs (int HBCdata, NekDouble kinvis, Array< OneD, NekDouble > &Q, Array< OneD, const NekDouble > &Advection) |
void | AddDuDt (const Array< OneD, const Array< OneD, NekDouble > > &N, NekDouble Aii_Dt) |
void | AddDuDt2D (const Array< OneD, const Array< OneD, NekDouble > > &N, NekDouble Aii_Dt) |
void | AddDuDt3D (const Array< OneD, const Array< OneD, NekDouble > > &N, NekDouble Aii_Dt) |
void | SubStepAdvection (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
void | SubStepProjection (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
void | SubStepExtrapolateField (NekDouble toff, Array< OneD, Array< OneD, NekDouble > > &ExtVel) |
void | AddAdvectionPenaltyFlux (const Array< OneD, const Array< OneD, NekDouble > > &velfield, const Array< OneD, const Array< OneD, NekDouble > > &physfield, Array< OneD, Array< OneD, NekDouble > > &outarray) |
NekDouble | GetSubstepTimeStep () |
Protected Member Functions inherited from Nektar::Extrapolate | |
void | CalcNeumannPressureBCs (const Array< OneD, const Array< OneD, NekDouble > > &fields, const Array< OneD, const Array< OneD, NekDouble > > &N, NekDouble kinvis) |
void | CalcOutflowBCs (const Array< OneD, const Array< OneD, NekDouble > > &fields, const Array< OneD, const Array< OneD, NekDouble > > &N, NekDouble kinvis) |
void | RollOver (Array< OneD, Array< OneD, NekDouble > > &input) |
void | CurlCurl (Array< OneD, Array< OneD, const NekDouble > > &Vel, Array< OneD, Array< OneD, NekDouble > > &Q, const int j) |
Protected Attributes | |
LibUtilities::TimeIntegrationWrapperSharedPtr | m_subStepIntegrationScheme |
LibUtilities::TimeIntegrationSchemeOperators | m_subStepIntegrationOps |
Array< OneD, Array< OneD, NekDouble > > | m_previousVelFields |
NekDouble | m_cflSafetyFactor |
int | m_infosteps |
int | minsubsteps |
Protected Attributes inherited from Nektar::Extrapolate | |
LibUtilities::SessionReaderSharedPtr | m_session |
LibUtilities::CommSharedPtr | m_comm |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_fields |
MultiRegions::ExpListSharedPtr | m_pressure |
Pointer to field holding pressure field. | |
Array< OneD, int > | m_velocity |
int which identifies which components of m_fields contains the velocity (u,v,w); | |
AdvectionTermSharedPtr | m_advObject |
Array< OneD, Array< OneD, NekDouble > > | m_previousVelFields |
int | m_curl_dim |
Curl-curl dimensionality. | |
int | m_bnd_dim |
bounday dimensionality | |
Array< OneD, const SpatialDomains::BoundaryConditionShPtr > | m_PBndConds |
pressure boundary conditions container | |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_PBndExp |
pressure boundary conditions expansion container | |
int | m_pressureCalls |
number of times the high-order pressure BCs have been called | |
int | m_pressureBCsMaxPts |
Maximum points used in pressure BC evaluation. | |
int | m_pressureBCsElmtMaxPts |
Maximum points used in Element adjacent to pressure BC evaluation. | |
int | m_intSteps |
Maximum points used in pressure BC evaluation. | |
NekDouble | m_timestep |
bool | m_SingleMode |
Flag to determine if single homogeneous mode is used. | |
bool | m_HalfMode |
Flag to determine if half homogeneous mode is used. | |
bool | m_MultipleModes |
Flag to determine if use multiple homogenenous modes are used. | |
NekDouble | m_LhomZ |
physical length in Z direction (if homogeneous) | |
int | m_npointsX |
number of points in X direction (if homogeneous) | |
int | m_npointsY |
number of points in Y direction (if homogeneous) | |
int | m_npointsZ |
number of points in Z direction (if homogeneous) | |
Array< OneD, int > | m_pressureBCtoElmtID |
Id of element to which pressure boundary condition belongs. | |
Array< OneD, int > | m_pressureBCtoTraceID |
Id of edge (2D) or face (3D) to which pressure boundary condition belongs. | |
Array< OneD, Array< OneD, NekDouble > > | m_pressureHBCs |
Storage for current and previous levels of high order pressure boundary conditions. | |
Array< OneD, Array< OneD, NekDouble > > | m_acceleration |
Storage for current and previous levels of the acceleration term. | |
Array< OneD, HBCInfo > | m_HBCdata |
data structure to old all the information regarding High order pressure BCs | |
Array< OneD, NekDouble > | m_wavenumber |
wave number 2 pi k /Lz | |
Array< OneD, NekDouble > | m_negWavenumberSq |
minus Square of wavenumber | |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_outflowVel |
Storage for current and previous velocity fields at the otuflow for high order outflow BCs. |
Definition at line 58 of file SubSteppingExtrapolate.h.
Nektar::SubSteppingExtrapolate::SubSteppingExtrapolate | ( | const LibUtilities::SessionReaderSharedPtr | pSession, |
Array< OneD, MultiRegions::ExpListSharedPtr > | pFields, | ||
MultiRegions::ExpListSharedPtr | pPressure, | ||
const Array< OneD, int > | pVel, | ||
const AdvectionTermSharedPtr | advObject | ||
) |
Definition at line 49 of file SubSteppingExtrapolate.cpp.
References m_cflSafetyFactor, m_infosteps, Nektar::Extrapolate::m_session, and minsubsteps.
|
virtual |
Definition at line 62 of file SubSteppingExtrapolate.cpp.
|
protected |
Number of trace points
Number of spatial dimensions
Forward state array
Backward state array
upwind numerical flux state array
Normal velocity array
Extract forwards/backwards trace spaces Note: Needs to have correct i value to get boundary conditions
Upwind between elements
Construct difference between numflux and Fwd,Bwd
Calculate the numerical fluxes multipling Fwd, Bwd and numflux by the normal advection velocity
Definition at line 390 of file SubSteppingExtrapolate.cpp.
References ASSERTL1, Nektar::Extrapolate::m_curl_dim, Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_velocity, Vmath::Vmul(), Vmath::Vsub(), and Vmath::Vvtvp().
Referenced by SubStepAdvection().
|
protected |
Definition at line 515 of file SubSteppingExtrapolate.cpp.
References AddDuDt2D(), AddDuDt3D(), ASSERTL0, and Nektar::Extrapolate::m_velocity.
Referenced by v_SubStepSetPressureBCs().
|
protected |
Definition at line 538 of file SubSteppingExtrapolate.cpp.
References ASSERTL0, Nektar::SpatialDomains::eHigh, Nektar::SpatialDomains::eNoUserDefined, Nektar::SpatialDomains::eTimeDependent, Nektar::StdRegions::StdExpansion::GetTotPoints(), Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_pressureBCsMaxPts, Nektar::Extrapolate::m_pressureBCtoElmtID, Nektar::Extrapolate::m_pressureBCtoTraceID, Nektar::Extrapolate::m_velocity, and Vmath::Vsub().
Referenced by AddDuDt().
|
protected |
Definition at line 638 of file SubSteppingExtrapolate.cpp.
References ASSERTL0, Nektar::SpatialDomains::eHigh, Nektar::SpatialDomains::eNoUserDefined, Nektar::SpatialDomains::eTimeDependent, Nektar::StdRegions::StdExpansion::GetTotPoints(), Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_pressureBCsMaxPts, Nektar::Extrapolate::m_pressureBCtoElmtID, Nektar::Extrapolate::m_pressureBCtoTraceID, Nektar::Extrapolate::m_velocity, and Vmath::Vsub().
Referenced by AddDuDt().
|
inlinestatic |
Creates an instance of this class.
Definition at line 63 of file SubSteppingExtrapolate.h.
|
protected |
Definition at line 355 of file SubSteppingExtrapolate.cpp.
References Nektar::Extrapolate::GetMaxStdVelocity(), m_cflSafetyFactor, Nektar::Extrapolate::m_comm, Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_velocity, Nektar::LibUtilities::ReduceMin, and Vmath::Vmin().
Referenced by v_SubStepAdvance().
|
protected |
Explicit Advection terms used by SubStepAdvance time integration
Get the number of coefficients
Define an auxiliary variable to compute the RHS
Operations to compute the RHS
Multiply the flux by the inverse of the mass matrix
Store in outarray the physical values of the RHS
Definition at line 125 of file SubSteppingExtrapolate.cpp.
References AddAdvectionPenaltyFlux(), Nektar::Extrapolate::m_advObject, Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_timestep, Nektar::Extrapolate::m_velocity, Vmath::Neg(), and SubStepExtrapolateField().
Referenced by v_SubSteppingTimeIntegration().
|
protected |
Extrapolate field using equally time spaced field un,un-1,un-2, (at dt intervals) to time n+t at order Ord
Definition at line 462 of file SubSteppingExtrapolate.cpp.
References Vmath::Fill(), Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_intSteps, m_previousVelFields, Nektar::Extrapolate::m_timestep, Nektar::Extrapolate::m_velocity, npts, and Vmath::Smul().
Referenced by SubStepAdvection().
|
protected |
Projection used by SubStepAdvance time integration
Definition at line 205 of file SubSteppingExtrapolate.cpp.
References ASSERTL1, and Vmath::Vcopy().
Referenced by v_SubSteppingTimeIntegration().
|
protectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 503 of file SubSteppingExtrapolate.cpp.
References Vmath::Smul().
|
protectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 292 of file SubSteppingExtrapolate.cpp.
References GetSubstepTimeStep(), m_cflSafetyFactor, Nektar::Extrapolate::m_comm, Nektar::Extrapolate::m_fields, m_infosteps, Nektar::Extrapolate::m_intSteps, m_subStepIntegrationOps, m_subStepIntegrationScheme, Nektar::Extrapolate::m_timestep, and minsubsteps.
|
protectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 66 of file SubSteppingExtrapolate.cpp.
References ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, >::CreateInstance(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeRhs(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineProjection(), Nektar::LibUtilities::eBackwardEuler, Nektar::LibUtilities::eBDFImplicitOrder1, Nektar::LibUtilities::eBDFImplicitOrder2, Nektar::LibUtilities::GetTimeIntegrationWrapperFactory(), Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_intSteps, m_previousVelFields, m_subStepIntegrationOps, m_subStepIntegrationScheme, Nektar::Extrapolate::m_velocity, SubStepAdvection(), and SubStepProjection().
|
protectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 243 of file SubSteppingExtrapolate.cpp.
References Nektar::Extrapolate::m_fields, m_previousVelFields, Nektar::Extrapolate::m_velocity, npts, and Vmath::Vcopy().
|
protectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 222 of file SubSteppingExtrapolate.cpp.
References AddDuDt(), Nektar::Extrapolate::EvaluatePressureBCs(), Nektar::Extrapolate::m_fields, and Nektar::Extrapolate::m_velocity.
|
static |
Name of class.
Registers the class with the Factory.
Definition at line 76 of file SubSteppingExtrapolate.h.
|
protected |
Definition at line 149 of file SubSteppingExtrapolate.h.
Referenced by GetSubstepTimeStep(), SubSteppingExtrapolate(), and v_SubStepAdvance().
|
protected |
Definition at line 150 of file SubSteppingExtrapolate.h.
Referenced by SubSteppingExtrapolate(), and v_SubStepAdvance().
Definition at line 147 of file SubSteppingExtrapolate.h.
Referenced by SubStepExtrapolateField(), v_SubSteppingTimeIntegration(), and v_SubStepSaveFields().
|
protected |
Definition at line 145 of file SubSteppingExtrapolate.h.
Referenced by v_SubStepAdvance(), and v_SubSteppingTimeIntegration().
|
protected |
Definition at line 144 of file SubSteppingExtrapolate.h.
Referenced by v_SubStepAdvance(), and v_SubSteppingTimeIntegration().
|
protected |
Definition at line 151 of file SubSteppingExtrapolate.h.
Referenced by SubSteppingExtrapolate(), and v_SubStepAdvance().