Commit Graph

1206 Commits

Author SHA1 Message Date
Arne Morten Kvarving
2a133b615e changed: move the NewtonTolerance parameter to Opm::Parameters 2024-07-01 15:40:56 +02:00
Arne Morten Kvarving
c54fb7816f changed: move the NewtonWriteConvergence parameter to Opm::Parameters 2024-07-01 14:13:34 +02:00
Arne Morten Kvarving
59a246e178 changed: move setting of default vanguard to basicproperties.hh
use forwarding to avoid including dgfvanguard.hh unless it is actually
used
2024-07-01 10:13:03 +02:00
Arne Morten Kvarving
23e9bc5ebc cosmetics 2024-07-01 09:46:45 +02:00
Arne Morten Kvarving
67bb6717f3 changed: move the EnableStorageCache parameter to Opm::Parameters 2024-07-01 09:46:45 +02:00
Arne Morten Kvarving
e3222a6dd6 changed: move the EnableIntensiveQuantitiesCache parameter to Opm::Parameters 2024-07-01 09:46:45 +02:00
Arne Morten Kvarving
eaa75856c6 changed: move the MaxTimeStepSize parameter to Opm::Parameters 2024-07-01 09:46:45 +02:00
Arne Morten Kvarving
bd4ed90b78 fixed: don't use a runtime-parameter as a typetag property
since this is unused in any case, just remove it
2024-06-28 11:20:01 +02:00
Bård Skaflestad
26cd7ab993 Move opm/core/props to opm/simulators/utils
The opm/core directory is no longer meaningful, and it contains only
components which might collectively be described as simulator
utilities.
2024-06-25 12:22:09 +02:00
Bård Skaflestad
a3a2b7a978 Make SummaryState Objects Aware of Undefined UDQ Value
This PR switches to calling the SummaryState constructor which is
aware of the value of undefined UDQs (OPM/opm-common#4052) directly.

While here, also sort headers, split some long lines, and prefer
initialisation lists to constructor body assignments.
2024-05-29 09:16:56 +02:00
Arne Morten Kvarving
d5d16eaee4 VFPHelpers: move some functions into a class with static members
and template Scalar type
2024-05-21 17:01:30 +02:00
Arne Morten Kvarving
3747981347 VFPProperties: template Scalar type 2024-05-21 17:01:30 +02:00
Arne Morten Kvarving
be57843296 WellState: template Scalar type 2024-04-17 11:12:40 +02:00
Arne Morten Kvarving
078b0e8679 remove macro EWOMS_GET_PARAM 2024-04-05 14:54:53 +02:00
Bård Skaflestad
bdb93b6e62 Merge pull request #890 from akva2/remove_ewoms_register_param_macro
Remove ewoms register param macro
2024-04-05 12:42:27 +02:00
Arne Morten Kvarving
48fa0f3c59 drop macro EWOMS_REGISTER_PARAM 2024-04-05 10:05:30 +02:00
Arne Morten Kvarving
6103383c1a fixed: inconsistent parameter setups
registered as int and obtained as unsigned, or registered
as Scalar and obtained as int
2024-04-04 14:34:37 +02:00
Arne Morten Kvarving
96a3a6d45a changed: move hdf5serializer to opm/simulators/utils/HDF5Serializer.hpp
does not interact with typetag system
2024-01-29 09:42:49 +01:00
Kai Bao
b9131f7a63 adapting to the changes in GenericOilGasFluidSystem 2024-01-17 12:10:03 +01:00
Kai Bao
8b9e8aefee using GenericFluidSystem for co2ptflash problem 2024-01-17 12:10:03 +01:00
Kai Bao
55b8aa7ceb updating based on review comments. 2023-11-22 10:25:28 +01:00
Kai Bao
9f0fb32713 various cleaning up and refactoring for co2 ptflash simulation 2023-11-21 15:52:56 +01:00
Trine Mykkeltvedt
83cb5670b7 a simple 1D test demonstrating the usage of the PTFlash compostional modeling 2023-11-21 15:52:56 +01:00
Arne Morten Kvarving
e5c7d67372 fixed: these fields are ROOT_ONLY 2023-04-24 09:57:40 +02:00
Arne Morten Kvarving
adeb67ddbe fixed: initialize MPI before creating communicator 2023-04-24 09:57:26 +02:00
Arne Morten Kvarving
4cb870d7cf Merge pull request #788 from akva2/require_dune_2.7
minimum dune version required is now 2.7
2023-04-12 11:30:14 +02:00
Arne Morten Kvarving
c9058c5dee fixed: building co2 flash simulators with quad math
- HAVE_QUAD is not a config variable, it should only
  be set on targets that wants to use quad (by linking to
  QuadMath::QuadMath)
- the parallelbicgstabbackend is broken. however, the amg backend
  works fine for these simulators now.
- we only build the simulators. runtime is 5+ minutes
  per simulator.
2023-03-09 12:33:49 +01:00
Arne Morten Kvarving
dcc67bd11d minimum dune version required is now 2.7 2023-02-27 09:47:39 +01:00
Bård Skaflestad
e861d72f78 Use Uniform Initialization
Avoids "most vexing parse" for non-MPI builds.
2023-02-16 17:32:04 +01:00
Arne Morten Kvarving
8c3400f562 added: parallel support to HDF5File / HDF5Serializer 2023-02-16 14:49:38 +01:00
Arne Morten Kvarving
6c9e887669 add simple inspection tool for .OPMRST files 2023-02-16 13:47:54 +01:00
Arne Morten Kvarving
7a24173717 fvbaseproperties: forward ParallelBiCGStabLinearSolver 2023-01-19 15:33:40 +01:00
Arne Morten Kvarving
059d1fa095 adjust to upstream CO2Table encapsulation 2022-12-15 14:03:35 +01:00
Arne Morten Kvarving
c57e37fffe use exception classes from opm-common 2022-12-13 12:55:20 +01:00
Arne Morten Kvarving
555b4e7ce2 adjust to upstream GasPvtApproach enum changes 2022-12-12 19:18:58 +01:00
Arne Morten Kvarving
07fb8ed2c2 adjust to upstream OilPvtApproach enum changes 2022-12-12 19:18:58 +01:00
Arne Morten Kvarving
5dc8c12cd8 adjust to upstream WaterPvtApproach enum changes 2022-12-12 19:18:58 +01:00
Arne Morten Kvarving
820cc1e9f9 FingerProblem: use elements range generator 2022-10-17 13:37:44 +02:00
Arne Morten Kvarving
8cd61e7240 RichardsLensProblem: use elements range generator 2022-10-17 13:37:44 +02:00
Tor Harald Sandve
9364d4c54b Add option for wvfpexp item 2 plus minor fixes 2022-08-19 10:33:19 +02:00
Tor Harald Sandve
e875849497 Adapt test cases and vfpprint 2022-08-19 10:33:19 +02:00
Atgeirr Flø Rasmussen
c0f3b0072b Remove Unused.hpp inclusion. 2022-08-09 16:14:27 +02:00
Bård Skaflestad
326449fe0b Fix Build After "Unused.hpp" Removal
Needed for configurations that don't have Dune-localfunctions or
which *do* have ALUGrid.
2022-08-04 15:12:33 +02:00
Arne Morten Kvarving
d6c378e6a9 remove use of Unused.hpp 2022-08-02 11:24:40 +02:00
Tor Harald Sandve
f513662aa9 Add transflux module and a test that uses it
Compute flux based on transmissibilites. The permeability is assumed to be diagonal and alligned with the local cell
2022-04-07 10:46:31 +02:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00
Arne Morten Kvarving
c1f19b7447 disable conservativeness check
the check causes a segfault in release mode only on gcc9+
2021-10-27 09:56:09 +02:00
Arne Morten Kvarving
c76803b913 changed: make bhp template hidden and use explicit instantations
this to avoid includes in headers.
2021-05-31 11:42:29 +02:00
Arne Morten Kvarving
58dfda3082 adjust to enum changes in upstream 2021-05-05 21:59:50 +02:00
Arne Morten Kvarving
a4c5429341 fixed: include required headers where needed 2021-04-26 22:39:32 +02:00
Joakim Hove
74ca0d12e0 Use std::chrono::system_clock with 1/1000 second resolution 2021-02-25 23:50:25 +01:00
Joakim Hove
e4789d4eb7 Use std::reference_wrapper for VFP tables 2021-01-26 07:56:59 +01:00
Joakim Hove
17fcdfc87a Use ScheduleState to handle VFP propertes + simplifications 2021-01-14 19:22:34 +01:00
Atgeirr Flø Rasmussen
52c695937b Implement extended network model. 2020-10-15 10:54:03 +02:00
Markus Blatt
580f378e85 Use correct number of template arguments for fracture mode DUNE>2.7
The layout parameter has been deprecated some time ago and now removed
in DUNE > 2.7. This commit fixes its last usage in opm-models makes it
compiler with DUNE master.
2020-08-10 19:31:55 +02:00
Bernd Flemisch
d72de0f308 [cleanup] replace typedef by using 2020-06-10 13:49:42 +02:00
Bernd Flemisch
bdb7bac3e8 [properties] replace remaining macro calls 2020-06-10 13:07:19 +02:00
Bernd Flemisch
b809e9a4f7 [properties] replace SET_STRING_PROP calls
It's not possible to have `constexpr std::string`s in C++17. Taking
`std::string_view` gives conversion errors. Since this is all temporary
and will be replaced by pure runtime parameters anyway, use string
literals for the moment.
2020-06-09 11:15:16 +02:00
Bernd Flemisch
3ba67ebaa8 [properties] replace SET_TAG_PROP calls 2020-06-09 10:55:25 +02:00
Bernd Flemisch
cbffa2a7ba [properties] replace SET_SCALAR_PROP calls 2020-06-09 10:43:28 +02:00
Bernd Flemisch
725c022e69 [properties] replace BEGIN/END_PROPERTIES macro calls 2020-06-08 17:11:48 +02:00
Bernd Flemisch
880c5223ac [properties] replace macro calls by native C++ 2020-06-08 16:41:02 +02:00
Atgeirr Flø Rasmussen
cb3165e681 Add a small utility to print a slice of a VFP table. 2020-05-20 11:27:28 +02:00
Markus Blatt
431d5718e2 Fixed missing conversion ewoms->opm-models in header includes, 2019-10-24 14:19:54 +02:00
Arne Morten Kvarving
88a5e1db06 changed: ewoms/models/richards -> opm/models/richards 2019-09-19 11:08:59 +02:00
Arne Morten Kvarving
f558f5d98b changed: ewoms/models/pvs -> opm/models/pvs 2019-09-19 11:07:52 +02:00
Arne Morten Kvarving
09cdd3aadd changed: ewoms/models/ncp -> opm/models/ncp 2019-09-19 11:03:17 +02:00
Arne Morten Kvarving
d302771e6c changed: ewoms/io -> opm/models/io 2019-09-19 10:59:55 +02:00
Arne Morten Kvarving
9247935c8a changed: ewoms/models/immiscible -> opm/models/immiscible 2019-09-19 10:51:11 +02:00
Arne Morten Kvarving
72b5e42016 changed: ewoms/models/flash -> opm/models/flash 2019-09-19 10:32:32 +02:00
Arne Morten Kvarving
474ae4ded8 changed: ewoms/disc -> opm/models/discretization 2019-09-19 10:28:26 +02:00
Arne Morten Kvarving
f48ae0f7f1 changed: ewoms/models/blackoil -> opm/models/blackoil 2019-09-19 10:19:54 +02:00
Arne Morten Kvarving
e01f712294 changed: ewoms/common -> opm/models/utils 2019-09-19 10:14:17 +02:00
Arne Morten Kvarving
cf9252765c changed: ewoms/linear -> opm/simulators/linalg 2019-09-09 13:12:57 +02:00
Arne Morten Kvarving
799585f9d7 changed: namespace Ewoms -> namespace Opm 2019-09-05 16:21:10 +02:00
Robert Kloefkorn
661577daab [bugfix][dimworld] Fix mixup between Grid::dimension and
Grid::dimensionworld in GlobalPosition and similar.
2019-06-06 13:59:48 +02:00
Andreas Lauser
b77b97e5e6 Newton: Do not fiddle around with the user specified tolerance anymore
As a consquence, the property which sets this tolerance is renamed
from NewtonRawTolerance to NewtonTolerance.
2019-03-02 13:43:08 +01:00
Andreas Lauser
b44b650475 fix some masochistic compiler warnings for the GCC 9 pre-release
the flags which I used are
```
-pedantic \
-Wall \
-Wextra \
-Wformat-nonliteral \
-Wcast-align
-Wpointer-arith \
-Wmissing-declarations \
-Wcast-qual \
-Wshadow
-Wwrite-strings \
-Wchar-subscripts \
-Wredundant-decls \
-fstrict-overflow \
-O3 \
-march=native \
-DNDEBUG=1
```

note that some heavy filtering is not the worst idea because DUNE is
far from not emiting any warnings with these flags.

Also, there were some pesky warnings in test_ecl_output which I don't
know how to fix:

```
tests/test_ecl_output.cc:218:73: warning: missing initializer for member ‘Opm::data::Connection::effective_Kh’ [-Wmissing-field-initializers]
```
2019-01-09 09:34:26 +01:00
Arne Morten Kvarving
f027262ec4 remove files 2018-11-16 14:53:37 +01:00
Tor Harald Sandve
08c4a4857b Adapt to changes in schedule interface 2018-10-29 10:39:14 +01:00
Andreas Lauser
4e888fdfc8 make all header files includeable on their own right again
some property definitions and includes were missing.
2018-10-29 10:05:46 +01:00
Andreas Lauser
d7efb362a2 make the build of flow fully parallelizable
so far, the actual specializations of the simulator were compiled into
the `libopmsimulators` library and the build of the glue code
(`flow.cpp`) thus needed to be deferred until the library was fully
built. Since the compilation of the glue code requires a full property
hierarchy for handling command line parameters, this arrangement
significantly increases the build time for systems with a sufficient
number of parallel build processes. ("sufficient" here means 8 or more
threads, i.e., a quadcore system with hyperthreading is sufficient
provided that it has enough main memory.)

the new approach is not to include these objects in
`libopmsimulators`, but to directly deal with them in the `flow`
binary. this allows all of them and the glue code to be compiled in
parallel.

compilation time on my machine before this change:

```
> touch ../opm/autodiff/BlackoilModelEbos.hpp; time make -j32 flow 2> /dev/null
Scanning dependencies of target opmsimulators
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_gasoil.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_oilwater.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_blackoil.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_solvent.cpp.o
[  4%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_polymer.cpp.o
[  6%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_energy.cpp.o
[  6%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_oilwater_polymer.cpp.o
[  6%] Linking CXX static library lib/libopmsimulators.a
[ 97%] Built target opmsimulators
Scanning dependencies of target flow
[100%] Building CXX object CMakeFiles/flow.dir/examples/flow.cpp.o
[100%] Linking CXX executable bin/flow
[100%] Built target flow

real    1m45.692s
user    8m47.195s
sys     0m11.533s
```

after:

```
> touch ../opm/autodiff/BlackoilModelEbos.hpp; time make -j32 flow 2> /dev/null
[ 91%] Built target opmsimulators
Scanning dependencies of target flow
[ 93%] Building CXX object CMakeFiles/flow.dir/flow/flow.cpp.o
[ 95%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_gasoil.cpp.o
[ 97%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_oilwater_polymer.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_polymer.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_oilwater.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_solvent.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_blackoil.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_energy.cpp.o
[100%] Linking CXX executable bin/flow
[100%] Built target flow

real    1m21.597s
user    8m49.476s
sys     0m10.973s
```

(this corresponds to a ~20% reduction of the time spend on waiting for
the compiler.)
2018-09-26 11:49:12 +02:00
Andreas Lauser
8e9b43fdce print usage message if the input case cannot be found 2018-08-17 11:36:21 +02:00
Andreas Lauser
f8a817e8f2 implement line breaks in the usage message
i.e. for `--help`. this is surprisingly complicated...
2018-08-16 15:55:51 +02:00
Andreas Lauser
f2b0630040 flow: minor parameter related fixes
- Change the brief description slightly
- Do not print anything anymore if there are no unused parameters
- Change the boiler plate text for printing the parameters to the
  PRT/DBG files

in part, this has been requested by [at]atgeirr.
2018-08-15 23:36:56 +02:00
Andreas Lauser
43ac2e36c6 remove the Flow prefixes of parameters only used by flow
this has been requested by [at]atgeirr.

Note: The FlowLinearSolverVerbosity, FlowNewtonMaxIterations and
FlowNewtonMinIterations parameters are still prefixed because they
clashes with parameters registered deeply within eWoms.
2018-08-15 23:34:32 +02:00
Andreas Lauser
9203b614e8 flow: customize the brief description printed in the usage message
The text can certainly be improved uppon.
2018-08-15 23:34:32 +02:00
Andreas Lauser
d94be85a9d flow: do not mention unused parameters in the help message
while they do no longer appear in the help message, in the code they
are still there and can be specified and used as normal.

also, this patch makes --print-parameters=1 and --print-properties=1
work.
2018-08-15 23:34:32 +02:00
Andreas Lauser
394790475f make it possible to disable the terminal output
the well model and (probably) the ECL output writing code look like
they cannot be gagged.
2018-08-15 23:34:32 +02:00
Andreas Lauser
b5cddef928 flow: switch it to use the eWoms parameter system
this has several advanges:

- a consistent and complete help message is now printed by passing the
  -h or --help command line parameters. most notably this allows to
  generically implement tab completion of parameters for bash
- the full list of runtime parameters can now be printed before the simulator
  has been run.
- all runtime parameters understood by ebos can be specified
- no hacks to marry the two parameter systems anymore
- command parameters now follow the standard unix convention, i.e.,
  `--param-name=value` instead of `param_name=value`

on the negative side, some parameters have been renamed and the syntax
has changed so calls to `flow` that specify parameters must adapted.
2018-08-15 23:34:32 +02:00
Atgeirr Flø Rasmussen
63e6e88f50
Merge pull request #1541 from akva2/avoid_deck_assignment
changed: avoid use of the assignment operator for the Deck class
2018-08-03 12:22:54 +02:00
Arne Morten Kvarving
3082281bc8 changed: avoid use of the assignment operator for the Deck class 2018-08-01 13:02:40 +02:00
Andreas Lauser
04c3e42b87 adapt to the fluid system naming convention change in opm-material 2018-07-27 12:56:19 +02:00
Andreas Lauser
ac2bc410f3 adapt to the fluid system naming convention change in opm-material
note that almost the only thing which is affected is legacy code.
2018-07-27 12:54:02 +02:00
Andreas Lauser
aed7e15d2e fix extra compiler warnings
this is only relevant people who are masochistic enough to go beyond
`-Wall`. (note that at this warning level, there is plenty of noise from
Dune and other upstream dependencies.)
2018-07-02 09:17:56 +02:00
Andreas Lauser
acc93ff6e7 do explicit put properties into the the Ewoms::Properties namespace anymore
instead, do it implicitly by using the BEGIN_PROPERTIES and
END_PROPERTIES macros.
2018-06-15 20:22:07 +02:00
Andreas Lauser
1be1f15b47 parameter system: add support for positional parameters
further, this cleans up the code of the parameter system and the
startup routines a bit and finally, it adds positional parameters
support to ebos as well as brief descriptions to ebos and the lens
problem.
2018-06-14 11:13:30 +02:00
Tor Harald Sandve
ee88790dea Add a flow specialization for blackoil with energy conservation
The energy conservation is enabled by specifying either TEMP or
THERMAL in the deck. The deck also needs to contatin relevant fluid and rock
heat properties.

The blackoil + energy equations are solved fully implicit.
2018-04-30 13:45:18 +02:00
Andreas Lauser
81bc44ec6d fix the build on the latest dune master
Dune::set_singularity_limit() was removed and the ILU preconditioners
seem to have been refactored. The ILU refactoring included making the
order of the preconditioner a template parameter of the preconditioner
class, i.e., it can no longer be specified at runtime.

Note that the AMG code in the dune master currently produces quite a
few warnings because of the latter point, but as far as I can see,
there is nothing which can be done about this from outside of
dune-istl.
2018-03-12 14:31:36 +01:00
Kai Bao
635f6c7db2 trying to add the functionality to handle oil/water polymer 2018-02-28 08:39:38 +01:00