Branch data Line data Source code
1 : : // *****************************************************************************
2 : : /*!
3 : : \file src/Inciter/transporter.ci
4 : : \copyright 2012-2015 J. Bakosi,
5 : : 2016-2018 Los Alamos National Security, LLC.,
6 : : 2019-2021 Triad National Security, LLC.,
7 : : 2022-2024 J. Bakosi
8 : : All rights reserved. See the LICENSE file for details.
9 : : \brief Charm++ module interface file for Transporter
10 : : \details Charm++ module interface file for Transporter
11 : : */
12 : : // *****************************************************************************
13 : :
14 : : module transporter {
15 : :
16 : : include "Types.hpp";
17 : :
18 : : extern module meshwriter;
19 : :
20 : : namespace inciter {
21 : :
22 : : chare [migratable] Transporter {
23 : : entry Transporter();
24 : : entry [reductiontarget] void load( std::size_t meshid,
25 : : std::size_t nelem );
26 : : entry [reductiontarget] void partitioned( std::size_t meshid );
27 : : entry [reductiontarget] void distributed( std::size_t meshid );
28 : : entry [reductiontarget] void refinserted( std::size_t meshid,
29 : : std::size_t error );
30 : : entry [reductiontarget] void discinserted( std::size_t meshid );
31 : : entry [reductiontarget] void disccreated( std::size_t summeshid,
32 : : std::size_t npoin );
33 : : entry [reductiontarget] void workinserted( std::size_t meshid );
34 : : entry [reductiontarget] void queriedRef( std::size_t meshid );
35 : : entry [reductiontarget] void respondedRef( std::size_t meshid );
36 : : entry [reductiontarget] void compatibility( std::size_t meshid );
37 : : entry [reductiontarget] void matched( std::size_t summeshid,
38 : : std::size_t nextra,
39 : : std::size_t nref,
40 : : std::size_t nderef,
41 : : std::size_t initial );
42 : : entry [reductiontarget] void bndint( tk::real sx,
43 : : tk::real sy,
44 : : tk::real sz,
45 : : tk::real cb,
46 : : tk::real summeshid );
47 : : entry [reductiontarget] void refined( std::size_t meshid,
48 : : std::size_t nelem,
49 : : std::size_t npoin );
50 : : entry [reductiontarget] void resized( std::size_t meshid );
51 : : entry [reductiontarget] void queried( std::size_t meshid );
52 : : entry [reductiontarget] void responded( std::size_t meshid );
53 : : entry [reductiontarget] void totalvol( tk::real v,
54 : : tk::real initial,
55 : : tk::real summeshid );
56 : : entry [reductiontarget] void minstat( tk::real d0, tk::real d1,
57 : : tk::real d2, tk::real d3, tk::real d4, tk::real d5, tk::real rmeshid );
58 : : entry [reductiontarget] void maxstat( tk::real d0, tk::real d1,
59 : : tk::real d2, tk::real d3, tk::real d4, tk::real d5, tk::real rmeshid );
60 : : entry [reductiontarget] void sumstat( tk::real d0, tk::real d1,
61 : : tk::real d2, tk::real d3, tk::real d4, tk::real d5, tk::real d6,
62 : : tk::real d7, tk::real d8, tk::real summeshid );
63 : : entry [reductiontarget] void pdfstat( CkReductionMsg* msg );
64 : : entry [reductiontarget] void boxvol( tk::real v, tk::real summeshid );
65 : : entry [reductiontarget] void rhodiagnostics( CkReductionMsg* msg );
66 : : entry [reductiontarget] void prediagnostics( CkReductionMsg* msg );
67 : : entry [reductiontarget] void acdiagnostics( CkReductionMsg* msg );
68 : 242 : entry [reductiontarget] void integrals( CkReductionMsg* msg );
69 : : entry void resume();
70 : : entry [reductiontarget] void checkpoint( std::size_t finished,
71 : : std::size_t meshid );
72 : : entry [reductiontarget] void finish( std::size_t meshid );
73 : :
74 : : entry void pepartitioned();
75 : : entry void pedistributed();
76 : : entry void chcomm();
77 : : entry void chmask();
78 : : entry void chreordered();
79 : : entry void chcreated();
80 : :
81 : : // SDAG code follows. See http://charm.cs.illinois.edu/manuals/html/
82 : : // charm++/manual.html, Sec. "Structured Control Flow: Structured Dagger".
83 : :
84 : : entry void wait4stat() {
85 : : forall [meshid] ( 0 : m_nelem.size(), 1 ) {
86 : : when minstat_complete[meshid]( std::size_t _meshid ),
87 : : maxstat_complete[meshid]( std::size_t _meshid ),
88 : : sumstat_complete[meshid]( std::size_t _meshid ),
89 : : pdfstat_complete[meshid]( std::size_t _meshid )
90 : : serial "stat" { stat(); }
91 : : }
92 : : };
93 : :
94 : : entry void minstat_complete( std::size_t _meshid );
95 : : entry void maxstat_complete( std::size_t _meshid );
96 : : entry void sumstat_complete( std::size_t _meshid );
97 : : entry void pdfstat_complete( std::size_t _meshid );
98 : : }
99 : :
100 : : } // inciter::
101 : :
102 : : }
|