Canoe
Comprehensive Atmosphere N' Ocean Engine
extra_tasks.hpp
Go to the documentation of this file.
1 #ifndef SRC_TASKLIST_EXTRA_TASKS_HPP_
2 #define SRC_TASKLIST_EXTRA_TASKS_HPP_
3 
4 // athena
5 #include <athena/globals.hpp>
6 
7 // forward declarations
8 class Mesh;
9 class MeshBlock;
10 class TaskID;
11 class TaskList;
12 class ParameterInput;
13 
14 class InversionTasks : public TaskList {
15  public:
16  InversionTasks(ParameterInput *pin, Mesh *pm);
18  // void AddInversionTask(uint64_t id, uint64_t dep);
19 
20  TaskStatus CalculateGradient(MeshBlock *pmb, int step);
21  TaskStatus Sample(MeshBlock *pmb, int step);
22  TaskStatus Optimize(MeshBlock *pmb, int step);
23 
24  private:
25  void AddTask(const TaskID &id, const TaskID &dep) override;
26  void StartupTaskList(MeshBlock *pmb, int stage) override;
27 };
28 
29 namespace InversionTaskNames {
30 const TaskID NONE(0);
31 const TaskID CALC_GRAD(1);
32 const TaskID OPTIMIZE(2);
33 const TaskID SAMPLE(3);
34 } // namespace InversionTaskNames
35 
37  public:
38  ImplicitHydroTasks(ParameterInput *pin, Mesh *pm);
39 
40  // implicit tasks
41  TaskStatus IntegrateHydro(MeshBlock *pmb, int stage);
42  TaskStatus AddSourceTerms(MeshBlock *pmb, int stage);
43 
44  TaskStatus AddFluxToConserved(MeshBlock *pmb, int stage);
45  TaskStatus ImplicitCorrection(MeshBlock *pmb, int stage);
46  TaskStatus UpdateAllConserved(MeshBlock *pmb, int stage);
47 
48  // turbulence tasks
49  TaskStatus CalculateTurbulenceFlux(MeshBlock *pmb, int stage);
50  TaskStatus SendTurbulenceFlux(MeshBlock *pmb, int stage);
51  TaskStatus ReceiveTurbulenceFlux(MeshBlock *pmb, int stage);
52  TaskStatus IntegrateTurbulence(MeshBlock *pmb, int stage);
53  TaskStatus SendTurbulence(MeshBlock *pmb, int stage);
54  TaskStatus ReceiveTurbulence(MeshBlock *pmb, int stage);
55  TaskStatus SetBoundariesTurbulence(MeshBlock *pmb, int stage);
56 
57  protected:
58  void AddTask(TaskID const &id, TaskID const &dep) override;
59 };
60 
63 // implicit
64 const TaskID IMPLICIT_CORR(80);
65 const TaskID ADD_FLX_CONS(81);
66 const TaskID UPDATE_ALLCONS(82);
67 
68 // turbulence
69 const TaskID CALC_TURBFLX(83);
70 const TaskID SEND_TURBFLX(84);
71 const TaskID RECV_TURBFLX(85);
72 const TaskID INT_TURB(86);
73 const TaskID SEND_TURB(87);
74 const TaskID RECV_TURB(88);
75 const TaskID SETB_TURB(89);
76 } // namespace HydroIntegratorTaskNames
77 
78 #endif // SRC_TASKLIST_EXTRA_TASKS_HPP_
TaskStatus AddFluxToConserved(MeshBlock *pmb, int stage)
TaskStatus ReceiveTurbulenceFlux(MeshBlock *pmb, int stage)
TaskStatus CalculateTurbulenceFlux(MeshBlock *pmb, int stage)
TaskStatus SetBoundariesTurbulence(MeshBlock *pmb, int stage)
TaskStatus IntegrateHydro(MeshBlock *pmb, int stage)
TaskStatus SendTurbulenceFlux(MeshBlock *pmb, int stage)
TaskStatus ReceiveTurbulence(MeshBlock *pmb, int stage)
TaskStatus IntegrateTurbulence(MeshBlock *pmb, int stage)
TaskStatus ImplicitCorrection(MeshBlock *pmb, int stage)
ImplicitHydroTasks(ParameterInput *pin, Mesh *pm)
TaskStatus UpdateAllConserved(MeshBlock *pmb, int stage)
TaskStatus AddSourceTerms(MeshBlock *pmb, int stage)
void AddTask(TaskID const &id, TaskID const &dep) override
TaskStatus SendTurbulence(MeshBlock *pmb, int stage)
void StartupTaskList(MeshBlock *pmb, int stage) override
TaskStatus Optimize(MeshBlock *pmb, int step)
void AddTask(const TaskID &id, const TaskID &dep) override
InversionTasks(ParameterInput *pin, Mesh *pm)
TaskStatus CalculateGradient(MeshBlock *pmb, int step)
TaskStatus Sample(MeshBlock *pmb, int step)
This should track the largest task ID in the athena/task_list/task_list.hpp.
Definition: extra_tasks.hpp:62
const TaskID IMPLICIT_CORR(80)
const TaskID SETB_TURB(89)
const TaskID UPDATE_ALLCONS(82)
const TaskID SEND_TURB(87)
const TaskID CALC_TURBFLX(83)
const TaskID RECV_TURB(88)
const TaskID RECV_TURBFLX(85)
const TaskID SEND_TURBFLX(84)
const TaskID ADD_FLX_CONS(81)
const TaskID INT_TURB(86)
const TaskID SAMPLE(3)
const TaskID NONE(0)
const TaskID CALC_GRAD(1)
const TaskID OPTIMIZE(2)