36#ifndef OPENRS_SIMULATORBASE_HEADER
37#define OPENRS_SIMULATORBASE_HEADER
40#include <opm/common/utility/parameters/ParameterGroup.hpp>
42#include <opm/common/utility/numeric/SparseVector.hpp>
43#include <opm/grid/utility/SparseTable.hpp>
44#include <opm/input/eclipse/Units/Units.hpp>
46#include <opm/grid/common/Volumes.hpp>
47#include <opm/grid/CpGrid.hpp>
63#include <opm/common/utility/platform_dependent/disable_warnings.h>
65#include <dune/grid/yaspgrid.hh>
67#include <opm/common/utility/platform_dependent/reenable_warnings.h>
84 template <
class SimTraits>
103 void init(
const Opm::ParameterGroup& param)
113 std::cout <<
"==================== Unused parameters: ====================\n";
114 param.displayUsage();
115 std::cout <<
"================================================================\n";
121 typedef Dune::FieldVector<double, Dimension>
Vector;
160 gravity_[0] = param.getDefault(
"gx", 0.0);
161 gravity_[1] = param.getDefault(
"gy", 0.0);
162 gravity_[2] = param.getDefault(
"gz", 0.0);
167 if (param.getDefault(
"init_saturation_from_file",
false)) {
168 std::string filename = param.get<std::string>(
"init_saturation_filename");
169 std::ifstream satfile(filename.c_str());
171 OPM_THROW(std::runtime_error,
"Could not open initial saturation file: " + filename);
176 OPM_THROW(std::runtime_error,
177 "Number of saturation values claimed different "
178 "from number of grid cells: " +
179 std::to_string(num_sats) +
182 std::istream_iterator<double> beg(satfile);
183 std::istream_iterator<double> end;
186 OPM_THROW(std::runtime_error,
187 "Number of saturation values claimed different "
188 "from actual file content: " +
189 std::to_string(num_sats) +
193 double init_s = param.getDefault(
"init_saturation", 0.0);
Definition: GridInterfaceEuler.hpp:368
Intersection (face) iterator for solver-near grid interface.
Definition: GridInterfaceEuler.hpp:241
void init(const DuneGrid &grid, bool build_facemap=true)
Definition: GridInterfaceEuler.hpp:428
int numberOfCells() const
Definition: GridInterfaceEuler.hpp:444
Definition: SimulatorBase.hpp:86
Opm::SparseVector< double > injection_rates_
Definition: SimulatorBase.hpp:142
Vector gravity_
Definition: SimulatorBase.hpp:133
double stepsize_
Definition: SimulatorBase.hpp:131
ResProp res_prop_
Definition: SimulatorBase.hpp:140
std::vector< double > injection_rates_psolver_
Definition: SimulatorBase.hpp:143
TransportSolver transport_solver_
Definition: SimulatorBase.hpp:145
virtual void initBoundaryConditions(const Opm::ParameterGroup ¶m)
Definition: SimulatorBase.hpp:199
GridType grid_
Definition: SimulatorBase.hpp:138
virtual void initSolvers(const Opm::ParameterGroup ¶m)
Definition: SimulatorBase.hpp:215
int linsolver_verbosity_
Definition: SimulatorBase.hpp:135
virtual void initControl(const Opm::ParameterGroup ¶m)
Definition: SimulatorBase.hpp:148
@ Dimension
Definition: SimulatorBase.hpp:120
void init(const Opm::ParameterGroup ¶m)
Initialization from parameters.
Definition: SimulatorBase.hpp:103
SimTraits::template FlowSolver< GridInterface, BCs >::Type FlowSolver
Definition: SimulatorBase.hpp:127
Dune::CpGrid GridType
Definition: SimulatorBase.hpp:119
FlowSolver flow_solver_
Definition: SimulatorBase.hpp:144
int linsolver_type_
Definition: SimulatorBase.hpp:136
BasicBoundaryConditions< true, true > BCs
Definition: SimulatorBase.hpp:126
GridInterface ginterf_
Definition: SimulatorBase.hpp:139
SimTraits::template ResProp< Dimension >::Type ResProp
Definition: SimulatorBase.hpp:122
SimTraits::template TransportSolver< GridInterface, BCs >::Type TransportSolver
Definition: SimulatorBase.hpp:128
virtual void initSources(const Opm::ParameterGroup &)
Definition: SimulatorBase.hpp:204
BCs bcond_
Definition: SimulatorBase.hpp:141
double residual_tolerance_
Definition: SimulatorBase.hpp:134
virtual void initGridAndProps(const Opm::ParameterGroup ¶m)
Definition: SimulatorBase.hpp:155
std::vector< double > init_saturation_
Definition: SimulatorBase.hpp:132
int simulation_steps_
Definition: SimulatorBase.hpp:130
Dune::FieldVector< double, Dimension > Vector
Definition: SimulatorBase.hpp:121
virtual void initInitialConditions(const Opm::ParameterGroup ¶m)
Definition: SimulatorBase.hpp:165
GridInterfaceEuler< GridType > GridInterface
Definition: SimulatorBase.hpp:123
GridInterface::CellIterator CellIter
Definition: SimulatorBase.hpp:124
CellIter::FaceIterator FaceIter
Definition: SimulatorBase.hpp:125
SimulatorBase()
Definition: SimulatorBase.hpp:91
Definition: ImplicitAssembly.hpp:43
void setupBoundaryConditions(const Opm::ParameterGroup ¶m, const GridInterface &g, BCs &bcs)
Setup boundary conditions for a simulation. It is assumed that the boundary ids are 1-6,...
Definition: setupBoundaryConditions.hpp:51
void setupGridAndProps(const Opm::ParameterGroup ¶m, Dune::CpGrid &grid, ResProp< 3 > &res_prop)
Definition: setupGridAndProps.hpp:71