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
18
19#include <vector>
20#include <memory>
21
22#ifdef UseSmartMPI
23#include "smartmpi.h"
24#endif
25
26{% for item in NAMESPACE -%}
27 namespace {{ item }} {
28
29{%- endfor %}
30 class {{CLASSNAME}};
31
32{% for item in NAMESPACE -%}
33 }
34{%- endfor %}
35
36
42class {{NAMESPACE | join("::")}}::{{CLASSNAME}}: public ::exahype2::EnclaveTask
43#ifdef UseSmartMPI
44, public smartmpi::Task
45#endif
46{
47 private:
49
50#ifdef UseSmartMPI
68 int _remoteTaskId = -1;
69#endif
70
71 std::shared_ptr< double[] > _linearCombinationOfPreviousShots;
72
77 static int _enclaveTaskTypeId;
78
79 public:
80 static int getEnclaveTaskTypeId();
81
97 static void applyKernelToCell(
98 const ::peano4::datamanagement::CellMarker& marker,
99 double timeStamp,
100 double timeStepSize,
101 double* __restrict__ QIn,
102 double* __restrict__ QOut
103 );
104
164 {{CLASSNAME}}(
165 const ::peano4::datamanagement::CellMarker& marker,
166 double timeStamp,
167 double timeStepSize,
168 const double* __restrict__ linearCombinationOfPreviousShots
169 );
170
171 {{CLASSNAME}}(
172 const ::peano4::datamanagement::CellMarker& marker,
173 double timeStamp,
174 double timeStepSize,
175 std::shared_ptr< double[] > linearCombinationOfPreviousShots,
176 double* __restrict__ output
177 );
178
179#ifdef UseSmartMPI
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;
185
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);
188#endif
189
190 {% if STATELESS_PDE_TERMS %}
191 virtual void fuse( const std::vector<Task*>& otherTasks, int targetDevice=Host ) override;
192 virtual bool canFuse() const override;
193 {% endif %}
194};
195
196{# Empty line here #}
Log Device.
Definition Log.h:516