`environment`

initialization of distributed computations

# Description

This class is mainly used to initialize the MPI library: it should be called juste after the `main(argc,argv)` declaration:

        #include "rheolef.h"
        using namespace rheolef;
        int main (int argc, char**argv) {
          environment rheolef (argc, argv);
          ...
        }

An optional third argument of the `environment` constructor allows one to set the MPI thread feature. By default, its value is `MPI_THREAD_SINGLE`, as defined in `mpi.h`. Other possible values are related to MPI multi-threaded: see the MPI documentation for more details.

When compiling in a non-distributed Configuration of the Rheolef library, this is a do-nothing class.

# Note

The interface of this class is inspirated from the `boost::mpi::environment` class. Instead of the `boost` implementation that calls `MPI_Init()`, here this class calls `MPI_Init_thread()` instead. This extension allows one to support the `scotch` library when it has been compiled with the threads feature.

# Implementation

This documentation has been generated from file linalg/lib/environment.h

class environment {
public:
environment (int& argc, char**& argv, const environment_option_type& opt = environment_option_type());
~environment();
rheolef::environment::environment
environment(int &argc, char **&argv, const environment_option_type &opt=environment_option_type())
Definition: environment.cc:64
rheolef::environment::~environment
~environment()
Definition: environment.cc:89
};
struct environment_option_type {
static const int no_thread = 100;
rheolef::environment_option_type::no_thread
static const int no_thread
Definition: environment.h:86
static const int default_thread = MPI_THREAD_SINGLE;
environment_option_type() : thread_level (default_thread) {}
int thread_level ;
};