Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/toolx/mpi/world

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/g4tools/include/toolx/mpi/world (Version 11.3.0) and /externals/g4tools/include/toolx/mpi/world (Version 5.0)


  1 // Copyright (C) 2010, Guy Barrand. All rights    
  2 // See the file tools.license for terms.          
  3                                                   
  4 #ifndef toolx_mpi_world                           
  5 #define toolx_mpi_world                           
  6                                                   
  7 // code to wrap MPI global things by having an    
  8                                                   
  9 #include <tools/impi_world>                       
 10                                                   
 11 #include <mpi.h>                                  
 12                                                   
 13 #ifdef TOOLS_MEM                                  
 14 #include <tools/mem>                              
 15 #endif                                            
 16                                                   
 17 namespace toolx {                                 
 18 namespace mpi {                                   
 19                                                   
 20 class world : public virtual tools::impi_world    
 21   typedef tools::impi_world parent;               
 22 #ifdef TOOLS_MEM                                  
 23 protected:                                        
 24   static const std::string& s_class() {           
 25     static const std::string s_v("toolx::mpi::    
 26     return s_v;                                   
 27   }                                               
 28 #endif                                            
 29 public:                                           
 30   virtual bool init(int* a_argc,char*** a_argv    
 31     if(::MPI_Init(a_argc,a_argv)!=MPI_SUCCESS)    
 32     return true;                                  
 33   }                                               
 34   virtual bool rank(int& a_rank) const {          
 35     if(::MPI_Comm_rank(MPI_COMM_WORLD,&a_rank)    
 36     return true;                                  
 37   }                                               
 38   virtual bool size(int& a_size) const {          
 39     if(::MPI_Comm_size(MPI_COMM_WORLD,&a_size)    
 40     return true;                                  
 41   }                                               
 42   virtual bool processor_name(std::string& a_s    
 43     char name[MPI_MAX_PROCESSOR_NAME];            
 44     int lname;                                    
 45     if(::MPI_Get_processor_name(name,&lname)!=    
 46     a_s = std::string(name);                      
 47     return true;                                  
 48   }                                               
 49 public:                                           
 50   world() {                                       
 51 #ifdef TOOLS_MEM                                  
 52     tools::mem::increment(s_class().c_str());     
 53 #endif                                            
 54   }                                               
 55   virtual ~world(){                               
 56 #ifdef TOOLS_MEM                                  
 57     tools::mem::decrement(s_class().c_str());     
 58 #endif                                            
 59   }                                               
 60 protected:                                        
 61   world(const world& a_from):parent(a_from) {     
 62 #ifdef TOOLS_MEM                                  
 63     tools::mem::increment(s_class().c_str());     
 64 #endif                                            
 65   }                                               
 66   world& operator=(const world&) {return *this    
 67 };                                                
 68                                                   
 69 }}                                                
 70                                                   
 71 #endif