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 SolverUtils::AdvectionSharedPtr &advObject) |
Creates an instance of this class. More... | |
Static Public Attributes | |
static std::string | className |
Name of class. More... | |
Friends | |
class | MemoryManager< SubSteppingExtrapolate > |
Definition at line 57 of file SubSteppingExtrapolate.h.
|
protected |
Definition at line 51 of file SubSteppingExtrapolate.cpp.
References m_cflSafetyFactor, Nektar::Extrapolate::m_fields, m_infosteps, m_maxsubsteps, m_minsubsteps, Nektar::Extrapolate::m_session, and Nektar::Extrapolate::m_traceNormals.
|
overrideprotecteddefault |
|
protected |
Add the advection penalty term \( (\hat{u} - u^e)V_n \) given the normal velocity Vn at this time level and the physfield values containing the velocity field at this time level
Number of trace points
Forward state array
Backward state array
upwind numerical flux state array
Extract forwards/backwards trace spaces Note it is important to use the zeroth field but with the specialised method to use boudnary conditions from other fields since trace spaces may not be the same if there are mixed 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 519 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), ASSERTL1, Nektar::Extrapolate::m_fields, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), Vmath::Vmul(), and Vmath::Vsub().
Referenced by SubStepAdvection().
|
inlinestatic |
Creates an instance of this class.
Definition at line 63 of file SubSteppingExtrapolate.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
protected |
Definition at line 478 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Nektar::Extrapolate::GetMaxStdVelocity(), m_cflSafetyFactor, Nektar::Extrapolate::m_comm, Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_velocity, Nektar::LibUtilities::ReduceMin, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), 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 158 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), AddAdvectionPenaltyFlux(), Nektar::Extrapolate::m_advObject, Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_forcing, Nektar::Extrapolate::m_timestep, Nektar::Extrapolate::m_velocity, Vmath::Neg(), Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and SubStepExtrapolateField().
Referenced by v_SubSteppingTimeIntegration().
|
protected |
Extrapolate field using equally time spaced field un,un-1,un-2, (at dt intervals) to time for substep n+t at order m_intSteps. Also extrapolate the normal velocity along the trace at the same order
Definition at line 579 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Blas::Daxpy(), Vmath::Fill(), Nektar::Extrapolate::m_fields, Nektar::Extrapolate::m_intSteps, m_previousVelFields, m_previousVnFields, Nektar::Extrapolate::m_timestep, Nektar::Extrapolate::m_velocity, Vmath::Smul(), Nektar::LibUtilities::Timer::Start(), and Nektar::LibUtilities::Timer::Stop().
Referenced by SubStepAdvection().
|
protected |
Projection used by SubStepAdvance time integration
Definition at line 235 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), ASSERTL1, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Vmath::Vcopy().
Referenced by v_SubSteppingTimeIntegration().
|
overrideprotectedvirtual |
At the start, the newest value is stored in array[nlevels-1] and the previous values in the first positions At the end, the acceleration from BDF is stored in array[nlevels-1] and the storage has been updated to included the new value
Reimplemented from Nektar::Extrapolate.
Definition at line 292 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Nektar::Extrapolate::m_intSteps, Nektar::Extrapolate::m_pressureCalls, Nektar::Extrapolate::RollOver(), Vmath::Smul(), Nektar::LibUtilities::Timer::Start(), Nektar::Extrapolate::StifflyStable_Alpha_Coeffs, Nektar::Extrapolate::StifflyStable_Gamma0_Coeffs, Nektar::LibUtilities::Timer::Stop(), and Vmath::Svtvp().
|
overrideprotectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 74 of file SubSteppingExtrapolate.cpp.
References ASSERTL0.
|
overrideprotectedvirtual |
Reimplemented from Nektar::Extrapolate.
Definition at line 639 of file SubSteppingExtrapolate.cpp.
References m_subStepIntegrationScheme.
|
overrideprotectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 632 of file SubSteppingExtrapolate.cpp.
References Vmath::Smul().
|
overrideprotectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 412 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), ASSERTL0, GetSubstepTimeStep(), Nektar::Extrapolate::IProductNormVelocityOnHBC(), m_cflSafetyFactor, Nektar::Extrapolate::m_comm, Nektar::Extrapolate::m_fields, m_infosteps, m_intScheme, Nektar::Extrapolate::m_intSteps, Nektar::Extrapolate::m_iprodnormvel, m_maxsubsteps, m_minsubsteps, m_subStepIntegrationOps, m_subStepIntegrationScheme, Nektar::Extrapolate::m_timestep, Nektar::LibUtilities::Timer::Start(), and Nektar::LibUtilities::Timer::Stop().
|
overrideprotectedvirtual |
Implements Nektar::Extrapolate.
Definition at line 82 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeRhs(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineProjection(), Nektar::LibUtilities::GetTimeIntegrationSchemeFactory(), Nektar::Extrapolate::m_fields, m_intScheme, Nektar::Extrapolate::m_intSteps, m_previousVelFields, m_previousVnFields, Nektar::Extrapolate::m_session, m_subStepIntegrationOps, m_subStepIntegrationScheme, Nektar::Extrapolate::m_velocity, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), SubStepAdvection(), and SubStepProjection().
|
overrideprotectedvirtual |
Save the current fields in m_previousVelFields and cycle out older previous fields so that it can be extrapolated to the new substeps of the next time step. Also extract the normal trace of the velocity field into m_previousVnFields along the trace so that this can also be extrapolated.
Implements Nektar::Extrapolate.
Definition at line 331 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Nektar::Extrapolate::m_bnd_dim, Nektar::Extrapolate::m_fields, m_previousVelFields, m_previousVnFields, Nektar::Extrapolate::m_traceNormals, Nektar::Extrapolate::m_velocity, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), Vmath::Vcopy(), Vmath::Vmul(), and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Implements Nektar::Extrapolate.
Reimplemented in Nektar::SubSteppingExtrapolateWeakPressure.
Definition at line 256 of file SubSteppingExtrapolate.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Nektar::Extrapolate::AddDuDt(), Nektar::Extrapolate::CalcNeumannPressureBCs(), Nektar::Extrapolate::CalcOutflowBCs(), Nektar::Extrapolate::CopyPressureHBCsToPbndExp(), Nektar::Extrapolate::ExtrapolateArray(), Nektar::Extrapolate::m_pressureCalls, Nektar::Extrapolate::m_pressureHBCs, m_previousVelFields, Nektar::LibUtilities::Timer::Start(), and Nektar::LibUtilities::Timer::Stop().
|
friend |
Definition at line 55 of file SubSteppingExtrapolate.h.
|
static |
Name of class.
Registers the class with the Factory.
Definition at line 76 of file SubSteppingExtrapolate.h.
|
protected |
Definition at line 86 of file SubSteppingExtrapolate.h.
Referenced by GetSubstepTimeStep(), SubSteppingExtrapolate(), and v_SubStepAdvance().
|
protected |
Definition at line 87 of file SubSteppingExtrapolate.h.
Referenced by SubSteppingExtrapolate(), and v_SubStepAdvance().
|
protected |
Definition at line 79 of file SubSteppingExtrapolate.h.
Referenced by v_SubStepAdvance(), and v_SubSteppingTimeIntegration().
|
protected |
Definition at line 89 of file SubSteppingExtrapolate.h.
Referenced by SubSteppingExtrapolate(), and v_SubStepAdvance().
|
protected |
Definition at line 88 of file SubSteppingExtrapolate.h.
Referenced by SubSteppingExtrapolate(), and v_SubStepAdvance().
Definition at line 83 of file SubSteppingExtrapolate.h.
Referenced by SubStepExtrapolateField(), v_SubSteppingTimeIntegration(), v_SubStepSaveFields(), and v_SubStepSetPressureBCs().
Definition at line 84 of file SubSteppingExtrapolate.h.
Referenced by SubStepExtrapolateField(), v_SubSteppingTimeIntegration(), and v_SubStepSaveFields().
|
protected |
Definition at line 81 of file SubSteppingExtrapolate.h.
Referenced by v_SubStepAdvance(), and v_SubSteppingTimeIntegration().
|
protected |
Definition at line 80 of file SubSteppingExtrapolate.h.
Referenced by v_GetSubStepName(), v_SubStepAdvance(), and v_SubSteppingTimeIntegration().