Arne Morten Kvarving
9c19120855
move getHydroPressureLoss to MultisegmentWellSegments
2022-12-19 16:03:27 +01:00
Arne Morten Kvarving
40adc0ddbd
move segment_depth_diffs_ to MultisegmentWellSegments
2022-12-19 16:03:27 +01:00
Arne Morten Kvarving
5755c94256
move segment_inlets_ to MultisegmentWellSegments
2022-12-19 16:03:27 +01:00
Arne Morten Kvarving
2766427df0
move segment_perforations_ and perforation_segment_depth_diffs_ to MultisegmentWellSegments
2022-12-19 16:03:26 +01:00
Arne Morten Kvarving
aa684a10b8
added: MultisegmentWellSegments
...
this is a container class for per-segment properties in MultisegmentWell
2022-12-19 15:55:20 +01:00
Arne Morten Kvarving
bc0610171d
MultisegmentWellEval: use symbols from primary variables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
654c252bb8
MultisegmentWellAssemble: simplify assembleControlEq
...
by passing primary variables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
3b80b913da
MultisegmentWellPrimaryVariables: make data members private
...
and add generic read-only accessor to evaluations
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
e1cd54b267
MultisegmentWell: move updateUpwindingSegments to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
37607c570a
MultisegmentWell: move updateWellStateFromPrimaryVariables to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
dbdcb2d5ce
MultisegmentWell: move getWQTotal to MultisegmentWellPrimaryVariables
...
also drop otherwise unused getSegmentWQTotal
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
6b47f9bf1a
MultisegmentWell: move getQs to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
62297b2a63
MultisegmentWell: move getSegmentRate to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
99020fe33b
MultisegmentWell: move getBhp to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
bb377c0a47
MultisegmentWell: move getSegmentPressure to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
f99ecd15ac
MultisegmentWell: move getSegmentRateUpwinding to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
8e9b004cfc
MultisegmentWell: move surfaceVolumeFraction to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
2e2a49b935
MultisegmentWell: move volumeFractionScaled to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
e539614fff
MultisegmentWell: move volumeFraction to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
b112a793c5
MultisegmentWell: move updatePrimaryVariablesNewton to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
6404d69201
MultisegmentWell: move processFractions to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
5212e9c100
MultisegmentWell: move updatePrimaryVariables to MultisegmentWellPrimaryVariables
2022-12-19 13:05:39 +01:00
Arne Morten Kvarving
e1fccd47dc
added: MultisegmentWellPrimaryVariables
...
this is a container class for the primary variables in
multisegment well
2022-12-19 13:05:39 +01:00
Bård Skaflestad
c50cdc2454
Merge pull request #4331 from akva2/msw_avoid_mutable
...
MultisegmentWell: avoid mutable primary variables
2022-12-19 12:34:13 +01:00
Bård Skaflestad
c42e0051e3
Merge pull request #4329 from blattms/treat-connection-not-attached-to-segments-correctly
...
[bugfix,mswells] Throw for connections not attached to segments correctly.
2022-12-16 17:12:27 +01:00
Markus Blatt
8cde90fbd0
[bugfix,mswell] Throw for connections not attached to segments.
...
If there are connections of a multisegment well that are not
connected to any segment, we throw with a meaningful error message
instead of a silent segmentation fault. In that case an invalid segment index
of zero would be returned. The corresponding storage index returned by
segmentToNumberIndex ould become -1. This previously lead to segmentation
faults when using it to index a container.
2022-12-16 16:12:47 +01:00
Arne Morten Kvarving
f4c2aa3a35
MultisegmentWell: primary variables no longer needs to be marked mutable
2022-12-16 15:07:46 +01:00
Arne Morten Kvarving
f782673b2d
MultisegmentWell: make updatePrimaryVariables non-const
...
this will obviously update state
2022-12-16 15:07:35 +01:00
Arne Morten Kvarving
ef992080cf
MultisegmentWell: make updatePrimaryVariablesNewton non-const
...
this will obviously update state
2022-12-16 15:07:12 +01:00
Arne Morten Kvarving
ac91db281a
MultisegmentWell: make processFractions non-const
...
this updates state
2022-12-16 15:06:36 +01:00
Arne Morten Kvarving
6b61af21b3
MultisegmentWell: make initPrimaryVariablesEvaluation non-const
...
this will obviously update state
2022-12-16 15:06:03 +01:00
Arne Morten Kvarving
10a671e88c
MultisegmentWell: make updateWellState non-const
...
this will obviously update state
2022-12-16 15:05:06 +01:00
Bård Skaflestad
63654a73fc
Don't Output INFOSTEP File by Default
...
This commit introduces a new helper class,
ConvergenceOutputConfiguration
which parses comma separated option strings into a runtime
configuration object for whether to output additional convergence
information and, if so, what information to output.
Supported option string values are
* "none" -- Dont want any additional convergence output.
* "steps" -- Want additional convergence output pertaining to the
converged solution at the end of each timestep.
* "iterations" -- Want additional convergence output pertaining to each
non-linar ieration in each timestep.
Option value "none" overrides all other options. In other words, if the
user requests "none", then there will be no additional convergence
output, even if there are other options in the option string.
We add a new option, ExtraConvergenceOutput (command line option
--extra-convergence-output), which takes a string argument expected
to be a comma separated combination of these options. The default
value is "none". Finally, make the INFOSTEP file output conditional
on the user supplying "steps" as an argument to the new option.
2022-12-15 13:02:09 +01:00
Bård Skaflestad
44aaaf319e
Merge pull request #4321 from akva2/use_common_exceptions
...
use exception classes from opm-common
2022-12-14 09:48:12 +01:00
Arne Morten Kvarving
f17a90170d
use exception classes from opm-common
2022-12-13 12:56:13 +01:00
Atgeirr Flø Rasmussen
6531fbc146
Silence warnings due to forward declaring structs as classes.
2022-12-13 11:57:33 +01:00
Bård Skaflestad
3c63a7aa6d
Capture Timestep's Non-Linear Convergence History
...
This enables outputting a formatted record of the limiting MB and
CNV quantities as time and non-linear iterations progress. This, in
turn, is intended for diagnostic and analysis purposes and will not
be output unless specifically requested.
In particular, add a new type,
ConvergenceReport::ReservoirConvergenceMetric
which captures the convergence metric type (MB or CNV) along with
the associate phase and numerical value of the convergence metric.
We add a vector of these convergence metric objects as a new data
member of the ConvergenceReport.
Finally, foreshadowing the intended use case, also store the report
time in the ConvergenceReport object.
2022-12-09 16:22:36 +01:00
Bård Skaflestad
de84ea65a7
Merge pull request #4251 from GitPaean/fixing_singluar_frictional_pressure_drop
...
rewrting frictionPressureLoss fucntion for better jacobian matrix
2022-12-09 11:04:33 +01:00
Bård Skaflestad
149ae34dd2
Capture Component Names in Independent Datastructure
...
This is in preparation of enabling separate convergence output
for diagnostic purposes.
2022-12-09 09:41:22 +01:00
Markus Blatt
b4acdedefd
Merge pull request #4310 from totto82/groupinfo_stage2
...
BUGFIX we now use group_info in stage 2 and need to make sure its communicated
2022-12-08 09:01:01 +01:00
Tor Harald Sandve
60d0116080
we now use group_info in stage 2 and need to make sure its communicated
2022-12-07 15:43:25 +01:00
Atgeirr Flø Rasmussen
130f552dac
Must set location for every variable.
2022-12-07 13:37:38 +01:00
Atgeirr Flø Rasmussen
18f6f5e4e3
Push index map to Damaris for output ordering.
2022-12-07 13:05:44 +01:00
Kai Bao
1f077c35d2
rewrting frictionPressureLoss fucntion for better jacobian matrix
...
it removes some singularity warning from UMFPack.
2022-12-07 11:43:12 +01:00
Arne Morten Kvarving
b102103e26
changed: make MultisegmentWellEquations data members private
...
use a friend declaration for MultisegmentWellEquationAccess to
give the assembler access to the matrices/vectors.
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
2d154b50bb
added: MultisegmentWellEquations::residual()
...
this returns a const reference to the residual vector.
use this in MultisegmentWellEval
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
4545761374
added: MultisegmentWellEquationAccess
...
this is a proxy class for accessing the equation system
in MultisegmentWellAssemble.
use the new class for vector/matrix access in MultisegmentWellAssemble.
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
6011a42246
added: MultisegmentWellAssemble::assemblePerforationEq
...
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
b1d1e47e28
added: MultisegmentWellAssemble::assembleInflowTerm
...
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
d5bbccde65
added: MultisegmentWellAssemble::assembleOutflowTerm
...
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00