Commit Graph
75 Commits
Author SHA1 Message Date
Lisa Julia Nebel 4801a17703 Add comments at the spots where we multiply with D^(-1) - we actually can do this on all processes 2024-11-22 15:16:04 +01:00
Lisa Julia Nebel 627b9c98ba Add communication when multiplying with the matrix duneB_ in recoverSolutionWell
Here we go from cells to segments, and everything concerning segments is stored globally.
2024-11-22 15:16:04 +01:00
Lisa Julia Nebel 81a5da8b63 Add communication when multiplying with the matrix duneB_ in apply
Here we go from cells to segments, and everything concerning segments is stored globally.
2024-11-22 15:16:04 +01:00
Lisa Julia Nebel 6784db2d1d Add tests for parallel multisegment wells 2024-11-22 15:16:04 +01:00
Lisa Julia Nebel 6bdb80126f Add parameter enableDistributedWells to the well state an when set to true, do not throw when initalizing distributed multi-segment wells in WellState.cpp 2024-11-22 15:16:00 +01:00
Lisa Julia Nebel debb7cb036 Add option of comparing only the SMRY file to run-parallel-regressionTest.sh via the flag -s 2024-11-22 08:26:27 +01:00
Lisa Julia Nebel a6d27c18a1 Move 'assemblePerforationEq' to a separate loop (over the segments), communicate the matrix D and the residual afterwards and add the rest that does not need communication afterwards 2024-11-21 16:13:15 +01:00
Lisa Julia Nebel 4b08c37cf0 Add communication in scaleSegmentRatesWithWellRates of MultisegmentWellGeneric to scale the perf_phaserate_scaled with the correct value
Add communication in scale
2024-11-21 16:13:01 +01:00
Lisa Julia Nebel 36f21e2e63 Add comments about the need for communication to the assemble functions of MultisegmentWellAssemble 2024-11-21 16:13:01 +01:00
Lisa Julia Nebel 0ce761c5e6 Make wellhelpers::sumDistributedWellEntries work with other matrices than Dune::DynamicMatrix and add specialization for FieldMatrix<double,2,2>, FieldMatrix<double,3,3> and FieldMatrix<double,4,4> as well as FieldMatrix<float,2,2>, FieldMatrix<float,3,3> and FieldMatrix<float,4,4>
Make wellhelpers::sumDistributedWellEntries work with other matrices than Dune::DynamicMatrix and add specialization for FieldMatrix<double,2,2>, FieldMatrix<double,3,3> and FieldMatrix<double,4,4> as well as FieldMatrix<float,2,2>, FieldMatrix<float,3,3> and FieldMatrix<float,4,4>
2024-11-21 16:12:59 +01:00
Lisa Julia Nebel 4c59df5594 Add function sumDistributed to MultisegmentWellEquations
This functions sums all contributions of a multisegment well for the diagonal of D and the residual.
2024-11-21 16:12:59 +01:00
Lisa Julia Nebel 6ce3f7a385 Add pw_info_ to the MultisegmentWellEquations and use it to fill the matrices B and C correctly 2024-11-21 16:12:59 +01:00
Lisa Julia Nebel 97953887e4 Take the correct perf depth when calculating the depth differences in the the init function of the MultisegmentWell class 2024-11-21 16:12:50 +01:00
Lisa Julia Nebel 8860c598fe Throw an error if the status "well convergence" in iterateWellEqWithSwitching of MultisegmentWell is not the same across all processes 2024-11-21 16:10:55 +01:00
Lisa Julia Nebel dd895654d7 Other communication measures taken from StandardWells 2024-11-21 16:10:55 +01:00
Lisa Julia Nebel 8a01b89ec9 Store all (global) perforations depths and differences in perforation_depth_diffs_ and well.perfDepth() 2024-11-21 16:10:55 +01:00
Lisa Julia Nebel dadfe3a634 Use local_perf_index instead of perf index where applicable
The vectors that contain info about the perforations of a
multisegment well are *local* vectors, yet the way we access them
by looping over the perforations is global, so when accessing a value
we need to get the local perforation index (and with this also check
if the perforation actually resides on the own process)
2024-11-21 16:10:49 +01:00
Lisa Julia Nebel cde38bc23f Rename cell_idx to perf, since it is the perforation index actually 2024-11-21 16:09:15 +01:00
Lisa Julia Nebel 449847da9e Give the parallel well info object to the MultisegmentWellEval class as well 2024-11-21 16:09:15 +01:00
Lisa Julia Nebel 655f4011c7 Calculate the segment rates of the well state correctly, i.e. sum when the well is distributed over multiple processes 2024-11-21 16:09:10 +01:00
Lisa Julia Nebel 9f4fdd09fa Throw an error if the status "lastStepFailed" in prepareStep of BlackoilModel is not the same across all processes 2024-11-21 15:01:46 +01:00
Lisa Julia Nebel 7573ce2e41 Add globalToLocal and localToGlobal functions to the ParallelWellInfo class 2024-11-21 15:01:43 +01:00
Lisa Julia Nebel 5032a37283 Merge pull request #5649 from aritorto/levelsCartMappALU
Separate non-DUNE methods in LevelCartesianIndexMapper<AluGrid>
2024-10-21 15:01:22 +02:00
Lisa Julia Nebel d02f84afb7 Add action-parsing-strictness 2024-08-20 10:50:56 +02:00
Lisa Julia Nebel f59fb57d4b Fix two tests for opening new well connections in an ACTIONX with the keyword COMPDAT 2024-08-16 10:16:04 +02:00
Lisa Julia Nebel fb2fc75d17 Fix typo, use 2 processes for testing parallel runs with COMPDAT in ACTIONX and use linear-soler=ilu0 2024-08-14 13:01:46 +02:00
Lisa Julia Nebel 87a46d7b01 Fix NLDD solver for parallel runs with the COMPDAT keyword inside an ACTIONX 2024-08-14 08:31:37 +02:00
Lisa Julia Nebel 7c8173d5a8 Add failing test to show error from connections that are openend in an ACTIONX via the keyword COMPDAT when using the NLDD solver for parallel runs 2024-08-14 08:17:57 +02:00
Lisa Julia Nebel f6a06f2639 Change the type of the argument possibleFutureConnections from a pointer to a const reference 2024-08-08 09:19:32 +02:00
Lisa Julia Nebel 9a97a8d658 Make test on one process pass by taking the possible future connections into account when creating the sparsity pattern of the jacobian and when creating the partitions for the solver 2024-08-06 16:07:01 +02:00
Lisa Julia Nebel f17ad653ec Add failing test to show error from connections that are openend in an ACTIONX via the keyword COMPDAT when using the NLDD solver for sequential runs 2024-08-06 16:06:33 +02:00
Lisa Julia Nebel 8cd53ecea7 Change type of possibleFutureConnections to std::unordered_map<std::string, std::set<int>>
Now it contains the global ids of the perforated cells for each well instead of the coordinates ijk
2024-08-05 19:31:54 +02:00
Lisa Julia Nebel efb18d0027 Add possible future connections to the grid methods that handle the well connections 2024-07-29 09:59:52 +02:00
Lisa Julia Nebel 018e49522b Only notify opm-python-documentation when the file docstrings_simulators.json gets changed on master, not for a PR 2024-07-29 08:41:29 +02:00
Lisa Julia Nebel 13e3cd590c Fix typos and test the automatic deployment to opm-python-documentation 2024-07-25 19:34:17 +02:00
Lisa Julia Nebel f89be66ddd Add test to compare two runs with COMPDAT
Two data files get compared: one with ACTIONX and one with the same commands but without ACTIONX.
For sequential runs, they produce the same output, but for parallel runs they don't, because the when the COMPDAT keyword is used in an ACTIONX, well connections get created there that are not known to the grid partitioner.
2024-07-25 16:26:20 +02:00
Lisa Julia Nebel 3d8c1a11b7 Add option to compare two parallel runs 2024-07-25 16:26:20 +02:00
Lisa Julia Nebel 371fbdfc03 Include <boost/version.hpp> before the macro BOOST_VERSION is checked 2024-07-16 17:39:32 +02:00
Lisa Julia Nebel 653cb28bc2 Add the metis partitioner as a command line option as well 2024-07-16 17:39:28 +02:00
Lisa Julia Nebel c92bad8cfe Change asserts to BOOST_REQUIRE_* in test_tasklets_failure 2024-07-15 14:56:26 +02:00
Lisa Julia Nebel c78a629528 Fix indentation 2024-07-15 14:52:47 +02:00
Lisa Julia Nebel 0a70296eb9 Change pointer to tasklet runners to smart pointer and add comment about why they are created on the heap 2024-07-15 14:51:52 +02:00
Lisa Julia Nebel c73a51650f Change lock mechanism to std::lock_guard 2024-07-15 14:22:28 +02:00
Lisa Julia Nebel e2126ae817 Use the failure flag of the tasklet runner to detect a failure while writing output and throw an error if that happens 2024-07-15 08:51:25 +02:00
Lisa Julia Nebel 4d0179cffc Implement a more polling-based interface for the tasklets failure mechanism 2024-07-12 15:12:41 +02:00
Lisa Julia Nebel 70e5749a97 Change workflow: do not build documentation here but at opm-python-documentation
And notify opm-python-documentation when docstrings_simulators.json changes
2024-07-10 18:03:00 +02:00
Lisa Julia Nebel 42d79ebb97 Delete almost everything of the documentation here, this will be done in a separate repository opm-python-documentation
Keep only the file docstrings.json (renamed to docstrings_simulators.json)
2024-07-10 18:02:41 +02:00
Lisa Julia Nebel b4ee039f07 Remove UNIFOUT keyword from python test data file SPE1CASE1b/SPE1CASE1.DATA file as well
... just in case
2024-07-09 17:27:50 +02:00
Lisa Julia Nebel e9d3d81ae2 Remove UNIFOUT keyword from python test data file SPE1CASE1a/SPE1CASE1.DATA
With this keyword, the SPE1CASE1.UNRST file could not be read in correctly at some point, until I've added a check in opm-models that checks this, this went unnoticed probably.
2024-07-09 17:27:43 +02:00
Lisa Julia Nebel fa3392fb7d Use generate_docstring_hpp.py of opm-common and delete the one here 2024-07-09 13:52:01 +02:00
Lisa Julia Nebel f86623a70c Add test for failing tasklets 2024-07-09 09:44:13 +02:00
Lisa Julia Nebel 92a8ef1c4b Add an atomic flag to TaskletRunner
This flag is shared between the threads, if any thread fails, this is set and before the new threads get dispatched or run, this flag is checked.
In case it is set, the program aborts.
2024-07-08 20:58:02 +02:00
Lisa Julia Nebel ecf7bd1e52 Test for skipping the ghost entries using Jacobi preconditioner 2024-06-07 14:40:58 +02:00
Lisa Julia Nebel 969ec035ec Add pyaction/PYACTION_GRUPTREE_INSERT_KW.DATA to pyactionComparisons.cmake so it is compared with actionx/ACTIONX_GRUPTREE.DATA 2024-05-27 09:38:38 +02:00
Lisa Julia Nebel a316264dba Add pyaction/PYACTION_WTEST_INSERT_KW.DATA to pyactionComparisons.cmake so it is compared with actionx/ACTIONX_WTEST.DATA 2024-05-27 09:36:31 +02:00
Lisa Julia Nebel e803a3ae51 Add pyaction/PYACTION_GCONSUMP_INSERT_KW.DATA to pyactionComparisons.cmake so it is compared with actionx/ACTIONX_GCONSUMP.DATA 2024-05-17 10:49:09 +02:00
Lisa Julia Nebel cc21b16bb4 Add pyaction/PYACTION_WSEGVALV_INSERT_KW.DATA to pyactionComparisons.cmake so it is compared with actionx/ACTIONX_WSEGVALV.DATA 2024-05-17 09:44:12 +02:00
Lisa Julia Nebel 52b54b1549 Version bump to 2024.10-pre 2024-04-25 12:59:19 +02:00
Lisa Julia Nebel ef77d8afd9 Add test for NEXT keyword (and WELTARG) as python comparison tests 2024-04-16 19:19:00 +02:00
Lisa Julia Nebel fb985298b2 Add tests that compare runs using the ACTIONX keyword to those that use the PYACTION keyword 2024-04-03 16:05:48 +02:00
Lisa Julia Nebel 6f7cc94da2 Add script to compare the summary files of two different simulator runs 2024-04-03 16:05:44 +02:00
Lisa Julia Nebel 7077cfb35c Indentation for previous commit 2024-02-08 16:08:55 +01:00
Lisa Julia Nebel e4080a3fe4 Add 'prepareResultOutputDirectory' function in Opm namespace that removes possible old simulation output files from the specified output directory.
This function is called during 'setupLogging' before the actual logging starts.
2024-02-08 16:08:50 +01:00
Lisa Julia Nebel 77067c064f Change copyright owner of test_nonnc.cpp to Equinor ASA 2024-02-02 13:15:12 +01:00
Lisa Julia Nebel ca4c9dbe39 Add NONNC regression test 2024-02-02 13:15:05 +01:00
Lisa Julia Nebel 631409ec2c Add test for NONNC keyword 2024-02-01 13:57:49 +01:00
Lisa Julia Nebel a8efd896b7 Move functions isId, isIdReverse and directionalIsId to the namespace Opm::details 2024-02-01 13:57:49 +01:00
Lisa Julia Nebel cc64576a79 Change function removeSmallNonCartesianTransmissibilities_ to removeNonCartesianTransmissibilities_(bool removeAll) 2024-01-29 18:46:59 +01:00
Lisa Julia Nebel e346315fa2 Remove NONNC from the UnsopportedFlowKeywordList 2024-01-29 18:46:59 +01:00
Lisa Julia Nebel 6dfa9b1b76 Add comment on trailing return type with decltype that is used for detecting the signature of the coarsen function of the Dune::Amg::IndicesCoarsener 2024-01-26 14:29:19 +01:00
Lisa Julia Nebel 74608147c0 Add comment on trailing return type with decltype that is used for detecting the existence of setUseFixedOrder member function 2024-01-26 14:29:15 +01:00
Lisa Julia Nebel 5b50a4801f Construct the matrices in the AMG hierarchy (created in the twolevelmethod) with deterministic indices if possible.
The function 'coarsen' for the coarser level is called with the respective flag if it is defined. Then the matrices in the AMG hierarchy are constructed with deterministic indices.
If it is not defined yet, it is called without the flag and the matrices in the AMG hierarchy are constructed with non-deterministic indices.
2024-01-26 13:51:41 +01:00
Lisa Julia Nebel 5d8fefca33 Add comment on trailing return type with decltype that is used for detecting existence of setUseFixedOrder member function 2024-01-25 16:04:41 +01:00
Lisa Julia Nebel b99252e2b8 Construct the matrices in the AMG hierarchy with deterministic indices if possible.
The function 'setUseFixedOrder' is called if it is defined and the matrices in the AMG hierarchy are constructed with deterministic indices.
If its not defined yet, it is not called and the matrices in the AMG hierarchy are constructed with non-deterministic indices.
2024-01-25 11:32:51 +01:00
Lisa Julia Nebel 60b0a33bd4 Construct the matrices in the AMG hierarchy (created in the PreconditionerFactory) with deterministic indices if possible.
The function 'setUseFixedOrder' is called if it is defined and the matrices in the AMG hierarchy are constructed with deterministic indices.
If it is not defined yet, it is not called and the matrices in the AMG hierarchy are constructed with non-deterministic indices.
2024-01-25 11:32:09 +01:00