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 : : All rights reserved. See the LICENSE file for details. 8 : : \brief Charm++ module interface file for Transporter 9 : : \details Charm++ module interface file for Transporter 10 : : */ 11 : : // ***************************************************************************** 12 : : 13 : : module transporter { 14 : : 15 : : include "Types.hpp"; 16 : : 17 : : extern module meshwriter; 18 : : 19 : : namespace inciter { 20 : : 21 : : chare [migratable] Transporter { 22 : : entry Transporter(); 23 : : entry [reductiontarget] void load( std::size_t meshid, 24 : : std::size_t nelem ); 25 : : entry [reductiontarget] void partitioned( std::size_t meshid ); 26 : : entry [reductiontarget] void distributed( std::size_t meshid ); 27 : : entry [reductiontarget] void refinserted( std::size_t meshid, 28 : : std::size_t error ); 29 : : entry [reductiontarget] void discinserted( std::size_t meshid ); 30 : : entry [reductiontarget] void disccreated( std::size_t summeshid, 31 : : std::size_t npoin ); 32 : : entry [reductiontarget] void workinserted( std::size_t meshid ); 33 : : entry [reductiontarget] void queriedRef( std::size_t meshid ); 34 : : entry [reductiontarget] void respondedRef( std::size_t meshid ); 35 : : entry [reductiontarget] void compatibility( std::size_t meshid, 36 : : std::size_t modified ); 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 startEsup( std::size_t meshid ); 52 : : entry [reductiontarget] void queried( std::size_t meshid ); 53 : : entry [reductiontarget] void responded( std::size_t meshid ); 54 : : entry [reductiontarget] void comfinal( std::size_t initial, 55 : : std::size_t summeshid ); 56 : : entry [reductiontarget] void totalvol( tk::real v, 57 : : tk::real initial, 58 : : tk::real summeshid ); 59 : : entry [reductiontarget] void minstat( tk::real d0, tk::real d1, 60 : : tk::real d2, tk::real rmeshid ); 61 : : entry [reductiontarget] void maxstat( tk::real d0, tk::real d1, 62 : : tk::real d2, tk::real rmeshid ); 63 : : entry [reductiontarget] void sumstat( tk::real d0, tk::real d1, 64 : : tk::real d2, tk::real d3, 65 : : tk::real d4, tk::real d5, 66 : : tk::real summeshid ); 67 : : entry [reductiontarget] void pdfstat( CkReductionMsg* msg ); 68 : : entry [reductiontarget] void boxvol( tk::real v, tk::real summeshid ); 69 : : entry [reductiontarget] void diagnostics( CkReductionMsg* msg ); 70 : : entry void resume(); 71 : : entry [reductiontarget] void checkpoint( std::size_t finished, 72 : : std::size_t meshid ); 73 : : entry [reductiontarget] void finish( std::size_t meshid ); 74 : : 75 : 233 : entry void pepartitioned(); 76 : : entry void pedistributed(); 77 : : entry void chbnd(); 78 : : entry void chcomm(); 79 : : entry void chmask(); 80 : : entry void chreordered(); 81 : : 82 : : entry void chcreated(); 83 : : entry void chbndface(); 84 : : entry void chcomfac(); 85 : : entry void chghost(); 86 : : entry void chadj(); 87 : : 88 : : // SDAG code follows. See http://charm.cs.illinois.edu/manuals/html/ 89 : : // charm++/manual.html, Sec. "Structured Control Flow: Structured Dagger". 90 : : 91 : : entry void wait4stat() { 92 : : forall [meshid] ( 0 : m_nelem.size(), 1 ) { 93 : : when minstat_complete[meshid]( std::size_t _meshid ), 94 : : maxstat_complete[meshid]( std::size_t _meshid ), 95 : : sumstat_complete[meshid]( std::size_t _meshid ), 96 : : pdfstat_complete[meshid]( std::size_t _meshid ) 97 : : serial "stat" { stat(); } 98 : : } 99 : : }; 100 : : 101 : : entry void minstat_complete( std::size_t _meshid ); 102 : : entry void maxstat_complete( std::size_t _meshid ); 103 : : entry void sumstat_complete( std::size_t _meshid ); 104 : : entry void pdfstat_complete( std::size_t _meshid ); 105 : : } 106 : : 107 : : } // inciter:: 108 : : 109 : : }