5#include "repositories/SolverRepository.h"
11#include "exahype2/EnclaveBookkeeping.h"
12#include "exahype2/EnclaveTask.h"
23{%
for item in NAMESPACE -%}
24 namespace {{ item }} {
29{%
for item in NAMESPACE -%}
38class {{NAMESPACE | join(
"::")}}::{{CLASSNAME}}: public ::exahype2::EnclaveTask
40,
public smartmpi::Task
64 int _remoteTaskId = -1;
71 static int _enclaveTaskTypeId;
74 static int getEnclaveTaskTypeId();
88 static double applyKernelToCell(
89 const ::peano4::datamanagement::CellMarker& marker,
92 double* __restrict__ reconstructedPatch,
93 double* __restrict__ targetPatch
110 const ::peano4::datamanagement::CellMarker&
marker,
113 double* __restrict__ reconstructedPatch,
114 double* __restrict__
output
118 bool isSmartMPITask()
const;
120 virtual void runLocally()
override;
121 virtual void moveTask(
int rank,
int tag, MPI_Comm communicator)
override;
122 virtual void runLocallyAndSendTaskOutputToRank(
int rank,
int tag, MPI_Comm communicator)
override;
123 virtual void forwardTaskOutputToRank(
int rank,
int tag, MPI_Comm communicator)
override;
125 static smartmpi::Task* receiveTask(
int rank,
int tag, MPI_Comm communicator);
126 static smartmpi::Task* receiveOutcome(
int rank,
int tag, MPI_Comm communicator,
const bool intentionToForward);
129 {%
if STATELESS_PDE_TERMS %}
130 virtual void fuse(
const std::vector<Task*>& otherTasks,
int targetDevice = Host)
override;
131 virtual bool canFuse()
const override;