9#include "repositories/SolverRepository.h"
26{%
for item in NAMESPACE -%}
27 namespace {{ item }} {
32{%
for item in NAMESPACE -%}
42class {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}: public ::exahype2::EnclaveTask
44,
public smartmpi::Task
68 int _remoteTaskId = -1;
71 std::shared_ptr< double[] > _linearCombinationOfPreviousShots;
77 static int _enclaveTaskTypeId;
80 static int getEnclaveTaskTypeId();
97 static void applyKernelToCell(
98 const ::peano4::datamanagement::CellMarker& marker,
101 double* __restrict__ QIn,
102 double* __restrict__ QOut
165 const ::peano4::datamanagement::CellMarker&
marker,
168 const double* __restrict__ linearCombinationOfPreviousShots
172 const ::peano4::datamanagement::CellMarker&
marker,
175 std::shared_ptr< double[] > linearCombinationOfPreviousShots,
176 double* __restrict__ output
180 bool isSmartMPITask()
const;
181 virtual void runLocally()
override;
182 virtual void moveTask(
int rank,
int tag, MPI_Comm communicator)
override;
183 virtual void runLocallyAndSendTaskOutputToRank(
int rank,
int tag, MPI_Comm communicator)
override;
184 virtual void forwardTaskOutputToRank(
int rank,
int tag, MPI_Comm communicator)
override;
186 static smartmpi::Task* receiveTask(
int rank,
int tag, MPI_Comm communicator);
187 static smartmpi::Task* receiveOutcome(
int rank,
int tag, MPI_Comm communicator,
const bool intentionToForward);
190 {%
if STATELESS_PDE_TERMS %}
191 virtual void fuse(
const std::vector<Task*>& otherTasks,
int targetDevice=Host )
override;
192 virtual bool canFuse()
const override;