Changeset 13736


Ignore:
Timestamp:
10/18/12 11:43:20 (12 years ago)
Author:
Eric.Larour
Message:

CHG: pushed PetscInitialize and Finalize phases into FemModel constructors and destructors.
MPI_Init and MPI_Finalize are still done in EnvironmentInit and EnvironmentFinalize.
This ensures that we split our communicators and run fully communicator oriented!

Location:
issm/trunk-jpl/src/c
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r13722 r13736  
    2727        int  numanalyses;
    2828        int  solution_type;
     29        int  ierr;
    2930
    3031        /*File names*/
     
    3839        this->comm=incomm;
    3940        this->SetStaticComm();
     41       
     42        /*Now, initialize PETSC: */
     43        PETSC_COMM_WORLD=this->comm;
     44        ierr=PetscInitialize(&argc,&argv,(char*)0,"");  if(ierr) _error_("Could not initialize Petsc");
    4045
    4146        /*Start profiler: */
     
    122127        /*Now delete: */
    123128        delete profiler;
     129       
     130        /*Finalize PETSC for this model: */
     131        _pprintLine_("closing Petsc");
     132        PetscFinalize();
     133
    124134}
    125135/*}}}*/
  • issm/trunk-jpl/src/c/solutions/EnvironmentFinalize.cpp

    r13620 r13736  
    1313void EnvironmentFinalize(void){
    1414
    15         #ifdef _HAVE_PETSC_
    16         _pprintLine_("closing MPI and Petsc");
    17         PetscFinalize();
    18         #else
     15        int my_rank=0;
    1916        #ifdef _HAVE_MPI_
    20         _pprintLine_("closing MPI");
     17        /*Make sure we are all here!)*/
     18        MPI_Barrier(MPI_COMM_WORLD);
     19       
     20        /*Print closing statement: */
     21        #ifdef _HAVE_MPI_
     22        MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
     23        #endif
     24        if(!my_rank) printf("closing MPI\n");
     25
     26        /*Finalize: */
    2127        MPI_Finalize();
    2228        #endif
    23         #endif
    2429}
  • issm/trunk-jpl/src/c/solutions/EnvironmentInit.cpp

    r13691 r13736  
    1616        COMM comm = 0;
    1717
    18         /*Initialize environments: Petsc, MPI, etc...: */
    19         #if defined (_HAVE_PETSC_)
    20         int ierr=PetscInitialize(&argc,&argv,(char*)0,""); 
    21         if(ierr) _error_("Could not initialize Petsc");
    22         comm = MPI_COMM_WORLD;
    23         #elif defined(_HAVE_MPI_)
     18        /*Initialize MPI environment: */
     19        #if defined(_HAVE_MPI_)
    2420        MPI_Init(&argc,&argv);
    2521        comm = MPI_COMM_WORLD;
Note: See TracChangeset for help on using the changeset viewer.