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-2025 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 queriedPart( std::size_t meshid );
54 : : entry [reductiontarget] void respondedPart( std::size_t meshid );
55 : : entry [reductiontarget] void totalvol( tk::real v,
56 : : tk::real initial,
57 : : tk::real summeshid );
58 : : entry [reductiontarget] void minstat( 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 maxstat( tk::real d0, tk::real d1,
61 : : tk::real d2, tk::real d3, tk::real d4, tk::real d5, tk::real rmeshid );
62 : : entry [reductiontarget] void sumstat( tk::real d0, tk::real d1,
63 : : tk::real d2, tk::real d3, tk::real d4, tk::real d5, tk::real d6,
64 : : tk::real d7, tk::real d8, tk::real summeshid );
65 : : entry [reductiontarget] void pdfstat( CkReductionMsg* msg );
66 : : entry [reductiontarget] void boxvol( tk::real v, tk::real summeshid );
67 : : entry [reductiontarget] void rhodiagnostics( CkReductionMsg* msg );
68 : : entry [reductiontarget] void prediagnostics( CkReductionMsg* msg );
69 : : entry [reductiontarget] void acdiagnostics( CkReductionMsg* msg );
70 : 247 : entry [reductiontarget] void integrals( CkReductionMsg* msg );
71 : : entry void resume();
72 : : entry [reductiontarget] void checkpoint( std::size_t finished,
73 : : std::size_t meshid );
74 : : entry [reductiontarget] void finish( std::size_t meshid );
75 : :
76 : : entry void pepartitioned();
77 : : entry void pedistributed();
78 : : entry void chcomm();
79 : : entry void chmask();
80 : : entry void chreordered();
81 : : entry void chcreated();
82 : :
83 : : // SDAG code follows. See http://charm.cs.illinois.edu/manuals/html/
84 : : // charm++/manual.html, Sec. "Structured Control Flow: Structured Dagger".
85 : :
86 : : entry void wait4stat() {
87 : : forall [meshid] ( 0 : m_nelem.size(), 1 ) {
88 : : when minstat_complete[meshid]( std::size_t _meshid ),
89 : : maxstat_complete[meshid]( std::size_t _meshid ),
90 : : sumstat_complete[meshid]( std::size_t _meshid ),
91 : : pdfstat_complete[meshid]( std::size_t _meshid )
92 : : serial "stat" { stat(); }
93 : : }
94 : : };
95 : :
96 : : entry void minstat_complete( std::size_t _meshid );
97 : : entry void maxstat_complete( std::size_t _meshid );
98 : : entry void sumstat_complete( std::size_t _meshid );
99 : : entry void pdfstat_complete( std::size_t _meshid );
100 : : }
101 : :
102 : : } // inciter::
103 : :
104 : : }
|