Branch data Line data Source code
1 : : // ***************************************************************************** 2 : : /*! 3 : : \file src/Walker/distributor.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 Distributor 9 : : \details Charm++ module interface file for Distributor 10 : : */ 11 : : // ***************************************************************************** 12 : : 13 : : module distributor { 14 : : 15 : : include "UniPDF.hpp"; 16 : : include "BiPDF.hpp"; 17 : : include "TriPDF.hpp"; 18 : 406812 : include "Walker/CmdLine/CmdLine.hpp"; 19 : : 20 : : extern module particlewriter; 21 : : 22 : : namespace walker { 23 : : 24 : : chare Distributor { 25 : : entry Distributor(); 26 : 406812 : entry [reductiontarget] void registered(); 27 : 406812 : entry [reductiontarget] void nostat(); 28 : 406812 : entry [reductiontarget] void estimateOrd( tk::real ord[n], int n ); 29 : : entry [reductiontarget] void estimateCen( tk::real cen[n], int n ); 30 : : entry [reductiontarget] void estimateOrdPDF( CkReductionMsg* msg ); 31 : : entry [reductiontarget] void estimateCenPDF( CkReductionMsg* msg ); 32 : : 33 : : entry void wait4ord() { 34 : : when estimateOrdDone() serial "accumulateCen" { 35 : : m_intproxy.accumulateCen( m_it, m_t, m_dt, m_ordinary ); 36 : : } 37 : : }; 38 : : 39 : : entry void wait4pdf() { 40 : : when estimateCenDone(), 41 : : estimateOrdPDFDone(), 42 : : estimateCenPDFDone() serial "outPDF" 43 : : { 44 : : outStat(); // Output statistics to file 45 : : outPDF(); // output PDFs to file 46 : : evaluateTime(); // evaluate time step, compute new time step 47 : : } 48 : : }; 49 : : 50 : : // SDAG trigger signaling that ordinary moments have been estimated 51 : : entry void estimateOrdDone(); 52 : : // SDAG trigger signaling that central moments have been estimated 53 : : entry void estimateCenDone(); 54 : : // SDAG trigger signaling that ordinary PDFs have been estimated 55 : : entry void estimateOrdPDFDone(); 56 : : // SDAG trigger signaling that central PDFs have been estimated 57 : : entry void estimateCenPDFDone(); 58 : : } 59 : : 60 : : } // walker:: 61 : : 62 : : }