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 : : extern module bicg; 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 : : const CProxy_ALE& aleproxy, 32 : : const tk::CProxy_ConjugateGradients& conjugategradientsproxy, 33 : : const tk::CProxy_BiCG& implicitsolverproxy, 34 : : const CProxy_Transporter& transporter, 35 : : const tk::CProxy_MeshWriter& meshwriter, 36 : : const tk::UnsMesh::CoordMap& coordmap, 37 : : const tk::UnsMesh::Chunk& el, 38 : 2573 : const tk::CommMaps& msum, 39 : : const std::map< int, std::vector< std::size_t > >& bface, 40 : : const std::vector< std::size_t >& triinpoel, 41 : : const std::unordered_map< std::size_t, std::set< std::size_t > >& 42 : : elemblockid, 43 : : int nchare ); 44 : : initnode void registerReducers(); 45 : : entry void vol(); 46 : : entry void comvol( const std::vector< std::size_t >& gid, 47 : : const std::vector< tk::real >& nodevol ); 48 : : entry void stat( tk::real mesh_volume ); 49 : : entry void transferInit(); 50 : : entry void transfer_complete(); 51 : : entry void to_complete(); 52 : : entry void from_complete(); 53 : : entry void transfer_complete_from_dest(); 54 : : 55 : : // SDAG code follows. See http://charm.cs.illinois.edu/manuals/html/ 56 : : // charm++/manual.html, Sec. "Structured Control Flow: Structured Dagger". 57 : : 58 : : entry void wait4vol() { 59 : : when ownvol_complete(), comvol_complete() serial "vol" { totalvol(); } } 60 : : 61 : : entry void ownvol_complete(); 62 : : entry void comvol_complete(); 63 : : } 64 : : 65 : : } // inciter:: 66 : : 67 : : }