35#ifndef NEKTAR_SOLVERUTILS_DRIVERPARAREAL_H
36#define NEKTAR_SOLVERUTILS_DRIVERPARAREAL_H
74 std::ostream &out = std::cout)
override;
91 const size_t nstep,
const size_t wd,
const size_t iter);
#define SOLVER_UTILS_EXPORT
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
Base class for the development of parallel-in-time solvers.
Base class for the development of solvers.
void ApplyWindowing(const size_t w)
SOLVER_UTILS_EXPORT void v_Execute(std::ostream &out=std::cout) override
Virtual function for solve implementation.
static constexpr size_t m_fineLevel
void UpdateInitialConditionFromSolver(const size_t timeLevel)
static std::string driverLookupId
void InterpolateCoarseSolution(void)
static constexpr size_t m_coarseLevel
static std::string className
Name of the class.
void CorrectionWithOldCoarseSolution(void)
void CopyConvergedCheckPoints(const size_t w, const size_t k)
SOLVER_UTILS_EXPORT void v_InitObject(std::ostream &out=std::cout) override
Virtual function for initialisation implementation.
void UpdateSolution(const size_t timeLevel, const NekDouble time, const size_t nstep, const size_t wd, const size_t iter)
SOLVER_UTILS_EXPORT ~DriverParareal() override=default
Destructor.
Array< OneD, Array< OneD, NekDouble > > m_coarseSolution
void CorrectionWithNewCoarseSolution(void)
static DriverSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph)
Creates an instance of this class.
SOLVER_UTILS_EXPORT DriverParareal(const LibUtilities::SessionReaderSharedPtr pSession, const SpatialDomains::MeshGraphSharedPtr pGraph)
Constructor.
void WriteTimeChunkOuput(void)
void AllocateMemory(void)
void AssertParameters(void)
void UpdateSolverInitialCondition(const size_t timeLevel)
Array< OneD, Array< OneD, NekDouble > > m_fineSolution
Array< OneD, Array< OneD, NekDouble > > m_initialCondition
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< Driver > DriverSharedPtr
A shared pointer to a Driver object.
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
std::vector< double > w(NPUPPER)