Branch data Line data Source code
1 : : // ***************************************************************************** 2 : : /*! 3 : : \file src/Inciter/discretization.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 common stuff to discretizations 10 : : \details Charm++ module interface file for common stuff to discretizations. 11 : : \see Discretization.h and Discretization.C for more info. 12 : : */ 13 : : // ***************************************************************************** 14 : : 15 : : module discretization { 16 : : 17 : : extern module transporter; 18 : : extern module meshwriter; 19 : : 20 : : include "UnsMesh.hpp"; 21 : : 22 : : namespace inciter { 23 : 2459 : 24 : : array [1D] Discretization { 25 : : entry Discretization( 26 : : std::size_t meshid, 27 : : const CProxy_Transporter& transporter, 28 : : const tk::CProxy_MeshWriter& meshwriter, 29 : : const tk::UnsMesh::CoordMap& coordmap, 30 : : const tk::UnsMesh::Chunk& el, 31 : : const std::map< int, std::unordered_set< std::size_t > >& nodeCommMap, 32 : : int nchare ); 33 : : initnode void registerReducers(); 34 : : entry void vol(); 35 : : entry void comvol( int c, 36 : : const std::vector< std::size_t >& gid, 37 : : const std::vector< tk::real >& nodevol ); 38 : : entry void stat( tk::real mesh_volume ); 39 : : entry void npoin( std::size_t n ); 40 : : 41 : : // SDAG code follows. See http://charm.cs.illinois.edu/manuals/html/ 42 : : // charm++/manual.html, Sec. "Structured Control Flow: Structured Dagger". 43 : : 44 : : entry void wait4vol() { 45 : : when ownvol_complete(), comvol_complete() serial "vol" { totalvol(); } } 46 : : 47 : : entry void ownvol_complete(); 48 : : entry void comvol_complete(); 49 : : } 50 : : 51 : : } // inciter:: 52 : : 53 : : }