mirror of
https://github.com/OPM/opm-upscaling.git
synced 2025-02-25 18:45:23 -06:00
Merge pull request #81 from akva2/fix_mpi
fixed: enable running upscale_elasticity compiled against MPI enabled li... Merging directly since this currently breaks building.
This commit is contained in:
commit
aaaf2183fc
@ -25,6 +25,10 @@
|
||||
#include <omp.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MPI
|
||||
#include <mpi.h>
|
||||
#endif
|
||||
|
||||
#include <opm/elasticity/elasticity_upscale.hpp>
|
||||
#include <opm/elasticity/matrixops.hpp>
|
||||
|
||||
@ -211,11 +215,29 @@ void writeOutput(const Params& p, Opm::time::StopWatch& watch, int cells,
|
||||
<< C << std::endl;
|
||||
}
|
||||
|
||||
void shutdown()
|
||||
{
|
||||
#ifdef HAVE_MPI
|
||||
MPI_Finalize();
|
||||
#endif
|
||||
}
|
||||
|
||||
//! \brief Main driver
|
||||
int main(int argc, char** argv)
|
||||
try
|
||||
{
|
||||
try {
|
||||
#ifdef HAVE_MPI
|
||||
int rank, size;
|
||||
MPI_Init(&argc, &argv);
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &size);
|
||||
if (size != 1) {
|
||||
std::cerr << "This program does not support MPI parallelization" << std::endl;
|
||||
shutdown();
|
||||
return 2;
|
||||
}
|
||||
#endif
|
||||
static const int dim = 3;
|
||||
|
||||
typedef Dune::CpGrid GridType;
|
||||
@ -224,6 +246,7 @@ try
|
||||
|| strcmp(argv[1],"--help") == 0
|
||||
|| strcmp(argv[1],"-?") == 0) {
|
||||
syntax(argv);
|
||||
shutdown();
|
||||
exit(1);
|
||||
}
|
||||
Params p;
|
||||
@ -337,6 +360,7 @@ try
|
||||
writeOutput(p,watch,grid.size(0),upscale.volumeFractions,C);
|
||||
}
|
||||
|
||||
shutdown();
|
||||
return 0;
|
||||
}
|
||||
catch (Dune::Exception &e) {
|
||||
@ -345,10 +369,12 @@ try
|
||||
catch (...) {
|
||||
std::cerr << "Unknown exception thrown!" << std::endl;
|
||||
}
|
||||
shutdown();
|
||||
return 1;
|
||||
}
|
||||
catch (const std::exception &e) {
|
||||
std::cerr << "Program threw an exception: " << e.what() << "\n";
|
||||
shutdown();
|
||||
throw;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user