mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-01-11 00:41:56 -06:00
Moved all remaining files out of opm/autodiff.
This commit is contained in:
parent
a33cfbf0bc
commit
fa016a6008
@ -24,7 +24,6 @@
|
|||||||
# find opm -name '*.c*' -printf '\t%p\n' | sort
|
# find opm -name '*.c*' -printf '\t%p\n' | sort
|
||||||
list (APPEND MAIN_SOURCE_FILES
|
list (APPEND MAIN_SOURCE_FILES
|
||||||
ebos/nncsorter.cpp
|
ebos/nncsorter.cpp
|
||||||
opm/autodiff/MPIUtilities.cpp
|
|
||||||
opm/core/props/rock/RockFromDeck.cpp
|
opm/core/props/rock/RockFromDeck.cpp
|
||||||
opm/core/props/satfunc/RelpermDiagnostics.cpp
|
opm/core/props/satfunc/RelpermDiagnostics.cpp
|
||||||
opm/core/simulator/SimulatorReport.cpp
|
opm/core/simulator/SimulatorReport.cpp
|
||||||
@ -123,16 +122,11 @@ list (APPEND TEST_DATA_FILES
|
|||||||
# originally generated with the command:
|
# originally generated with the command:
|
||||||
# find opm -name '*.h*' -a ! -name '*-pch.hpp' -printf '\t%p\n' | sort
|
# find opm -name '*.h*' -a ! -name '*-pch.hpp' -printf '\t%p\n' | sort
|
||||||
list (APPEND PUBLIC_HEADER_FILES
|
list (APPEND PUBLIC_HEADER_FILES
|
||||||
opm/autodiff/BlackoilDetails.hpp
|
opm/simulators/flow/countGlobalCells.hpp
|
||||||
opm/simulators/flow/BlackoilModelEbos.hpp
|
opm/simulators/flow/BlackoilModelEbos.hpp
|
||||||
opm/simulators/flow/BlackoilModelParametersEbos.hpp
|
opm/simulators/flow/BlackoilModelParametersEbos.hpp
|
||||||
opm/autodiff/createGlobalCellArray.hpp
|
|
||||||
opm/simulators/flow/FlowMainEbos.hpp
|
opm/simulators/flow/FlowMainEbos.hpp
|
||||||
opm/autodiff/GridInit.hpp
|
|
||||||
opm/autodiff/IterationReport.hpp
|
|
||||||
opm/autodiff/MPIUtilities.hpp
|
|
||||||
opm/simulators/flow/NonlinearSolverEbos.hpp
|
opm/simulators/flow/NonlinearSolverEbos.hpp
|
||||||
opm/autodiff/SimFIBODetails.hpp
|
|
||||||
opm/simulators/flow/SimulatorFullyImplicitBlackoilEbos.hpp
|
opm/simulators/flow/SimulatorFullyImplicitBlackoilEbos.hpp
|
||||||
opm/simulators/flow/MissingFeatures.hpp
|
opm/simulators/flow/MissingFeatures.hpp
|
||||||
opm/core/props/BlackoilPhases.hpp
|
opm/core/props/BlackoilPhases.hpp
|
||||||
@ -194,6 +188,7 @@ list (APPEND PUBLIC_HEADER_FILES
|
|||||||
opm/simulators/utils/gatherDeferredLogger.hpp
|
opm/simulators/utils/gatherDeferredLogger.hpp
|
||||||
opm/simulators/utils/moduleVersion.hpp
|
opm/simulators/utils/moduleVersion.hpp
|
||||||
opm/simulators/wells/RateConverter.hpp
|
opm/simulators/wells/RateConverter.hpp
|
||||||
|
opm/simulators/wells/SimFIBODetails.hpp
|
||||||
opm/simulators/wells/WellConnectionAuxiliaryModule.hpp
|
opm/simulators/wells/WellConnectionAuxiliaryModule.hpp
|
||||||
opm/simulators/wells/WellStateFullyImplicitBlackoil.hpp
|
opm/simulators/wells/WellStateFullyImplicitBlackoil.hpp
|
||||||
opm/simulators/wells/VFPProperties.hpp
|
opm/simulators/wells/VFPProperties.hpp
|
||||||
|
@ -1,143 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2015 SINTEF ICT, Applied Mathematics.
|
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
|
||||||
|
|
||||||
OPM is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OPM is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef OPM_GRIDINIT_HEADER_INCLUDED
|
|
||||||
#define OPM_GRIDINIT_HEADER_INCLUDED
|
|
||||||
|
|
||||||
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
|
||||||
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
|
|
||||||
#include <opm/grid/GridManager.hpp>
|
|
||||||
|
|
||||||
#if HAVE_OPM_GRID
|
|
||||||
#include <opm/grid/polyhedralgrid.hh>
|
|
||||||
#include <opm/grid/CpGrid.hpp>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
namespace Opm
|
|
||||||
{
|
|
||||||
|
|
||||||
/// A class intended to give a generic interface to
|
|
||||||
/// initializing and accessing UnstructuredGrid and CpGrid,
|
|
||||||
/// using specialized templates to accomplish this.
|
|
||||||
template <class Grid>
|
|
||||||
class GridInit
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/// Initialize from a deck and/or an eclipse state and (logical cartesian) specified pore volumes.
|
|
||||||
GridInit(const EclipseState&, const std::vector<double>&)
|
|
||||||
{
|
|
||||||
OPM_THROW(std::logic_error, "Found no specialization for GridInit for the requested Grid class.");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/// Specialization for UnstructuredGrid.
|
|
||||||
template <>
|
|
||||||
class GridInit<UnstructuredGrid>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/// Initialize from a deck and/or an eclipse state and (logical cartesian) specified pore volumes.
|
|
||||||
GridInit(const EclipseState& eclipse_state, const std::vector<double>& porv)
|
|
||||||
: grid_manager_(eclipse_state.getInputGrid(), porv)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
/// Access the created grid.
|
|
||||||
const UnstructuredGrid& grid()
|
|
||||||
{
|
|
||||||
return *grid_manager_.c_grid();
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
GridManager grid_manager_;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#if HAVE_OPM_GRID
|
|
||||||
/// Specialization for PolyhedralGrid.
|
|
||||||
template < int dim, int dimworld >
|
|
||||||
class GridInit< Dune::PolyhedralGrid< dim, dimworld > >
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef Dune::PolyhedralGrid< dim, dimworld > Grid;
|
|
||||||
/// Initialize from a deck and/or an eclipse state and (logical cartesian) specified pore volumes.
|
|
||||||
GridInit(const EclipseState& eclipse_state, const std::vector<double>& porv)
|
|
||||||
: grid_manager_(eclipse_state.getInputGrid(), porv),
|
|
||||||
grid_( *grid_manager_.c_grid() )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Access the created grid.
|
|
||||||
const Grid& grid()
|
|
||||||
{
|
|
||||||
return grid_;
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
GridManager grid_manager_;
|
|
||||||
Grid grid_;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/// Specialization for CpGrid.
|
|
||||||
template <>
|
|
||||||
class GridInit<Dune::CpGrid>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
GridInit()
|
|
||||||
{
|
|
||||||
gridSelfManaged_ = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Initialize from a deck and/or an eclipse state and (logical cartesian) specified pore volumes.
|
|
||||||
GridInit(const EclipseState& eclipse_state, const std::vector<double>& porv)
|
|
||||||
{
|
|
||||||
gridSelfManaged_ = true;
|
|
||||||
|
|
||||||
grid_ = new Dune::CpGrid;
|
|
||||||
grid_->processEclipseFormat(eclipse_state.getInputGrid(), false, false, false, porv);
|
|
||||||
}
|
|
||||||
|
|
||||||
~GridInit()
|
|
||||||
{
|
|
||||||
if (gridSelfManaged_)
|
|
||||||
delete grid_;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Access the created grid. Note that mutable access may be required for load balancing.
|
|
||||||
Dune::CpGrid& grid()
|
|
||||||
{
|
|
||||||
return *grid_;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// set the grid from the outside
|
|
||||||
void setGrid(Dune::CpGrid& newGrid)
|
|
||||||
{
|
|
||||||
gridSelfManaged_ = false;
|
|
||||||
grid_ = &newGrid;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
Dune::CpGrid* grid_;
|
|
||||||
bool gridSelfManaged_;
|
|
||||||
};
|
|
||||||
#endif // HAVE_OPM_GRID
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace Opm
|
|
||||||
|
|
||||||
#endif // OPM_GRIDINIT_HEADER_INCLUDED
|
|
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2013, 2015 SINTEF ICT, Applied Mathematics.
|
|
||||||
Copyright 2014, 2015 Statoil ASA.
|
|
||||||
Copyright 2014, 2015 Dr. Markus Blatt - HPC-Simulation-Software & Services
|
|
||||||
Copyright 2015 NTNU
|
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
|
||||||
|
|
||||||
OPM is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OPM is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef OPM_ITERATION_REPORT_HEADER_INCLUDED
|
|
||||||
#define OPM_ITERATION_REPORT_HEADER_INCLUDED
|
|
||||||
|
|
||||||
namespace Opm {
|
|
||||||
/// Class used for reporting the outcome of a nonlinearIteration() call.
|
|
||||||
struct IterationReport
|
|
||||||
{
|
|
||||||
bool failed;
|
|
||||||
bool converged;
|
|
||||||
int linear_iterations;
|
|
||||||
int well_iterations;
|
|
||||||
};
|
|
||||||
} // namespace Opm
|
|
||||||
|
|
||||||
#endif // OPM_ITERATION_REPORT_HEADER_INCLUDED
|
|
@ -1,44 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2014 SINTEF ICT, Applied Mathematics.
|
|
||||||
Copyright 2014 IRIS AS
|
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
|
||||||
|
|
||||||
OPM is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OPM is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <boost/any.hpp>
|
|
||||||
#include <opm/simulators/linalg/ParallelIstlInformation.hpp>
|
|
||||||
|
|
||||||
namespace Opm
|
|
||||||
{
|
|
||||||
/// Return true if this is a serial run, or rank zero on an MPI run.
|
|
||||||
bool isIORank(const boost::any& parallel_info)
|
|
||||||
{
|
|
||||||
#if HAVE_MPI
|
|
||||||
if (parallel_info.type() == typeid(ParallelISTLInformation)) {
|
|
||||||
const ParallelISTLInformation& info =
|
|
||||||
boost::any_cast<const ParallelISTLInformation&>(parallel_info);
|
|
||||||
return info.communicator().rank() == 0;
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static_cast<void>(parallel_info); // Suppress unused argument warning.
|
|
||||||
return true;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
} // namespace Opm
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2015 Andreas Lauser
|
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
|
||||||
|
|
||||||
OPM is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OPM is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#ifndef OPM_CREATE_GLOBAL_CELL_ARRAY_HPP
|
|
||||||
#define OPM_CREATE_GLOBAL_CELL_ARRAY_HPP
|
|
||||||
|
|
||||||
#include <opm/grid/GridHelpers.hpp>
|
|
||||||
|
|
||||||
namespace Opm
|
|
||||||
{
|
|
||||||
/*!
|
|
||||||
* \brief Create a mapping from a global cell index of a grid to the logically
|
|
||||||
* Cartesian index of the ECL deck.
|
|
||||||
*/
|
|
||||||
template <class Grid>
|
|
||||||
void createGlobalCellArray(const Grid &grid, std::vector<int>& dest)
|
|
||||||
{
|
|
||||||
int numCells = Opm::UgGridHelpers::numCells(grid);
|
|
||||||
dest.resize(numCells);
|
|
||||||
const auto& globalCell = Opm::UgGridHelpers::globalCell(grid);
|
|
||||||
std::vector<int> compressedToCartesianIdx(numCells);
|
|
||||||
for (int cellIdx = 0; cellIdx < numCells; ++cellIdx) {
|
|
||||||
if (globalCell) {
|
|
||||||
dest[cellIdx] = globalCell[cellIdx];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dest[cellIdx] = cellIdx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2013, 2016 SINTEF ICT, Applied Mathematics.
|
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
|
||||||
|
|
||||||
OPM is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
OPM is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef OPM_OPM-SIMULATORS_DOXYGEN_MAIN_HEADER_INCLUDED
|
|
||||||
#define OPM_OPM-SIMULATORS_DOXYGEN_MAIN_HEADER_INCLUDED
|
|
||||||
|
|
||||||
|
|
||||||
/** \mainpage Documentation for the opm-simulators library.
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Solvers and simulators</h3>
|
|
||||||
|
|
||||||
The opm-simulators module contains a diverse set of simulator programs.
|
|
||||||
Notable simulator programs include
|
|
||||||
- examples/flow.cpp, a fully implicit black-oil simulator.
|
|
||||||
- examples/flow_polymer.cpp, a version of Flow that supports polymer EOR simulation
|
|
||||||
- examples/flow_solvent.cpp, a version of Flow that supports solvent EOR simulation
|
|
||||||
- examples/sim_2p_incomp_ad.cpp, a sequential incompressible 2-phase simulator.
|
|
||||||
|
|
||||||
<h3>Automatic differentiation</h3>
|
|
||||||
|
|
||||||
This library implements automatic differentiation for vector data with
|
|
||||||
multiple blocks of sparse jacobians. This is contained in the class
|
|
||||||
Opm::AutoDiffBlock. Also available is Opm::AutoDiff, a much simpler
|
|
||||||
single-value single-derivative AD class.
|
|
||||||
|
|
||||||
There are also some helper classes and functions that are intended to
|
|
||||||
aid in the development of solvers and simulators with AD, these
|
|
||||||
include Opm::HelperOps, Opm::UpwindSelector, Opm::subset,
|
|
||||||
Opm::superset, Opm::Selector, Opm::collapseJacs, Opm::vertcat,
|
|
||||||
Opm::Span and Opm::sign.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif // OPM_OPM-SIMULATORS_DOXYGEN_MAIN_HEADER_INCLUDED
|
|
@ -34,7 +34,7 @@
|
|||||||
#include <opm/simulators/wells/BlackoilWellModel.hpp>
|
#include <opm/simulators/wells/BlackoilWellModel.hpp>
|
||||||
#include <opm/simulators/aquifers/BlackoilAquiferModel.hpp>
|
#include <opm/simulators/aquifers/BlackoilAquiferModel.hpp>
|
||||||
#include <opm/simulators/wells/WellConnectionAuxiliaryModule.hpp>
|
#include <opm/simulators/wells/WellConnectionAuxiliaryModule.hpp>
|
||||||
#include <opm/autodiff/BlackoilDetails.hpp>
|
#include <opm/simulators/flow/countGlobalCells.hpp>
|
||||||
|
|
||||||
#include <opm/grid/UnstructuredGrid.h>
|
#include <opm/grid/UnstructuredGrid.h>
|
||||||
#include <opm/core/simulator/SimulatorReport.hpp>
|
#include <opm/core/simulator/SimulatorReport.hpp>
|
||||||
@ -64,7 +64,6 @@
|
|||||||
#include <limits>
|
#include <limits>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
//#include <fstream>
|
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROPERTIES
|
BEGIN_PROPERTIES
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
#include <opm/simulators/linalg/MatrixBlock.hpp>
|
#include <opm/simulators/linalg/MatrixBlock.hpp>
|
||||||
#include <opm/simulators/linalg/BlackoilAmg.hpp>
|
#include <opm/simulators/linalg/BlackoilAmg.hpp>
|
||||||
#include <opm/simulators/linalg/CPRPreconditioner.hpp>
|
#include <opm/simulators/linalg/CPRPreconditioner.hpp>
|
||||||
#include <opm/autodiff/MPIUtilities.hpp>
|
|
||||||
#include <opm/simulators/linalg/ParallelRestrictedAdditiveSchwarz.hpp>
|
#include <opm/simulators/linalg/ParallelRestrictedAdditiveSchwarz.hpp>
|
||||||
#include <opm/simulators/linalg/ParallelOverlappingILU0.hpp>
|
#include <opm/simulators/linalg/ParallelOverlappingILU0.hpp>
|
||||||
#include <opm/simulators/linalg/ExtractParallelGridInformationToISTL.hpp>
|
#include <opm/simulators/linalg/ExtractParallelGridInformationToISTL.hpp>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2015 SINTEF ICT, Applied Mathematics.
|
Copyright 2013, 2016 SINTEF ICT, Applied Mathematics.
|
||||||
|
|
||||||
This file is part of the Open Porous Media project (OPM).
|
This file is part of the Open Porous Media project (OPM).
|
||||||
|
|
||||||
@ -17,16 +17,19 @@
|
|||||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef OPM_MPIUTILITIES_HEADER_INCLUDED
|
#ifndef OPM_OPM-SIMULATORS_DOXYGEN_MAIN_HEADER_INCLUDED
|
||||||
#define OPM_MPIUTILITIES_HEADER_INCLUDED
|
#define OPM_OPM-SIMULATORS_DOXYGEN_MAIN_HEADER_INCLUDED
|
||||||
|
|
||||||
#include <boost/any.hpp>
|
|
||||||
|
|
||||||
namespace Opm
|
/** \mainpage Documentation for the opm-simulators library.
|
||||||
{
|
|
||||||
/// Return true if this is a serial run, or rank zero on an MPI run.
|
|
||||||
bool isIORank(const boost::any& parallel_info);
|
|
||||||
|
|
||||||
} // namespace Opm
|
|
||||||
|
|
||||||
#endif // OPM_MPIUTILITIES_HEADER_INCLUDED
|
<h3>Solvers and simulators</h3>
|
||||||
|
|
||||||
|
The opm-simulators module is the home for the Flow reservoir
|
||||||
|
simulator, the Ebos experimental simulator and library functionality
|
||||||
|
on which they both depend.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif // OPM_OPM-SIMULATORS_DOXYGEN_MAIN_HEADER_INCLUDED
|
@ -41,14 +41,13 @@
|
|||||||
#include <opm/core/simulator/SimulatorReport.hpp>
|
#include <opm/core/simulator/SimulatorReport.hpp>
|
||||||
#include <opm/simulators/wells/VFPInjProperties.hpp>
|
#include <opm/simulators/wells/VFPInjProperties.hpp>
|
||||||
#include <opm/simulators/wells/VFPProdProperties.hpp>
|
#include <opm/simulators/wells/VFPProdProperties.hpp>
|
||||||
#include <opm/autodiff/BlackoilDetails.hpp>
|
#include <opm/simulators/flow/countGlobalCells.hpp>
|
||||||
#include <opm/simulators/wells/WellStateFullyImplicitBlackoil.hpp>
|
#include <opm/simulators/wells/WellStateFullyImplicitBlackoil.hpp>
|
||||||
#include <opm/simulators/wells/RateConverter.hpp>
|
#include <opm/simulators/wells/RateConverter.hpp>
|
||||||
#include <opm/simulators/wells/WellInterface.hpp>
|
#include <opm/simulators/wells/WellInterface.hpp>
|
||||||
#include <opm/simulators/wells/StandardWell.hpp>
|
#include <opm/simulators/wells/StandardWell.hpp>
|
||||||
#include <opm/simulators/wells/MultisegmentWell.hpp>
|
#include <opm/simulators/wells/MultisegmentWell.hpp>
|
||||||
#include <opm/simulators/timestepping/gatherConvergenceReport.hpp>
|
#include <opm/simulators/timestepping/gatherConvergenceReport.hpp>
|
||||||
#include <opm/autodiff/SimFIBODetails.hpp>
|
|
||||||
#include <dune/common/fmatrix.hh>
|
#include <dune/common/fmatrix.hh>
|
||||||
#include <dune/istl/bcrsmatrix.hh>
|
#include <dune/istl/bcrsmatrix.hh>
|
||||||
#include <dune/istl/matrixmatrix.hh>
|
#include <dune/istl/matrixmatrix.hh>
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
|
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
|
||||||
|
#include <opm/simulators/wells/SimFIBODetails.hpp>
|
||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
template<typename TypeTag>
|
template<typename TypeTag>
|
||||||
|
@ -43,8 +43,6 @@
|
|||||||
#include <opm/grid/GridHelpers.hpp>
|
#include <opm/grid/GridHelpers.hpp>
|
||||||
#include <opm/simulators/flow/FlowMainEbos.hpp>
|
#include <opm/simulators/flow/FlowMainEbos.hpp>
|
||||||
#include <opm/simulators/flow/BlackoilModelEbos.hpp>
|
#include <opm/simulators/flow/BlackoilModelEbos.hpp>
|
||||||
#include <opm/autodiff/createGlobalCellArray.hpp>
|
|
||||||
#include <opm/autodiff/GridInit.hpp>
|
|
||||||
|
|
||||||
#include <ebos/eclproblem.hh>
|
#include <ebos/eclproblem.hh>
|
||||||
#include <ewoms/common/start.hh>
|
#include <ewoms/common/start.hh>
|
||||||
@ -58,12 +56,13 @@
|
|||||||
#include <dune/common/parallel/mpihelper.hh>
|
#include <dune/common/parallel/mpihelper.hh>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using StandardWell = Opm::StandardWell<TTAG(EclFlowProblem)>;
|
using StandardWell = Opm::StandardWell<TTAG(EclFlowProblem)>;
|
||||||
|
|
||||||
struct SetupTest {
|
struct SetupTest {
|
||||||
|
|
||||||
using Grid = UnstructuredGrid;
|
using Grid = UnstructuredGrid;
|
||||||
using GridInit = Opm::GridInit<Grid>;
|
|
||||||
|
|
||||||
SetupTest ()
|
SetupTest ()
|
||||||
{
|
{
|
||||||
@ -81,12 +80,8 @@ struct SetupTest {
|
|||||||
const std::vector<double>& porv =
|
const std::vector<double>& porv =
|
||||||
ecl_state->get3DProperties().getDoubleGridProperty("PORV").getData();
|
ecl_state->get3DProperties().getDoubleGridProperty("PORV").getData();
|
||||||
|
|
||||||
std::unique_ptr<GridInit> grid_init(new GridInit(*ecl_state, porv));
|
Opm::GridManager gm(ecl_state->getInputGrid(), porv);
|
||||||
const Grid& grid = grid_init->grid();
|
const Grid& grid = *(gm.c_grid());
|
||||||
|
|
||||||
// Create material law manager.
|
|
||||||
std::vector<int> compressed_to_cartesianIdx;
|
|
||||||
Opm::createGlobalCellArray(grid, compressed_to_cartesianIdx);
|
|
||||||
|
|
||||||
current_timestep = 0;
|
current_timestep = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user