diff --git a/examples/newcases/Case1/basecase.txt b/examples/newcases/Case1/basecase.txt
new file mode 100644
index 0000000..6a92186
--- /dev/null
+++ b/examples/newcases/Case1/basecase.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+375 #Variable array of x-refinment (Regional)
+375 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case1/basecase_closed.txt b/examples/newcases/Case1/basecase_closed.txt
new file mode 100644
index 0000000..6920184
--- /dev/null
+++ b/examples/newcases/Case1/basecase_closed.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+375 #Variable array of x-refinment (Regional)
+375 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+closed #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case1/basecase_flux.txt b/examples/newcases/Case1/basecase_flux.txt
new file mode 100644
index 0000000..a6256e8
--- /dev/null
+++ b/examples/newcases/Case1/basecase_flux.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+375 #Variable array of x-refinment (Regional)
+375 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+flux #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case1/basecase_open.txt b/examples/newcases/Case1/basecase_open.txt
new file mode 100644
index 0000000..2fe532c
--- /dev/null
+++ b/examples/newcases/Case1/basecase_open.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+375 #Variable array of x-refinment (Regional)
+375 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+free #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case1/basecase_porvproj.txt b/examples/newcases/Case1/basecase_porvproj.txt
new file mode 100644
index 0000000..000967e
--- /dev/null
+++ b/examples/newcases/Case1/basecase_porvproj.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+375 #Variable array of x-refinment (Regional)
+375 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+porvproj #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case1/run_simulations.py b/examples/newcases/Case1/run_simulations.py
new file mode 100644
index 0000000..09a4e8d
--- /dev/null
+++ b/examples/newcases/Case1/run_simulations.py
@@ -0,0 +1,29 @@
+# SPDX-FileCopyrightText: 2024 NORCE
+# SPDX-License-Identifier: GPL-3.0
+
+""""
+Script to run Flow
+"""
+
+import os
+
+NAMES = [
+ "basecase",
+]
+os.system("rm -rf compare")
+nsimulations = len(NAMES)
+command = ""
+for i, name in enumerate(NAMES):
+ command += f"expreccs -i {name}.txt -o Case_1 -m all -p no & "
+command += "wait"
+os.system(command)
+command = ""
+for i, name in enumerate(NAMES):
+ command += f"expreccs -i {name}_flux.txt -o Case_1 -m site -p no & "
+ command += f"expreccs -i {name}_porvproj.txt -o Case_1 -m site -p no & "
+ command += f"expreccs -i {name}_closed.txt -o Case_1 -m site -p no & "
+ command += f"expreccs -i {name}_open.txt -o Case_1 -m site -p no & "
+command += "wait"
+os.system(command)
+command = f"expreccs -i {name}_open.txt -o Case_1 -m none -p yes"
+os.system(command)
diff --git a/examples/newcases/Case2/Grid_0_40m.txt b/examples/newcases/Case2/Grid_0_40m.txt
new file mode 100644
index 0000000..6a92186
--- /dev/null
+++ b/examples/newcases/Case2/Grid_0_40m.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+375 #Variable array of x-refinment (Regional)
+375 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case2/Grid_1_120m.txt b/examples/newcases/Case2/Grid_1_120m.txt
new file mode 100644
index 0000000..dbe5c76
--- /dev/null
+++ b/examples/newcases/Case2/Grid_1_120m.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+125 #Variable array of x-refinment (Regional)
+125 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case2/Grid_2_200m.txt b/examples/newcases/Case2/Grid_2_200m.txt
new file mode 100644
index 0000000..1958680
--- /dev/null
+++ b/examples/newcases/Case2/Grid_2_200m.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+75 #Variable array of x-refinment (Regional)
+75 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case2/Grid_3_600m.txt b/examples/newcases/Case2/Grid_3_600m.txt
new file mode 100644
index 0000000..f851d58
--- /dev/null
+++ b/examples/newcases/Case2/Grid_3_600m.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+25 #Variable array of x-refinment (Regional)
+25 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case2/Grid_4_1000m.txt b/examples/newcases/Case2/Grid_4_1000m.txt
new file mode 100644
index 0000000..a886a8f
--- /dev/null
+++ b/examples/newcases/Case2/Grid_4_1000m.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+15 #Variable array of x-refinment (Regional)
+15 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case2/Grid_5_5000m.txt b/examples/newcases/Case2/Grid_5_5000m.txt
new file mode 100644
index 0000000..bf75170
--- /dev/null
+++ b/examples/newcases/Case2/Grid_5_5000m.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+3 #Variable array of x-refinment (Regional)
+3 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case2/run_simulations.py b/examples/newcases/Case2/run_simulations.py
new file mode 100644
index 0000000..7261db8
--- /dev/null
+++ b/examples/newcases/Case2/run_simulations.py
@@ -0,0 +1,25 @@
+# SPDX-FileCopyrightText: 2024 NORCE
+# SPDX-License-Identifier: GPL-3.0
+
+""""
+Script to run Flow
+"""
+
+import os
+
+NAMES = [
+ "Grid_0_40m",
+ "Grid_1_120m",
+ "Grid_2_200m",
+ "Grid_3_600m",
+ "Grid_4_1000m",
+ "Grid_5_5000m",
+]
+os.system("rm -rf compare")
+nsimulations = len(NAMES)
+command = ""
+for i, name in enumerate(NAMES):
+ command += f"expreccs -i {name}.txt -o {name} -m none -p yes & "
+command += "wait"
+os.system(command)
+os.system("expreccs -c compare")
diff --git a/examples/newcases/Case3/Everyday.txt b/examples/newcases/Case3/Everyday.txt
new file mode 100644
index 0000000..1958680
--- /dev/null
+++ b/examples/newcases/Case3/Everyday.txt
@@ -0,0 +1,49 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+75 #Variable array of x-refinment (Regional)
+75 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+180 1 1 1 1 0 1 0 1 4106776.18
+180 1 1 1 1 0 1 4106776.18 1 0
+180 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case3/Interpolation_in_time.txt b/examples/newcases/Case3/Interpolation_in_time.txt
new file mode 100644
index 0000000..54bfffe
--- /dev/null
+++ b/examples/newcases/Case3/Interpolation_in_time.txt
@@ -0,0 +1,57 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+75 #Variable array of x-refinment (Regional)
+75 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres interp #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+ 10 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+ 50 10 10 1 1 4106776.18 1 4106776.18 1 4106776.18
+120 120 10 1 1 4106776.18 1 4106776.18 1 4106776.18
+ 10 1 1 1 1 0 1 0 1 4106776.18
+ 50 10 10 1 1 0 1 0 1 4106776.18
+120 120 10 1 1 0 1 0 1 4106776.18
+ 10 1 1 1 1 0 1 4106776.18 1 0
+ 50 10 10 1 1 0 1 4106776.18 1 0
+120 120 10 1 1 0 1 4106776.18 1 0
+ 10 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+ 50 10 10 1 1 4106776.18 1 4106776.18 1 4106776.18
+120 120 10 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case3/On_report_steps.txt b/examples/newcases/Case3/On_report_steps.txt
new file mode 100644
index 0000000..0d191bb
--- /dev/null
+++ b/examples/newcases/Case3/On_report_steps.txt
@@ -0,0 +1,57 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+75 #Variable array of x-refinment (Regional)
+75 #Variable array of y-refinment (Regional)
+1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 1e9 1e9 1e9 1e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1 1 0 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 1 1 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+9 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+6700 7500 4.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+0 #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 0 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 1000 PERMZ5 100 PORO5 0.2
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7500 7500 0 9 #Well 0
+11500 11500 0 9 #Well 1
+11500 3500 0 9 #Well 2
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+ 10 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+ 50 10 10 1 1 4106776.18 1 4106776.18 1 4106776.18
+120 120 120 1 1 4106776.18 1 4106776.18 1 4106776.18
+ 10 1 1 1 1 0 1 0 1 4106776.18
+ 50 10 10 1 1 0 1 0 1 4106776.18
+120 120 120 1 1 0 1 0 1 4106776.18
+ 10 1 1 1 1 0 1 4106776.18 1 0
+ 50 10 10 1 1 0 1 4106776.18 1 0
+120 120 120 1 1 0 1 4106776.18 1 0
+ 10 1 1 1 1 4106776.18 1 4106776.18 1 4106776.18
+ 50 10 10 1 1 4106776.18 1 4106776.18 1 4106776.18
+120 120 120 1 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case3/run_simulations.py b/examples/newcases/Case3/run_simulations.py
new file mode 100644
index 0000000..238168d
--- /dev/null
+++ b/examples/newcases/Case3/run_simulations.py
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: 2024 NORCE
+# SPDX-License-Identifier: GPL-3.0
+
+""""
+Script to run Flow
+"""
+
+import os
+
+NAMES = [
+ "Everyday",
+ "On_report_steps",
+ "Interpolation_in_time",
+]
+os.system("rm -rf compare")
+nsimulations = len(NAMES)
+command = ""
+for i, name in enumerate(NAMES):
+ command += f"expreccs -i {name}.txt -o {name} -m all -p yes & "
+command += "wait"
+os.system(command)
+os.system("expreccs -c compare")
diff --git a/examples/newcases/Case4/complexity.txt b/examples/newcases/Case4/complexity.txt
new file mode 100644
index 0000000..fc36e5f
--- /dev/null
+++ b/examples/newcases/Case4/complexity.txt
@@ -0,0 +1,66 @@
+"""Set the full path to the flow executable and flags"""
+flow --tolerance-mb=1e-7 --enable-opm-rst-file=true --linear-solver=cprw --newton-min-iterations=1 --enable-tuning=true
+
+"""Set the model parameters"""
+15000 15000 9 #Reginonal aquifer length, width, and depth [m]
+1,2,2,4,4,5,5,5,5,5,5,5,5,5,5 #Variable array of x-refinment (Regional)
+1,2,2,4,4,5,5,5,5,5,5,5,5,5,5 #Variable array of y-refinment (Regional)
+1,1,1 #Variable array of z-refinment (Regional)
+375 #Variable array of x-refinment (Reference)
+375 #Variable array of y-refinment (Reference)
+3,2,1 #Variable array of z-refinment (Reference)
+5000 5000 10000 10000 #Site xi, yi, xf, and yf box positions [m]
+porv 2e9 2e9 2e9 2e9 #Use free/closed/porv for the Regional aquifer (if porv, enter the bottom, right, top, and left values (e.g, porv 1e8 1e7 1e6 1e5))
+pres interp #Use free/closed/porv/porvproj/flux/pres/pres2p/wells for the BC site (if porv; bottom, right, top, and left values (e.g, porv 1e4 1e3 1e2 1e1)); for pres/flux, add 'interp' to use linear interpolation in time
+11000 11000 1E5 0 4.5 #Regional fault x, and y positions [m], x and y multipliers for the trans, and height of the fault jump [m]
+6666 7075 7885 8450 0 0 #Site fault x, and y positions [m] (initial and final) and x and y multipliers for the trans
+3,3,3 #Thicknes of the layers
+3E7 105 105 4.934e-10 #Pressure on the reservoir top [Pa], top and bottom temperatures [C], and rock compressibility [1/Pa]
+7895 8430 0.5 #Sensor position x, y, and z to assess the error over time w.r.t the reference solution [m]
+(20-20*mt.cos((2*mt.pi*(x+y)/15000))) #The function for the reservoir surface
+1 2.92 #Add hysteresis (1/0) and salinity (value [1E-3 kg-M/kg])
+0 #Number of interations for back-coupling
+
+"""Set the saturation functions"""
+krw * ((sw - swi) / (1.0 - sni -swi)) ** nkrw #Wetting rel perm saturation function [-]
+krn * ((1.0 - sw - sni) / (1.0 - sni - swi)) ** nkrn #Non-wetting rel perm saturation function [-]
+pec * ((sw - swi) / (1.0 - swi)) ** (-(1.0 / npe)) #Capillary pressure saturation function [Pa]
+
+"""Properties sat functions"""
+"""swi [-], sni [-], krw [-], krn [-], pec [Pa], nkrw [-], nkrn [-], npe [-], threshold cP evaluation"""
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 61237. NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 5E4 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0. KRW5 1. KRN5 .3 PRE4 49029 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 61237. NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 5E4 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+SWI5 0.478 SNI5 0.312 KRW5 1. KRN5 .3 PRE4 49029 NKRW1 3 NKRN1 3 NPE1 2 THRE1 1e-5
+
+"""Properties rock"""
+"""Kxy [mD], Kz [mD], phi [-]"""
+PERMXY5 500 PERMZ5 50 PORO5 0.15
+PERMXY5 1000 PERMZ5 100 PORO5 0.20
+PERMXY5 1300 PERMZ5 130 PORO5 0.25
+
+"""Wells position"""
+"""x, y, zi, and zf positions [m]"""
+7180 7180 0 9 #Well 0
+7970 7970 0 9 #Well 1
+6660 8333 0 9 #Well 2
+11300 11300 0 9 #Well 3
+11300 4800 0 9 #Well 4
+5333 11666 0 9 #Well 5
+
+"""Define the injection values"""
+"""injection time [d], time step size to write results regional [d], time step size to write results site/reference [d], maximum time step [d], fluid (0 wetting, 1 non-wetting) well 0, injection rates [kg/day] well 0, fluid ... well n, injection, ...well n, (if 'wells' for BC in site (Line 14); bottom, right, top, and left values (0(prod)/1(inj), pressure [Pa]))"""
+ 10 1 1 1 1 1368925.4 1 1368925.4 1 1368925.4 1 4106776.18 1 0 1 0
+ 50 10 10 1 1 1368925.4 1 1368925.4 1 1368925.4 1 4106776.18 1 0 1 0
+120 120 10 1 1 1368925.4 1 1368925.4 1 1368925.4 1 4106776.18 1 0 1 0
+ 10 1 1 1 1 0 1 0 1 0 1 0 1 0 1 4106776.18
+ 50 10 10 1 1 0 1 0 1 0 1 0 1 0 1 4106776.18
+120 120 10 1 1 0 1 0 1 0 1 0 1 0 1 4106776.18
+ 10 1 1 1 1 0 1 0 1 0 1 0 1 4106776.18 1 0
+ 50 10 10 1 1 0 1 0 1 0 1 0 1 4106776.18 1 0
+120 120 10 1 1 0 1 0 1 0 1 0 1 4106776.18 1 0
+ 10 1 1 1 1 1368925.4 1 1368925.4 1 1368925.4 1 4106776.18 1 4106776.18 1 4106776.18
+ 50 10 10 1 1 1368925.4 1 1368925.4 1 1368925.4 1 4106776.18 1 4106776.18 1 4106776.18
+120 120 10 1 1 1368925.4 1 1368925.4 1 1368925.4 1 4106776.18 1 4106776.18 1 4106776.18
\ No newline at end of file
diff --git a/examples/newcases/Case4/run_simulations.py b/examples/newcases/Case4/run_simulations.py
new file mode 100644
index 0000000..ae3a2ab
--- /dev/null
+++ b/examples/newcases/Case4/run_simulations.py
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: 2024 NORCE
+# SPDX-License-Identifier: GPL-3.0
+
+""""
+Script to run Flow
+"""
+
+import os
+
+NAMES = [
+ "complexity",
+]
+os.system("rm -rf compare")
+nsimulations = len(NAMES)
+command = ""
+for i, name in enumerate(NAMES):
+ command += f"expreccs -i {name}.txt -o Case_4 -m all -p yes & "
+command += "wait"
+os.system(command)
diff --git a/examples/newcases/Locations_figures/Case_1.ipe b/examples/newcases/Locations_figures/Case_1.ipe
new file mode 100644
index 0000000..4d82a8c
--- /dev/null
+++ b/examples/newcases/Locations_figures/Case_1.ipe
@@ -0,0 +1,360 @@
+
+
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+0.6 0 0 0.6 0 0 e
+
+
+
+
+
+0.5 0 0 0.5 0 0 e
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+
+
+
+
+
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+
+
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+
+
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+144 640 m
+144 400 l
+384 400 l
+384 640 l
+h
+
+
+224 560 m
+224 480 l
+304 480 l
+304 560 l
+h
+
+nx=ny=375,
+(5,5)
+REG/REF
+SITE
+INJ0
+INJ1
+INJ2
+SENSOR
+
+4 0 0 4 432 560 e
+
+
+4 0 0 4 432 560 e
+
+
+4 0 0 4 432 560 e
+
+
+4 0 0 4 432 560 e
+
+(10,10)
+(0,0) [km]
+(15,15) [km]
+dx=dy=40 [m], dz= 9 [m]
+(11.5,3.5)
+(11.5,11.5)
+(7.5,7.5)
+(6.7,7.5)
+nz= 1
+
+
diff --git a/examples/newcases/Locations_figures/Case_4_regional.ipe b/examples/newcases/Locations_figures/Case_4_regional.ipe
new file mode 100644
index 0000000..ac075e1
--- /dev/null
+++ b/examples/newcases/Locations_figures/Case_4_regional.ipe
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+0.6 0 0 0.6 0 0 e
+
+
+
+
+
+0.5 0 0 0.5 0 0 e
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+
+
+
+
+
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+
+
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+
+
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+144 640 m
+144 400 l
+384 400 l
+384 640 l
+h
+
+
+224 560 m
+224 480 l
+304 480 l
+304 560 l
+h
+
+(5,5)
+REG
+SITE
+INJ3
+INJ4
+
+4 0 0 4 432 560 e
+
+
+4 0 0 4 432 560 e
+
+(10,10)
+(0,0) [km]
+(15,15) [km]
+(11.3,4.8)
+(11.3,11.3)
+INJ5
+
+4 0 0 4 432 560 e
+
+(5.3,11.6)
+
+324 640 m
+324 580 l
+384 580 l
+
+FAULT
+FAULT
+
+
diff --git a/examples/newcases/Locations_figures/Case_4_site.ipe b/examples/newcases/Locations_figures/Case_4_site.ipe
new file mode 100644
index 0000000..73fbe93
--- /dev/null
+++ b/examples/newcases/Locations_figures/Case_4_site.ipe
@@ -0,0 +1,774 @@
+
+
+
+
+
+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
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+0.6 0 0 0.6 0 0 e
+
+
+
+
+
+0.5 0 0 0.5 0 0 e
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+
+
+
+
+
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+
+
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+
+
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+188 504 m
+228 540
+240 544
+252 548
+256 548 c
+
+(7180,7180)
+(7970,7970)
+(6660,8333)
+(7895,8430)
+SENSOR
+
+4 0 0 4 432 560 e
+
+Sealing fault
+SITE
+
+
diff --git a/src/expreccs/templates/decks/site.mako b/src/expreccs/templates/decks/site.mako
index cb7308f..c4e4dfb 100644
--- a/src/expreccs/templates/decks/site.mako
+++ b/src/expreccs/templates/decks/site.mako
@@ -311,14 +311,10 @@ ${i+1} DIRICHLET ${dic["lin"]} 1* ${dic['PRESSURE_left'][n+k+1][0][i]} /
${i+1+len(dic['PRESSURE_left'][0][0])} DIRICHLET ${dic["lin"]} 1* ${dic['PRESSURE_right'][n+k+1][0][i]} /
% endfor
% for i in range(len(dic['PRESSURE_bottom'][0][0])):
-% if ((i%dic["bottom_noCells"]+1)*mt.floor(dic['site_noCells'][0]/dic["bottom_noCells"]) != 1 and 1+(i%dic["bottom_noCells"])*mt.floor(dic['site_noCells'][0]/dic["bottom_noCells"])!=dic['site_noCells'][0]) and dic["bottom_noCells"]>2:
${i+1+len(dic['PRESSURE_left'][0][0])+len(dic['PRESSURE_right'][0][0])} DIRICHLET ${dic["lin"]} 1* ${dic['PRESSURE_bottom'][n+k+1][0][i]} /
-% endif
% endfor
% for i in range(len(dic['PRESSURE_top'][0][0])):
-% if ((i%dic["top_noCells"]+1)*mt.floor(dic['site_noCells'][0]/dic["top_noCells"]) != 1 and 1+(i%dic["top_noCells"])*mt.floor(dic['site_noCells'][0]/dic["top_noCells"])!=dic['site_noCells'][0]) and dic["top_noCells"]>2:
${i+1+len(dic['PRESSURE_left'][0][0])+len(dic['PRESSURE_right'][0][0])+len(dic['PRESSURE_bottom'][0][0])} DIRICHLET ${dic["lin"]} 1* ${dic['PRESSURE_top'][n+k+1][0][i]} /
-% endif
% endfor
/
%elif dic['site_bctype'] == "free":
diff --git a/src/expreccs/visualization/maps2d.py b/src/expreccs/visualization/maps2d.py
index b1d82b6..169dff4 100644
--- a/src/expreccs/visualization/maps2d.py
+++ b/src/expreccs/visualization/maps2d.py
@@ -21,7 +21,7 @@ def final_time_maps(dic):
for nfol, fol in enumerate(dic["folders"]):
for res in dic[f"{fol}_decks"]:
dic = manage_name(dic, res)
- for j, quantity in enumerate(dic["quantity"]):
+ for j, quantity in enumerate(dic["quantity"][0:2]):
dic[f"{fol}/{res}_{quantity}_plot"] = np.zeros(
[
len(dic[f"{fol}/{dic['name']}_ymy"]) - 1,
@@ -45,9 +45,10 @@ def final_time_maps(dic):
cmap=dic["cmaps"][j],
)
axis.set_title(dic[f"l{res}"] + f" ({dic['lfolders'][nfol]})")
+ # axis.set_title(f"REF (Case 4)")
maxp = dic[f"{fol}/{res}_{quantity}_plot"].max()
minp = dic[f"{fol}/{res}_{quantity}_plot"].min()
- # minp, maxp = -0.09, 0.14
+ # minp, maxp = 305, 359
axis.axis("scaled")
axis.set_xlabel("Easting [km]")
axis.set_ylabel("Northing [km]")
@@ -118,23 +119,23 @@ def final_time_maps_difference(dic):
]
- dic[f"{fol}/{res}_{quantity}_array"][-1]
)
- if quantity == "FLOWATI+":
+ if quantity in ["FLOWATI+", "FLOGASI+"]:
for k in range(len(dic[f"{fol}/site_ymy"]) - 1):
dic[f"{fol}/{res}_difference_{quantity}"][
(k + 1) * (len(dic[f"{fol}/site_xmx"]) - 1) - 1
] = 0
- if quantity == "FLOWATJ-":
+ if quantity in ["FLOWATJ-", "FLOGASJ-"]:
for k in range(len(dic[f"{fol}/site_xmx"]) - 1):
dic[f"{fol}/{res}_difference_{quantity}"][k] = 0
dic[f"{fol}/{res}_difference_{quantity}_plot"] = np.zeros(
[len(dic[f"{fol}/site_ymy"]) - 1, len(dic[f"{fol}/site_xmx"]) - 1]
)
- if quantity == "FLOWATI-":
+ if quantity in ["FLOWATI-", "FLOGASI-"]:
for k in range(len(dic[f"{fol}/site_ymy"]) - 1):
dic[f"{fol}/{res}_difference_{quantity}"][
k * (len(dic[f"{fol}/site_xmx"]) - 1)
] = 0
- if quantity == "FLOWATJ+":
+ if quantity in ["FLOWATJ+", "FLOGASJ+"]:
for k in range(len(dic[f"{fol}/site_xmx"]) - 1):
dic[f"{fol}/{res}_difference_{quantity}"][
(len(dic[f"{fol}/site_ymy"]) - 2)
@@ -155,7 +156,7 @@ def final_time_maps_difference(dic):
dic[f"{fol}/{dic['name']}_ycor"] / 1000.0,
dic[f"{fol}/{res}_difference_{quantity}_plot"],
shading="flat",
- cmap=dic["cmaps"][j],
+ cmap="seismic",
)
axis.axis(
[
@@ -183,7 +184,8 @@ def final_time_maps_difference(dic):
axis.set_xlabel("Easting [km]")
axis.set_ylabel("Northing [km]")
axis.set_title(
- r"$\sum$|REF-"
+ "SITE "
+ + r"$\sum$|REF-"
+ f"{dic[f'l{res}']}"
+ f"|={abs(dic[f'{fol}/{res}_difference_{quantity}_plot']).sum():.2E}"
)
@@ -192,7 +194,7 @@ def final_time_maps_difference(dic):
# axis.tick_params(axis='y', colors='white')
maxp = dic[f"{fol}/{res}_difference_{quantity}_plot"].max()
minp = dic[f"{fol}/{res}_difference_{quantity}_plot"].min()
- # minp, maxp = -.016, .016
+ # minp, maxp = -1.53, 1.53
divider = make_axes_locatable(axis)
cax = divider.append_axes("right", size="5%", pad=1e-3)
vect = np.linspace(
@@ -207,7 +209,7 @@ def final_time_maps_difference(dic):
orientation="vertical",
ticks=vect,
label=dic["units"][j],
- format=lambda x, _: f"{x:.3f}",
+ format=lambda x, _: f"{x:.2f}",
)
imag.set_clim(
minp,
@@ -255,19 +257,24 @@ def geological_maps(dic):
cmap=dic["cmaps"][j],
)
axis.set_title(dic[f"l{res}"] + f" ({dic['lfolders'][nfol]})")
+ # axis.set_title("REG/REF (Case 1)")
axis.axis("scaled")
name = dic["name"]
axis.set_xlabel(
- f"L = {dic[f'{fol}/{name}_xmx'][-1]/1000. - dic[f'{fol}/{name}_xmx'][0]/1000.} [km]"
+ f"L={(dic[f'{fol}/{name}_xmx'][-1] - dic[f'{fol}/{name}_xmx'][0])/1000.:.0f}"
+ + f" [km], dx={dic[f'{fol}/{name}_xmx'][1]:.0f} [m]"
)
axis.set_ylabel(
- f"W = {dic[f'{fol}/{name}_ymy'][-1]/1000. - dic[f'{fol}/{name}_ymy'][0]/1000.} [km]"
+ f"W={(dic[f'{fol}/{name}_ymy'][-1] - dic[f'{fol}/{name}_ymy'][0])/1000.:.0f}"
+ + f" [km], dy={dic[f'{fol}/{name}_ymy'][1]:.0f} [m]"
)
- axis.set_xticks(dic[f"{fol}/{dic['name']}_xcor"][0] / 1000.0)
- axis.set_yticks(dic[f"{fol}/{dic['name']}_ymy"] / 1000.0)
- axis.grid(True, color="k", lw=1)
- plt.setp(axis.get_xticklabels(), visible=False)
- plt.setp(axis.get_yticklabels(), visible=False)
+ # axis.set_xticks(dic[f"{fol}/{dic['name']}_xcor"][0] / 1000.0)
+ # axis.set_yticks(dic[f"{fol}/{dic['name']}_ymy"] / 1000.0)
+ axis.set_xticks([])
+ axis.set_yticks([])
+ # axis.grid(True, color="k", lw=1)
+ # plt.setp(axis.get_xticklabels(), visible=False)
+ # plt.setp(axis.get_yticklabels(), visible=False)
fig.savefig(
f"{dic['where']}/{dic['id']}{res}_fipnum.png", bbox_inches="tight"
)
diff --git a/src/expreccs/visualization/plotting.py b/src/expreccs/visualization/plotting.py
index 0f1e4fb..f4f4121 100644
--- a/src/expreccs/visualization/plotting.py
+++ b/src/expreccs/visualization/plotting.py
@@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2023 NORCE
# SPDX-License-Identifier: GPL-3.0
+# pylint: disable=R0914
""""
Script to plot the top surface for the reference, regional, and site reservoirs.
@@ -23,7 +24,6 @@
GAS_DEN_REF = 1.86843 # kg/sm3
WAT_DEN_REF = 998.108 # kg/sm3
-KG_TO_T = 1e-3
KG_TO_KT = 1e-6
KG_TO_MT = 1e-9
@@ -162,8 +162,9 @@ def plotting_settings(dic):
"#9467bd",
"#8c564b",
"#e377c2",
- "k",
+ "#17becf",
"#bcbd22",
+ "k",
"#17becf",
"r",
]
@@ -190,12 +191,13 @@ def plotting_settings(dic):
(0, (5, 1)),
(0, (3, 10, 1, 10)),
(0, (3, 5, 1, 5)),
- (0, (3, 1, 1, 1)),
(0, (3, 5, 1, 5, 1, 5)),
- (0, (3, 1, 1, 1, 1, 1)),
+ ":",
+ "-.",
"--",
- (0, ()),
- "-",
+ (0, (3, 1, 1, 1)),
+ (0, (3, 1, 1, 1, 1, 1)),
+ "solid",
]
dic["lreference"] = r"REF"
dic["lregional"] = r"REG"
@@ -211,7 +213,11 @@ def plotting_settings(dic):
dic["lsite_free"] = r"SITE$_o$"
dic["cmaps"] = [
"jet",
- "seismic",
+ "brg",
+ "coolwarm",
+ "coolwarm",
+ "coolwarm",
+ "coolwarm",
"coolwarm",
"coolwarm",
"coolwarm",
@@ -227,6 +233,10 @@ def plotting_settings(dic):
"FLOWATJ+",
"FLOWATI-",
"FLOWATJ-",
+ "FLOGASI+",
+ "FLOGASJ+",
+ "FLOGASI-",
+ "FLOGASJ-",
"mass",
"diss",
"gas",
@@ -238,6 +248,10 @@ def plotting_settings(dic):
"watfluxj+",
"watfluxi-",
"watfluxj-",
+ "gasfluxi+",
+ "gasfluxj+",
+ "gasfluxi-",
+ "gasfluxj-",
"CO$_2$ total",
"CO$_2$ dissolved",
"CO$_2$ gas",
@@ -245,10 +259,14 @@ def plotting_settings(dic):
dic["units"] = [
"Saturation [-]",
"Pressure [bar]",
- "Mass flux x+ direction [t m$^{-2}$ day$^{-1}$]",
- "Mass flux y+ direction [t m$^{-2}$ day$^{-1}$]",
- "Mass flux x- direction [t m$^{-2}$ day$^{-1}$]",
- "Mass flux y- direction [t m$^{-2}$ day$^{-1}$]",
+ "H$_2$O velocity x+ direction [m day$^{-1}$]",
+ "H$_2$O velocity y+ direction [m day$^{-1}$]",
+ "H$_2$O velocity x- direction [m day$^{-1}$]",
+ "H$_2$O velocity y- direction [m day$^{-1}$]",
+ "CO$_2$ velocity x+ direction [m day$^{-1}$]",
+ "CO$_2$ velocity y+ direction [m day$^{-1}$]",
+ "CO$_2$ velocity x- direction [m day$^{-1}$]",
+ "CO$_2$ velocity y- direction [m day$^{-1}$]",
"CO$_2$ in-place [kt]",
"CO$_2$ in-place (liquid phase) [kt]",
"CO$_2$ in-place (gas phase) [kt]",
@@ -341,10 +359,10 @@ def summary_site(dic, nfol, ndeck, opmn):
dic (dict): Global dictionary with required parameters
"""
- if dic["compare"]:
- marker = dic["markers"][nfol]
- else:
- marker = ""
+ # if dic["compare"]:
+ # marker = dic["markers"][nfol]
+ # else:
+ # marker = ""
fol = dic["folders"][nfol]
res = dic[f"{fol}_decks"][ndeck]
if dic["reading"] == "resdata":
@@ -357,12 +375,12 @@ def summary_site(dic, nfol, ndeck, opmn):
dy = dic[f"{fol}/{res}_dy"][dic[f"{fol}/{res}_sensor"]]
dz = dic[f"{fol}/{res}_dz"][dic[f"{fol}/{res}_sensor"]]
poro = dic[f"{fol}/{res}_poro"][dic[f"{fol}/{res}_sensor"]]
- yvalues = [KG_TO_T * WAT_DEN_REF * val / (poro * dy * dz) for val in yvalues]
+ yvalues = [val / (poro * dy * dz) for val in yvalues]
if opmn[:6] == "BFLOWJ":
dx = dic[f"{fol}/{res}_dx"][dic[f"{fol}/{res}_sensor"]]
dz = dic[f"{fol}/{res}_dz"][dic[f"{fol}/{res}_sensor"]]
poro = dic[f"{fol}/{res}_poro"][dic[f"{fol}/{res}_sensor"]]
- yvalues = [KG_TO_T * WAT_DEN_REF * val / (poro * dx * dz) for val in yvalues]
+ yvalues = [val / (poro * dx * dz) for val in yvalues]
if ndeck == 0 and nfol > 0:
return dic
if ndeck == 0:
@@ -371,7 +389,6 @@ def summary_site(dic, nfol, ndeck, opmn):
yvalues,
label=dic["lreference"],
color=dic["colors"][-ndeck - 1],
- lw=3,
)
else:
dic["axis"].step(
@@ -379,11 +396,8 @@ def summary_site(dic, nfol, ndeck, opmn):
yvalues,
label=dic[f"l{res}"]
+ f"{' ('+dic['lfolders'][nfol]+')' if dic['compare'] else ''}",
- color=dic["colors"][-ndeck],
- linestyle=dic["linestyle"][-ndeck],
- lw=3,
- marker=marker,
- markersize=3,
+ color=dic["colors"][-ndeck - 1],
+ linestyle=dic["linestyle"][-nfol - 2],
)
return dic
@@ -570,7 +584,11 @@ def over_time_distance(dic):
)
dic["axis"][-1].set_ylabel("Distance [km]")
dic["axis"][-1].set_xlabel("Time")
- dic["axis"][-1].legend()
+ handles, labels = plt.gca().get_legend_handles_labels()
+ order = np.argsort(labels)
+ dic["axis"][-1].legend(
+ [handles[idx] for idx in order], [labels[idx] for idx in order]
+ )
dic["axis"][-1].xaxis.set_tick_params(rotation=45)
dic["fig"][-1].savefig(
f"{dic['where']}/{dic['id']}distance_from_border.png", bbox_inches="tight"
@@ -764,14 +782,15 @@ def handle_labels_distance(dic, nfol, res, fol, j):
else:
if j == 0:
j_j = 0
+ nfol = 1
else:
- j_j = j
+ j_j = j + 1
label = dic[f"l{res}"]
dic["axis"][-1].step(
dic[f"{fol}/{res}_dates"],
dic[f"{fol}/{res}_indicator_plot"],
color=dic["colors"][-1 - j_j],
- linestyle=dic["linestyle"][-1 - j_j],
+ linestyle=dic["linestyle"][-nfol - 2],
label=label,
)
return dic
@@ -873,7 +892,7 @@ def over_time_sensor(dic, nqua, quantity):
dic[f"{fol}/{res}_sensor_{quantity}"],
color=dic["colors"][-1],
linestyle=dic["linestyle"][-1],
- label=label, # +" (Grid 0 50m)"
+ label=label, # +" (Grid 0 40m)"
)
# referror = np.array(dic[f"{fol}/{res}_sensor_{quantity}"])
if res != "reference":
@@ -887,9 +906,10 @@ def over_time_sensor(dic, nqua, quantity):
)
dic["nmarker"] += 1
# quanti = np.array(dic[f"{fol}/{res}_sensor_{quantity}"])
- # error = np.max(np.abs(referror - quanti))
- # if quantity == "pressure":
- # print(fol, res, quantity, f"{error:.2f}")
+ # #error = np.max(np.abs(referror - quanti))
+ # error = np.linalg.norm(referror - quanti)
+ # #if quantity == "pressure":
+ # print(fol, res, quantity, f"{error:.2f}")
else:
dic["axiss"][nqua].step(
dic[f"{fol}/{res}_dates"],
@@ -901,7 +921,7 @@ def over_time_sensor(dic, nqua, quantity):
location = f"({dic[f'{fol}/{res}_sensor_location'][0]/1000.}, "
location += f"{dic[f'{fol}/{res}_sensor_location'][1]/1000.}, "
location += f"{dic[f'{fol}/{res}_sensor_location'][2]/1000.})"
- dic["axiss"][nqua].set_title(f"Sensor location {location} [km]")
+ dic["axiss"][nqua].set_title(f"Sensor location {location} [km] (Case 4)")
dic["axiss"][nqua].set_ylabel(f"{dic['units'][nqua]}")
dic["axiss"][nqua].set_xlabel("Time")
# if quantity != "pressure":
@@ -930,7 +950,12 @@ def handle_labels_difference(dic, res, j, nqua, nfol):
quantity = dic["quantity"][nqua]
fol = dic["folders"][nfol]
if dic["compare"]:
- label = dic[f"l{res}"] + f" ({dic['lfolders'][nfol]})"
+ label = (
+ dic[f"l{res}"]
+ + f" ({dic['lfolders'][nfol]})"
+ + r", $\max$="
+ + f"{np.array(dic[f'{fol}/{res}_maximum_{quantity}']).max():.2E}"
+ )
dic["axis"][nqua].step(
dic[f"{fol}/{res}_dates"],
dic[f"{fol}/{res}_difference_{quantity}"],
diff --git a/src/expreccs/visualization/reading.py b/src/expreccs/visualization/reading.py
index 15d7d5e..d3ebaf9 100644
--- a/src/expreccs/visualization/reading.py
+++ b/src/expreccs/visualization/reading.py
@@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2023 NORCE
# SPDX-License-Identifier: GPL-3.0
+# pylint: disable=R0912
""""
Script to read OPM Flow output files
@@ -26,7 +27,6 @@
GAS_DEN_REF = 1.86843
WAT_DEN_REF = 998.108
-KG_TO_T = 1e-3
KG_TO_KT = 1e-6
@@ -123,14 +123,10 @@ def resdata_arrays(dic, fol, res):
elif quantity == "gas":
dic[f"{fol}/{res}_{quantity}_array"].append(co2_g * KG_TO_KT)
elif quantity in ["FLOWATI+", "FLOWATI-"]:
- flow = (
- KG_TO_T
- * WAT_DEN_REF
- * np.array(
- dic[f"{fol}/{res}_rst"][
- f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}"
- ][i]
- )
+ flow = np.array(
+ dic[f"{fol}/{res}_rst"][
+ f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}"
+ ][i]
)
dic[f"{fol}/{res}_{quantity}_array"].append(
np.divide(
@@ -141,15 +137,31 @@ def resdata_arrays(dic, fol, res):
)
)
elif quantity in ["FLOWATJ+", "FLOWATJ-"]:
- flow = (
- KG_TO_T
- * WAT_DEN_REF
- * np.array(
- dic[f"{fol}/{res}_rst"][
- f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}"
- ][i]
+ flow = np.array(
+ dic[f"{fol}/{res}_rst"][
+ f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}"
+ ][i]
+ )
+ dic[f"{fol}/{res}_{quantity}_array"].append(
+ np.divide(
+ flow,
+ dic[f"{fol}/{res}_dx"]
+ * dic[f"{fol}/{res}_dz"]
+ * dic[f"{fol}/{res}_poro"],
+ )
+ )
+ elif quantity in ["FLOGASI+", "FLOGASI-"]:
+ flow = np.array(dic[f"{fol}/{res}_rst"][f"FLOGAS{quantity[-2:]}"][i])
+ dic[f"{fol}/{res}_{quantity}_array"].append(
+ np.divide(
+ flow,
+ dic[f"{fol}/{res}_dy"]
+ * dic[f"{fol}/{res}_dz"]
+ * dic[f"{fol}/{res}_poro"],
)
)
+ elif quantity in ["FLOGASJ+", "FLOGASJ-"]:
+ flow = np.array(dic[f"{fol}/{res}_rst"][f"FLOGAS{quantity[-2:]}"][i])
dic[f"{fol}/{res}_{quantity}_array"].append(
np.divide(
flow,
@@ -356,14 +368,10 @@ def opm_arrays(dic, fol, res, loadnpy):
elif quantity == "gas":
dic[f"{fol}/{res}_{quantity}_array"].append(co2_g * KG_TO_KT)
elif quantity in ["FLOWATI+", "FLOWATI-"]:
- flow = (
- KG_TO_T
- * WAT_DEN_REF
- * np.array(
- dic[f"{fol}/{res}_rst"][
- f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}", i
- ]
- )
+ flow = np.array(
+ dic[f"{fol}/{res}_rst"][
+ f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}", i
+ ]
)
dic[f"{fol}/{res}_{quantity}_array"].append(
np.divide(
@@ -374,15 +382,31 @@ def opm_arrays(dic, fol, res, loadnpy):
)
)
elif quantity in ["FLOWATJ+", "FLOWATJ-"]:
- flow = (
- KG_TO_T
- * WAT_DEN_REF
- * np.array(
- dic[f"{fol}/{res}_rst"][
- f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}", i
- ]
+ flow = np.array(
+ dic[f"{fol}/{res}_rst"][
+ f"FLO{dic[f'{fol}/{res}liq']}{quantity[-2:]}", i
+ ]
+ )
+ dic[f"{fol}/{res}_{quantity}_array"].append(
+ np.divide(
+ flow,
+ dic[f"{fol}/{res}_dx"]
+ * dic[f"{fol}/{res}_dz"]
+ * dic[f"{fol}/{res}_poro"],
+ )
+ )
+ elif quantity in ["FLOGASI+", "FLOGASI-"]:
+ flow = np.array(dic[f"{fol}/{res}_rst"][f"FLOGAS{quantity[-2:]}", i])
+ dic[f"{fol}/{res}_{quantity}_array"].append(
+ np.divide(
+ flow,
+ dic[f"{fol}/{res}_dy"]
+ * dic[f"{fol}/{res}_dz"]
+ * dic[f"{fol}/{res}_poro"],
)
)
+ elif quantity in ["FLOGASJ+", "FLOGASJ-"]:
+ flow = np.array(dic[f"{fol}/{res}_rst"][f"FLOGAS{quantity[-2:]}", i])
dic[f"{fol}/{res}_{quantity}_array"].append(
np.divide(
flow,