Added function grid_equal() to compare two UnstructuredGrid instances.

This commit is contained in:
Joakim Hove
2014-04-20 10:17:31 +02:00
parent f9249b1d5d
commit 8260d945fa
5 changed files with 369 additions and 0 deletions

View File

@@ -0,0 +1,206 @@
RUNSPEC
DIMENS
10 10 5 /
GRID
COORD
0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.20000000E+02 0.10000000E+02 0.00000000E+00
0.00000000E+00 0.10000000E+02 0.00000000E+00 0.20000000E+02
0.20000000E+02 0.00000000E+00 0.00000000E+00 0.20000000E+02
0.00000000E+00 0.20000000E+02 0.30000000E+02 0.00000000E+00
0.00000000E+00 0.30000000E+02 0.00000000E+00 0.20000000E+02
0.40000000E+02 0.00000000E+00 0.00000000E+00 0.40000000E+02
0.00000000E+00 0.20000000E+02 0.50000000E+02 0.00000000E+00
0.00000000E+00 0.50000000E+02 0.00000000E+00 0.20000000E+02
0.60000000E+02 0.00000000E+00 0.00000000E+00 0.60000000E+02
0.00000000E+00 0.20000000E+02 0.70000000E+02 0.00000000E+00
0.00000000E+00 0.70000000E+02 0.00000000E+00 0.20000000E+02
0.80000000E+02 0.00000000E+00 0.00000000E+00 0.80000000E+02
0.00000000E+00 0.20000000E+02 0.90000000E+02 0.00000000E+00
0.00000000E+00 0.90000000E+02 0.00000000E+00 0.20000000E+02
0.10000000E+03 0.00000000E+00 0.00000000E+00 0.10000000E+03
0.00000000E+00 0.20000000E+02 0.00000000E+00 0.12000000E+02
0.00000000E+00 0.00000000E+00 0.12000000E+02 0.20000000E+02
0.10000000E+02 0.12000000E+02 0.00000000E+00 0.10000000E+02
0.12000000E+02 0.20000000E+02 0.20000000E+02 0.12000000E+02
0.00000000E+00 0.20000000E+02 0.12000000E+02 0.20000000E+02
0.30000000E+02 0.12000000E+02 0.00000000E+00 0.30000000E+02
0.12000000E+02 0.20000000E+02 0.40000000E+02 0.12000000E+02
0.00000000E+00 0.40000000E+02 0.12000000E+02 0.20000000E+02
0.50000000E+02 0.12000000E+02 0.00000000E+00 0.50000000E+02
0.12000000E+02 0.20000000E+02 0.60000000E+02 0.12000000E+02
0.00000000E+00 0.60000000E+02 0.12000000E+02 0.20000000E+02
0.70000000E+02 0.12000000E+02 0.00000000E+00 0.70000000E+02
0.12000000E+02 0.20000000E+02 0.80000000E+02 0.12000000E+02
0.00000000E+00 0.80000000E+02 0.12000000E+02 0.20000000E+02
0.90000000E+02 0.12000000E+02 0.00000000E+00 0.90000000E+02
0.12000000E+02 0.20000000E+02 0.10000000E+03 0.12000000E+02
0.00000000E+00 0.10000000E+03 0.12000000E+02 0.20000000E+02
0.00000000E+00 0.24000000E+02 0.00000000E+00 0.00000000E+00
0.24000000E+02 0.20000000E+02 0.10000000E+02 0.24000000E+02
0.00000000E+00 0.10000000E+02 0.24000000E+02 0.20000000E+02
0.20000000E+02 0.24000000E+02 0.00000000E+00 0.20000000E+02
0.24000000E+02 0.20000000E+02 0.30000000E+02 0.24000000E+02
0.00000000E+00 0.30000000E+02 0.24000000E+02 0.20000000E+02
0.40000000E+02 0.24000000E+02 0.00000000E+00 0.40000000E+02
0.24000000E+02 0.20000000E+02 0.50000000E+02 0.24000000E+02
0.00000000E+00 0.50000000E+02 0.24000000E+02 0.20000000E+02
0.60000000E+02 0.24000000E+02 0.00000000E+00 0.60000000E+02
0.24000000E+02 0.20000000E+02 0.70000000E+02 0.24000000E+02
0.00000000E+00 0.70000000E+02 0.24000000E+02 0.20000000E+02
0.80000000E+02 0.24000000E+02 0.00000000E+00 0.80000000E+02
0.24000000E+02 0.20000000E+02 0.90000000E+02 0.24000000E+02
0.00000000E+00 0.90000000E+02 0.24000000E+02 0.20000000E+02
0.10000000E+03 0.24000000E+02 0.00000000E+00 0.10000000E+03
0.24000000E+02 0.20000000E+02 0.00000000E+00 0.36000000E+02
0.00000000E+00 0.00000000E+00 0.36000000E+02 0.20000000E+02
0.10000000E+02 0.36000000E+02 0.00000000E+00 0.10000000E+02
0.36000000E+02 0.20000000E+02 0.20000000E+02 0.36000000E+02
0.00000000E+00 0.20000000E+02 0.36000000E+02 0.20000000E+02
0.30000000E+02 0.36000000E+02 0.00000000E+00 0.30000000E+02
0.36000000E+02 0.20000000E+02 0.40000000E+02 0.36000000E+02
0.00000000E+00 0.40000000E+02 0.36000000E+02 0.20000000E+02
0.50000000E+02 0.36000000E+02 0.00000000E+00 0.50000000E+02
0.36000000E+02 0.20000000E+02 0.60000000E+02 0.36000000E+02
0.00000000E+00 0.60000000E+02 0.36000000E+02 0.20000000E+02
0.70000000E+02 0.36000000E+02 0.00000000E+00 0.70000000E+02
0.36000000E+02 0.20000000E+02 0.80000000E+02 0.36000000E+02
0.00000000E+00 0.80000000E+02 0.36000000E+02 0.20000000E+02
0.90000000E+02 0.36000000E+02 0.00000000E+00 0.90000000E+02
0.36000000E+02 0.20000000E+02 0.10000000E+03 0.36000000E+02
0.00000000E+00 0.10000000E+03 0.36000000E+02 0.20000000E+02
0.00000000E+00 0.48000000E+02 0.00000000E+00 0.00000000E+00
0.48000000E+02 0.20000000E+02 0.10000000E+02 0.48000000E+02
0.00000000E+00 0.10000000E+02 0.48000000E+02 0.20000000E+02
0.20000000E+02 0.48000000E+02 0.00000000E+00 0.20000000E+02
0.48000000E+02 0.20000000E+02 0.30000000E+02 0.48000000E+02
0.00000000E+00 0.30000000E+02 0.48000000E+02 0.20000000E+02
0.40000000E+02 0.48000000E+02 0.00000000E+00 0.40000000E+02
0.48000000E+02 0.20000000E+02 0.50000000E+02 0.48000000E+02
0.00000000E+00 0.50000000E+02 0.48000000E+02 0.20000000E+02
0.60000000E+02 0.48000000E+02 0.00000000E+00 0.60000000E+02
0.48000000E+02 0.20000000E+02 0.70000000E+02 0.48000000E+02
0.00000000E+00 0.70000000E+02 0.48000000E+02 0.20000000E+02
0.80000000E+02 0.48000000E+02 0.00000000E+00 0.80000000E+02
0.48000000E+02 0.20000000E+02 0.90000000E+02 0.48000000E+02
0.00000000E+00 0.90000000E+02 0.48000000E+02 0.20000000E+02
0.10000000E+03 0.48000000E+02 0.00000000E+00 0.10000000E+03
0.48000000E+02 0.20000000E+02 0.00000000E+00 0.60000000E+02
0.00000000E+00 0.00000000E+00 0.60000000E+02 0.20000000E+02
0.10000000E+02 0.60000000E+02 0.00000000E+00 0.10000000E+02
0.60000000E+02 0.20000000E+02 0.20000000E+02 0.60000000E+02
0.00000000E+00 0.20000000E+02 0.60000000E+02 0.20000000E+02
0.30000000E+02 0.60000000E+02 0.00000000E+00 0.30000000E+02
0.60000000E+02 0.20000000E+02 0.40000000E+02 0.60000000E+02
0.00000000E+00 0.40000000E+02 0.60000000E+02 0.20000000E+02
0.50000000E+02 0.60000000E+02 0.00000000E+00 0.50000000E+02
0.60000000E+02 0.20000000E+02 0.60000000E+02 0.60000000E+02
0.00000000E+00 0.60000000E+02 0.60000000E+02 0.20000000E+02
0.70000000E+02 0.60000000E+02 0.00000000E+00 0.70000000E+02
0.60000000E+02 0.20000000E+02 0.80000000E+02 0.60000000E+02
0.00000000E+00 0.80000000E+02 0.60000000E+02 0.20000000E+02
0.90000000E+02 0.60000000E+02 0.00000000E+00 0.90000000E+02
0.60000000E+02 0.20000000E+02 0.10000000E+03 0.60000000E+02
0.00000000E+00 0.10000000E+03 0.60000000E+02 0.20000000E+02
0.00000000E+00 0.72000000E+02 0.00000000E+00 0.00000000E+00
0.72000000E+02 0.20000000E+02 0.10000000E+02 0.72000000E+02
0.00000000E+00 0.10000000E+02 0.72000000E+02 0.20000000E+02
0.20000000E+02 0.72000000E+02 0.00000000E+00 0.20000000E+02
0.72000000E+02 0.20000000E+02 0.30000000E+02 0.72000000E+02
0.00000000E+00 0.30000000E+02 0.72000000E+02 0.20000000E+02
0.40000000E+02 0.72000000E+02 0.00000000E+00 0.40000000E+02
0.72000000E+02 0.20000000E+02 0.50000000E+02 0.72000000E+02
0.00000000E+00 0.50000000E+02 0.72000000E+02 0.20000000E+02
0.60000000E+02 0.72000000E+02 0.00000000E+00 0.60000000E+02
0.72000000E+02 0.20000000E+02 0.70000000E+02 0.72000000E+02
0.00000000E+00 0.70000000E+02 0.72000000E+02 0.20000000E+02
0.80000000E+02 0.72000000E+02 0.00000000E+00 0.80000000E+02
0.72000000E+02 0.20000000E+02 0.90000000E+02 0.72000000E+02
0.00000000E+00 0.90000000E+02 0.72000000E+02 0.20000000E+02
0.10000000E+03 0.72000000E+02 0.00000000E+00 0.10000000E+03
0.72000000E+02 0.20000000E+02 0.00000000E+00 0.84000000E+02
0.00000000E+00 0.00000000E+00 0.84000000E+02 0.20000000E+02
0.10000000E+02 0.84000000E+02 0.00000000E+00 0.10000000E+02
0.84000000E+02 0.20000000E+02 0.20000000E+02 0.84000000E+02
0.00000000E+00 0.20000000E+02 0.84000000E+02 0.20000000E+02
0.30000000E+02 0.84000000E+02 0.00000000E+00 0.30000000E+02
0.84000000E+02 0.20000000E+02 0.40000000E+02 0.84000000E+02
0.00000000E+00 0.40000000E+02 0.84000000E+02 0.20000000E+02
0.50000000E+02 0.84000000E+02 0.00000000E+00 0.50000000E+02
0.84000000E+02 0.20000000E+02 0.60000000E+02 0.84000000E+02
0.00000000E+00 0.60000000E+02 0.84000000E+02 0.20000000E+02
0.70000000E+02 0.84000000E+02 0.00000000E+00 0.70000000E+02
0.84000000E+02 0.20000000E+02 0.80000000E+02 0.84000000E+02
0.00000000E+00 0.80000000E+02 0.84000000E+02 0.20000000E+02
0.90000000E+02 0.84000000E+02 0.00000000E+00 0.90000000E+02
0.84000000E+02 0.20000000E+02 0.10000000E+03 0.84000000E+02
0.00000000E+00 0.10000000E+03 0.84000000E+02 0.20000000E+02
0.00000000E+00 0.96000000E+02 0.00000000E+00 0.00000000E+00
0.96000000E+02 0.20000000E+02 0.10000000E+02 0.96000000E+02
0.00000000E+00 0.10000000E+02 0.96000000E+02 0.20000000E+02
0.20000000E+02 0.96000000E+02 0.00000000E+00 0.20000000E+02
0.96000000E+02 0.20000000E+02 0.30000000E+02 0.96000000E+02
0.00000000E+00 0.30000000E+02 0.96000000E+02 0.20000000E+02
0.40000000E+02 0.96000000E+02 0.00000000E+00 0.40000000E+02
0.96000000E+02 0.20000000E+02 0.50000000E+02 0.96000000E+02
0.00000000E+00 0.50000000E+02 0.96000000E+02 0.20000000E+02
0.60000000E+02 0.96000000E+02 0.00000000E+00 0.60000000E+02
0.96000000E+02 0.20000000E+02 0.70000000E+02 0.96000000E+02
0.00000000E+00 0.70000000E+02 0.96000000E+02 0.20000000E+02
0.80000000E+02 0.96000000E+02 0.00000000E+00 0.80000000E+02
0.96000000E+02 0.20000000E+02 0.90000000E+02 0.96000000E+02
0.00000000E+00 0.90000000E+02 0.96000000E+02 0.20000000E+02
0.10000000E+03 0.96000000E+02 0.00000000E+00 0.10000000E+03
0.96000000E+02 0.20000000E+02 0.00000000E+00 0.10800000E+03
0.00000000E+00 0.00000000E+00 0.10800000E+03 0.20000000E+02
0.10000000E+02 0.10800000E+03 0.00000000E+00 0.10000000E+02
0.10800000E+03 0.20000000E+02 0.20000000E+02 0.10800000E+03
0.00000000E+00 0.20000000E+02 0.10800000E+03 0.20000000E+02
0.30000000E+02 0.10800000E+03 0.00000000E+00 0.30000000E+02
0.10800000E+03 0.20000000E+02 0.40000000E+02 0.10800000E+03
0.00000000E+00 0.40000000E+02 0.10800000E+03 0.20000000E+02
0.50000000E+02 0.10800000E+03 0.00000000E+00 0.50000000E+02
0.10800000E+03 0.20000000E+02 0.60000000E+02 0.10800000E+03
0.00000000E+00 0.60000000E+02 0.10800000E+03 0.20000000E+02
0.70000000E+02 0.10800000E+03 0.00000000E+00 0.70000000E+02
0.10800000E+03 0.20000000E+02 0.80000000E+02 0.10800000E+03
0.00000000E+00 0.80000000E+02 0.10800000E+03 0.20000000E+02
0.90000000E+02 0.10800000E+03 0.00000000E+00 0.90000000E+02
0.10800000E+03 0.20000000E+02 0.10000000E+03 0.10800000E+03
0.00000000E+00 0.10000000E+03 0.10800000E+03 0.20000000E+02
0.00000000E+00 0.12000000E+03 0.00000000E+00 0.00000000E+00
0.12000000E+03 0.20000000E+02 0.10000000E+02 0.12000000E+03
0.00000000E+00 0.10000000E+02 0.12000000E+03 0.20000000E+02
0.20000000E+02 0.12000000E+03 0.00000000E+00 0.20000000E+02
0.12000000E+03 0.20000000E+02 0.30000000E+02 0.12000000E+03
0.00000000E+00 0.30000000E+02 0.12000000E+03 0.20000000E+02
0.40000000E+02 0.12000000E+03 0.00000000E+00 0.40000000E+02
0.12000000E+03 0.20000000E+02 0.50000000E+02 0.12000000E+03
0.00000000E+00 0.50000000E+02 0.12000000E+03 0.20000000E+02
0.60000000E+02 0.12000000E+03 0.00000000E+00 0.60000000E+02
0.12000000E+03 0.20000000E+02 0.70000000E+02 0.12000000E+03
0.00000000E+00 0.70000000E+02 0.12000000E+03 0.20000000E+02
0.80000000E+02 0.12000000E+03 0.00000000E+00 0.80000000E+02
0.12000000E+03 0.20000000E+02 0.90000000E+02 0.12000000E+03
0.00000000E+00 0.90000000E+02 0.12000000E+03 0.20000000E+02
0.10000000E+03 0.12000000E+03 0.00000000E+00 0.10000000E+03
0.12000000E+03 0.20000000E+02
/
ZCORN
400*0.00
400*0.40E+01
400*0.80E+01
400*1.20E+02
400*1.60E+02
400*2.00E+02
/
ACTNUM
200*0 100*1 200*0 /
EDIT

66
tests/test_ug.cpp Normal file
View File

@@ -0,0 +1,66 @@
/* Copyright 2014 Statoil ASA
* This file is licensed under GPL3, see http://www.opm-project.org/
*/
#include <config.h>
/* --- Boost.Test boilerplate --- */
#if HAVE_DYNAMIC_BOOST_TEST
#define BOOST_TEST_DYN_LINK
#endif
#define NVERBOSE // Suppress own messages when throw()ing
#define BOOST_TEST_MODULE TEST_UG
#include <boost/test/unit_test.hpp>
#include <boost/test/floating_point_comparison.hpp>
/* --- our own headers --- */
#include <algorithm>
#include <vector>
#include <opm/core/grid.h>
#include <opm/core/grid/cornerpoint_grid.h> /* compute_geometry */
#include <opm/core/grid/GridManager.hpp> /* compute_geometry */
#include <opm/parser/eclipse/Parser/Parser.hpp>
#include <opm/parser/eclipse/Deck/Deck.hpp>
using namespace std;
BOOST_AUTO_TEST_CASE(Equal) {
const std::string filename1 = "CORNERPOINT_ACTNUM.DATA";
const char *deck2Data =
"RUNSPEC\n"
"\n"
"DIMENS\n"
" 10 10 10 /\n"
"GRID\n"
"DXV\n"
"10*0.25 /\n"
"DYV\n"
"10*0.25 /\n"
"DZV\n"
"10*0.25 /\n"
"TOPS\n"
"100*0.25 /\n"
"EDIT\n"
"\n";
Opm::ParserPtr parser(new Opm::Parser() );
Opm::DeckConstPtr deck1 = parser->parseFile( filename1 );
Opm::DeckConstPtr deck2 = parser->parseString( deck2Data );
Opm::GridManager grid1(deck1);
Opm::GridManager grid2(deck2);
const UnstructuredGrid* cgrid1 = grid1.c_grid();
const UnstructuredGrid* cgrid2 = grid2.c_grid();
BOOST_CHECK( grid_equal( cgrid1 , cgrid1 ));
BOOST_CHECK( grid_equal( cgrid2 , cgrid2 ));
BOOST_CHECK( !grid_equal( cgrid1 , cgrid2 ));
}