Nektar++
|
Base class for the development of solvers. More...
#include <DriverArnoldi.h>
Public Member Functions | |
SOLVER_UTILS_EXPORT void | ArnoldiSummary (std::ostream &out) |
SOLVER_UTILS_EXPORT const Array< OneD, const NekDouble > & | GetMaskCoeff () const |
SOLVER_UTILS_EXPORT const Array< OneD, const NekDouble > & | GetMaskPhys () const |
![]() | |
virtual | ~Driver () |
Destructor. More... | |
SOLVER_UTILS_EXPORT void | InitObject (std::ostream &out=std::cout) |
Initialise Object. More... | |
SOLVER_UTILS_EXPORT void | Execute (std::ostream &out=std::cout) |
Execute driver. More... | |
SOLVER_UTILS_EXPORT Array< OneD, EquationSystemSharedPtr > | GetEqu () |
SOLVER_UTILS_EXPORT Array< OneD, NekDouble > | GetRealEvl (void) |
SOLVER_UTILS_EXPORT Array< OneD, NekDouble > | GetImagEvl (void) |
Protected Member Functions | |
DriverArnoldi (const LibUtilities::SessionReaderSharedPtr pSession, const SpatialDomains::MeshGraphSharedPtr pGraph) | |
Constructor. More... | |
virtual | ~DriverArnoldi () |
Destructor. More... | |
void | CopyArnoldiArrayToField (Array< OneD, NekDouble > &array) |
Copy Arnoldi storage to fields. More... | |
void | CopyFieldToArnoldiArray (Array< OneD, NekDouble > &array) |
Copy fields to Arnoldi storage. More... | |
void | CopyFwdToAdj () |
Copy the forward field to the adjoint system in transient growth calculations. More... | |
void | WriteFld (std::string file, std::vector< Array< OneD, NekDouble > > coeffs) |
Write coefficients to file. More... | |
void | WriteFld (std::string file, Array< OneD, NekDouble > coeffs) |
void | WriteEvs (std::ostream &evlout, const int k, const NekDouble real, const NekDouble imag, NekDouble resid=NekConstants::kNekUnsetDouble, bool DumpInverse=true) |
void | MaskInit () |
init mask More... | |
void | GetUnmaskFunction (std::vector< std::vector< LibUtilities::EquationSharedPtr > > &unmaskfun) |
virtual void | v_InitObject (std::ostream &out=std::cout) |
virtual Array< OneD, NekDouble > | v_GetRealEvl (void) |
virtual Array< OneD, NekDouble > | v_GetImagEvl (void) |
![]() | |
Driver (const LibUtilities::SessionReaderSharedPtr pSession, const SpatialDomains::MeshGraphSharedPtr pGraph) | |
Initialises EquationSystem class members. More... | |
virtual SOLVER_UTILS_EXPORT void | v_Execute (std::ostream &out=std::cout)=0 |
Virtual function for solve implementation. More... | |
Friends | |
class | MemoryManager< DriverArnoldi > |
Additional Inherited Members | |
![]() | |
static std::string | evolutionOperatorLookupIds [] |
static std::string | evolutionOperatorDef |
static std::string | driverDefault |
Base class for the development of solvers.
Definition at line 46 of file DriverArnoldi.h.
|
protected |
Constructor.
Constructor
Definition at line 48 of file DriverArnoldi.cpp.
References m_infosteps, and Nektar::SolverUtils::Driver::m_session.
|
protectedvirtual |
void Nektar::SolverUtils::DriverArnoldi::ArnoldiSummary | ( | std::ostream & | out | ) |
Definition at line 129 of file DriverArnoldi.cpp.
References ASSERTL0, Nektar::SolverUtils::Driver::m_comm, m_evtol, m_imagShift, m_kdim, m_nits, m_nvec, m_realShift, Nektar::SolverUtils::Driver::m_session, and m_timeSteppingAlgorithm.
Referenced by Nektar::SolverUtils::DriverArpack::v_InitObject(), and Nektar::SolverUtils::DriverModifiedArnoldi::v_InitObject().
|
protected |
Copy Arnoldi storage to fields.
Copy Arnoldi array to field variables which depend from either the m_fields or m_forces
Definition at line 180 of file DriverArnoldi.cpp.
References Nektar::SolverUtils::Driver::m_equ, m_nfields, and Vmath::Vcopy().
Referenced by Nektar::SolverUtils::DriverModifiedArnoldi::EV_update(), and Nektar::SolverUtils::DriverArpack::v_Execute().
|
protected |
Copy fields to Arnoldi storage.
Copy field variables which depend from either the m_fields or m_forces array the Arnoldi array
Definition at line 197 of file DriverArnoldi.cpp.
References Nektar::SolverUtils::eAdaptiveSFD, Nektar::SolverUtils::Driver::m_equ, Nektar::SolverUtils::Driver::m_EvolutionOperator, Nektar::SolverUtils::Driver::m_nequ, m_nfields, and Vmath::Vcopy().
Referenced by Nektar::SolverUtils::DriverModifiedArnoldi::EV_update(), Nektar::SolverUtils::DriverArpack::v_Execute(), and Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute().
|
protected |
Copy the forward field to the adjoint system in transient growth calculations.
Initialisation for the transient growth
Definition at line 227 of file DriverArnoldi.cpp.
References ASSERTL0, Nektar::SolverUtils::Driver::m_equ, m_nfields, m_timeSteppingAlgorithm, and Vmath::Vcopy().
Referenced by Nektar::SolverUtils::DriverModifiedArnoldi::EV_update(), and Nektar::SolverUtils::DriverArpack::v_Execute().
|
inline |
Definition at line 126 of file DriverArnoldi.h.
References m_maskCoeffs.
Referenced by Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute().
|
inline |
Definition at line 131 of file DriverArnoldi.h.
References m_maskPhys.
|
protected |
Definition at line 334 of file DriverArnoldi.cpp.
References Nektar::SolverUtils::Driver::m_session.
Referenced by MaskInit().
|
protected |
init mask
Definition at line 361 of file DriverArnoldi.cpp.
References Vmath::Fill(), GetUnmaskFunction(), Nektar::SolverUtils::Driver::m_equ, m_maskCoeffs, m_maskPhys, m_nfields, and m_useMask.
Referenced by v_InitObject().
|
inlineprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Driver.
Definition at line 119 of file DriverArnoldi.h.
References m_imag_evl.
|
inlineprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Driver.
Definition at line 114 of file DriverArnoldi.h.
References m_real_evl.
|
protectedvirtual |
Arnoldi driver initialisation
Reimplemented from Nektar::SolverUtils::Driver.
Reimplemented in Nektar::SolverUtils::DriverSteadyState, Nektar::SolverUtils::DriverModifiedArnoldi, and Nektar::SolverUtils::DriverArpack.
Definition at line 68 of file DriverArnoldi.cpp.
References ASSERTL0, Nektar::ErrorUtil::efatal, Nektar::SolverUtils::Driver::m_equ, m_evtol, m_imagShift, m_kdim, m_negatedOp, m_nfields, m_nits, m_nvec, m_period, m_realShift, Nektar::SolverUtils::Driver::m_session, m_timeSteppingAlgorithm, MaskInit(), NEKERROR, and Nektar::SolverUtils::Driver::v_InitObject().
Referenced by Nektar::SolverUtils::DriverArpack::v_InitObject(), and Nektar::SolverUtils::DriverModifiedArnoldi::v_InitObject().
|
protected |
Definition at line 278 of file DriverArnoldi.cpp.
References Nektar::NekConstants::kNekUnsetDouble, tinysimd::log(), m_imagShift, m_negatedOp, m_period, m_realShift, m_timeSteppingAlgorithm, and sign.
Referenced by Nektar::SolverUtils::DriverModifiedArnoldi::EV_post(), Nektar::SolverUtils::DriverModifiedArnoldi::EV_test(), and Nektar::SolverUtils::DriverArpack::v_Execute().
|
protected |
Definition at line 260 of file DriverArnoldi.cpp.
References ASSERTL1, Nektar::SolverUtils::Driver::m_equ, and m_nfields.
|
protected |
Write coefficients to file.
Definition at line 245 of file DriverArnoldi.cpp.
References ASSERTL1, Nektar::SolverUtils::Driver::m_equ, and m_nfields.
Referenced by Nektar::SolverUtils::DriverModifiedArnoldi::EV_post(), and Nektar::SolverUtils::DriverArpack::v_Execute().
|
friend |
Definition at line 131 of file DriverArnoldi.h.
|
protected |
Maxmum number of iterations.
Definition at line 61 of file DriverArnoldi.h.
Referenced by ArnoldiSummary(), Nektar::SolverUtils::DriverModifiedArnoldi::EV_test(), Nektar::SolverUtils::DriverArpack::v_Execute(), and v_InitObject().
Definition at line 73 of file DriverArnoldi.h.
Referenced by Nektar::SolverUtils::DriverArpack::v_Execute(), Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute(), and v_GetImagEvl().
|
protected |
Definition at line 69 of file DriverArnoldi.h.
Referenced by ArnoldiSummary(), Nektar::SolverUtils::DriverArpack::v_Execute(), Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute(), v_InitObject(), and WriteEvs().
|
protected |
underlying operator is time stepping
Definition at line 65 of file DriverArnoldi.h.
Referenced by DriverArnoldi(), and Nektar::SolverUtils::DriverArpack::v_Execute().
|
protected |
Definition at line 58 of file DriverArnoldi.h.
Referenced by ArnoldiSummary(), Nektar::SolverUtils::DriverSteadyState::ComputeOptimization(), Nektar::SolverUtils::DriverArpack::v_Execute(), Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute(), v_InitObject(), and Nektar::SolverUtils::DriverArpack::v_InitObject().
Definition at line 76 of file DriverArnoldi.h.
Referenced by GetMaskCoeff(), and MaskInit().
Definition at line 77 of file DriverArnoldi.h.
Referenced by GetMaskPhys(), and MaskInit().
|
protected |
Definition at line 70 of file DriverArnoldi.h.
Referenced by Nektar::SolverUtils::DriverArpack::v_Execute(), v_InitObject(), and WriteEvs().
|
protected |
interval to dump information if required.
Definition at line 67 of file DriverArnoldi.h.
Referenced by CopyArnoldiArrayToField(), CopyFieldToArnoldiArray(), CopyFwdToAdj(), MaskInit(), Nektar::SolverUtils::DriverArpack::v_Execute(), Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute(), v_InitObject(), and WriteFld().
|
protected |
Number of vectors to test.
Definition at line 60 of file DriverArnoldi.h.
Referenced by ArnoldiSummary(), Nektar::SolverUtils::DriverArpack::v_Execute(), Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute(), and v_InitObject().
|
protected |
Dimension of Krylov subspace.
Definition at line 59 of file DriverArnoldi.h.
Referenced by ArnoldiSummary(), Nektar::SolverUtils::DriverArpack::v_Execute(), Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute(), v_InitObject(), and Nektar::SolverUtils::DriverArpack::v_InitObject().
|
protected |
Tolerance of iteratiosn.
Definition at line 62 of file DriverArnoldi.h.
Referenced by v_InitObject(), and WriteEvs().
Operator in solve call is negated.
Definition at line 72 of file DriverArnoldi.h.
Referenced by Nektar::SolverUtils::DriverArpack::v_Execute(), Nektar::SolverUtils::DriverModifiedArnoldi::v_Execute(), and v_GetRealEvl().
|
protected |
Definition at line 68 of file DriverArnoldi.h.
Referenced by ArnoldiSummary(), Nektar::SolverUtils::DriverArpack::v_Execute(), v_InitObject(), and WriteEvs().
|
protected |
Period of time stepping algorithm.
Definition at line 63 of file DriverArnoldi.h.
Referenced by ArnoldiSummary(), CopyFwdToAdj(), Nektar::SolverUtils::DriverModifiedArnoldi::EV_test(), Nektar::SolverUtils::DriverArpack::v_Execute(), v_InitObject(), and WriteEvs().
|
protected |