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 : : All rights reserved. See the LICENSE file for details. 8 : : \brief Charm++ module interface file for common stuff to discretizations 9 : : \details Charm++ module interface file for common stuff to discretizations. 10 : : \see Discretization.h and Discretization.C for more info. 11 : : */ 12 : : // ***************************************************************************** 13 : : 14 : : module discretization { 15 : : 16 : : extern module transporter; 17 : : extern module meshwriter; 18 : : extern module distfct; 19 : : extern module ale; 20 : : extern module conjugategradients; 21 : : 22 : : include "UnsMesh.hpp"; 23 : : include "CommMap.hpp"; 24 : : 25 : : namespace inciter { 26 : : 27 : : array [1D] Discretization { 28 : : entry Discretization( 29 : : std::size_t meshid, 30 : : const std::vector< CProxy_Discretization >& disc, 31 : 3025 : const CProxy_DistFCT& fctproxy, 32 : : const CProxy_ALE& aleproxy, 33 : : const tk::CProxy_ConjugateGradients& conjugategradientsproxy, 34 : : const CProxy_Transporter& transporter, 35 : : const tk::CProxy_MeshWriter& meshwriter, 36 : : const tk::UnsMesh::CoordMap& coordmap, 37 : : const tk::UnsMesh::Chunk& el, 38 : : const tk::CommMaps& msum, 39 : : int nchare ); 40 : : initnode void registerReducers(); 41 : : entry void vol(); 42 : : entry void comvol( const std::vector< std::size_t >& gid, 43 : : const std::vector< tk::real >& nodevol ); 44 : : entry void stat( tk::real mesh_volume ); 45 : : entry void transferInit(); 46 : : entry void comcb( std::size_t srcmeshid, CkCallback c ); 47 : : 48 : : // SDAG code follows. See http://charm.cs.illinois.edu/manuals/html/ 49 : : // charm++/manual.html, Sec. "Structured Control Flow: Structured Dagger". 50 : : 51 : : entry void wait4vol() { 52 : : when ownvol_complete(), comvol_complete() serial "vol" { totalvol(); } } 53 : : 54 : : entry void ownvol_complete(); 55 : : entry void comvol_complete(); 56 : : } 57 : : 58 : : } // inciter:: 59 : : 60 : : }