Peano
Loading...
Searching...
No Matches
SolveVolumeIntegral.EnclaveTask.template.h
Go to the documentation of this file.
1// **********************************************************************************************
2// *** !!!WARNING!!! ***
3// *** WARNING: AUTO GENERATED FILE! DO NOT MODIFY BY HAND! YOUR CHANGES WILL BE OVERWRITTEN! ***
4// *** !!!WARNING!!! ***
5// *** Generated by Peano's Python API: www.peano-framework.org ***
6// **********************************************************************************************
7#pragma once
8
9#include "repositories/SolverRepository.h"
10
13
15
19
20#include <vector>
21#include <memory>
22
23#ifdef UseSmartMPI
24#include "smartmpi.h"
25#endif
26
27{% for item in NAMESPACE -%}
28 namespace {{ item }} {
29
30{%- endfor %}
31 class {{CLASSNAME}};
32
33{% for item in NAMESPACE -%}
34 }
35{%- endfor %}
36
37
43class {{NAMESPACE | join("::")}}::{{CLASSNAME}}: public ::exahype2::EnclaveTask
44#ifdef UseSmartMPI
45, public smartmpi::Task
46#endif
47{
48 private:
50
51#ifdef UseSmartMPI
69 int _remoteTaskId = -1;
70#endif
71
72 std::shared_ptr< double[] > _linearCombinationOfPreviousShots;
73
78 static int _enclaveTaskTypeId;
79
80 public:
81 static int getEnclaveTaskTypeId();
82
98 static void applyKernelToCell(
99 const ::peano4::datamanagement::CellMarker& marker,
100 double timeStamp,
101 double timeStepSize,
102 double* __restrict__ QIn,
103 double* __restrict__ QOut
104 );
105
165 {{CLASSNAME}}(
166 const ::peano4::datamanagement::CellMarker& marker,
167 double timeStamp,
168 double timeStepSize,
169 const double* __restrict__ linearCombinationOfPreviousShots
170 );
171
172 {{CLASSNAME}}(
173 const ::peano4::datamanagement::CellMarker& marker,
174 double timeStamp,
175 double timeStepSize,
176 std::shared_ptr< double[] > linearCombinationOfPreviousShots,
177 double* __restrict__ output
178 );
179
180#ifdef UseSmartMPI
181 bool isSmartMPITask() const;
182 virtual void runLocally() override;
183 virtual void moveTask(int rank, int tag, MPI_Comm communicator) override;
184 virtual void runLocallyAndSendTaskOutputToRank(int rank, int tag, MPI_Comm communicator) override;
185 virtual void forwardTaskOutputToRank(int rank, int tag, MPI_Comm communicator) override;
186
187 static smartmpi::Task* receiveTask(int rank, int tag, MPI_Comm communicator);
188 static smartmpi::Task* receiveOutcome(int rank, int tag, MPI_Comm communicator, const bool intentionToForward);
189#endif
190
191 {% if STATELESS_PDE_TERMS %}
192 virtual void fuse( const std::list<Task*>& otherTasks, int targetDevice=Host ) override;
193 virtual bool canFuse() const override;
194 {% endif %}
195};
196
197{# Empty line here #}
Log Device.
Definition Log.h:516
tarch::logging::Log _log("exahype2::fv")