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 ale; 19 : : extern module conjugategradients; 20 : : 21 : : include "UnsMesh.hpp"; 22 : : include "CommMap.hpp"; 23 : : 24 : : namespace inciter { 25 : : 26 : : array [1D] Discretization { 27 : : entry Discretization( 28 : : std::size_t meshid, 29 : : const std::vector< CProxy_Discretization >& disc, 30 : : const CProxy_ALE& aleproxy, 31 : : const tk::CProxy_ConjugateGradients& conjugategradientsproxy, 32 : : const CProxy_Transporter& transporter, 33 : : const tk::CProxy_MeshWriter& meshwriter, 34 : : const tk::UnsMesh::CoordMap& coordmap, 35 : : const tk::UnsMesh::Chunk& el, 36 : 2809 : const tk::CommMaps& msum, 37 : : const std::map< int, std::vector< std::size_t > >& bface, 38 : : const std::vector< std::size_t >& triinpoel, 39 : : const std::unordered_map< std::size_t, std::set< std::size_t > >& 40 : : elemblockid, 41 : : int nchare ); 42 : : initnode void registerReducers(); 43 : : entry void vol(); 44 : : entry void comvol( const std::vector< std::size_t >& gid, 45 : : const std::vector< tk::real >& nodevol ); 46 : : entry void stat( tk::real mesh_volume ); 47 : : entry void transferInit(); 48 : : entry void transfer_complete(); 49 : : entry void to_complete(); 50 : : entry void from_complete(); 51 : : entry void transfer_complete_from_dest(); 52 : : 53 : : // SDAG code follows. See http://charm.cs.illinois.edu/manuals/html/ 54 : : // charm++/manual.html, Sec. "Structured Control Flow: Structured Dagger". 55 : : 56 : : entry void wait4vol() { 57 : : when ownvol_complete(), comvol_complete() serial "vol" { totalvol(); } } 58 : : 59 : : entry void ownvol_complete(); 60 : : entry void comvol_complete(); 61 : : } 62 : : 63 : : } // inciter:: 64 : : 65 : : }