init.cpp

Go to the documentation of this file.
00001 
00002 #include "SimObjectRegistry.h"
00003 #include "init.h"
00004 #include "mpi.h"
00005 #include "MPICommHandle.h"
00006 
00007 namespace PCSIM
00008 {
00009 
00010         static int mpi_inited_by_pcsim = false;
00011 
00012     void init( int& argc, char**& argv )
00013     {
00014         static bool init_done = false;
00015         if( ! init_done ) {
00016             if( ! MPI::Is_initialized() ) {
00017                 if( argc >= 0 ) {
00018                     MPI::Init( argc, argv);
00019                 } else {
00020                     MPI::Init();
00021                 }
00022                 mpi_inited_by_pcsim = true;
00023             }
00024             MPICommHandle::WORLD = MPICommHandle();
00025         }
00026         init_done = true;
00027     }
00028 
00029     void init(void)
00030     {
00031         int n=-1;
00032         char **p = NULL;
00033         init(n,p);
00034     }
00035 
00036     void cleanup(void) {
00037        if ( MPI::Is_initialized() && mpi_inited_by_pcsim ) {
00038           MPI::Finalize();
00039        }
00040     }
00041 
00042 }

Generated on Wed Jul 9 16:34:37 2008 for PCSIM by  doxygen 1.5.5