Skip to content

Commit 9d5a8ba

Browse files
authored
Subsidence (#97)
* subsidence * stash issue resolve
1 parent afb2155 commit 9d5a8ba

File tree

1 file changed

+13
-42
lines changed

1 file changed

+13
-42
lines changed

simulator/flow_rock.py

Lines changed: 13 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from pylops.utils.wavelets import ricker
2727
from pylops.signalprocessing import Convolve1D
2828
import sys
29-
from PyGRDECL.GRDECL_Parser import GRDECL_Parser # https://github.com/BinWang0213/PyGRDECL/tree/master
29+
#from PyGRDECL.GRDECL_Parser import GRDECL_Parser # https://github.com/BinWang0213/PyGRDECL/tree/master
3030
from scipy.interpolate import interp1d
3131
from scipy.interpolate import griddata
3232
from pipt.misc_tools.analysis_tools import store_ensemble_sim_information
@@ -759,14 +759,13 @@ def run_fwd_sim(self, state, member_i, del_folder=True):
759759

760760
# The inherited simulator also has a run_fwd_sim. Call this.
761761
self.ensemble_member = member_i
762-
<<<<<<< Updated upstream
763-
return super().run_fwd_sim(state, member_i, del_folder=del_folder)
764762

765-
=======
766763
#return super().run_fwd_sim(state, member_i, del_folder=del_folder)
764+
765+
767766
self.pred_data = super().run_fwd_sim(state, member_i, del_folder=del_folder)
768767
return self.pred_data
769-
>>>>>>> Stashed changes
768+
770769
def call_sim(self, folder=None, wait_for_proc=False, run_reservoir_model=None, save_folder=None):
771770
# replace the sim2seis part (which is unusable) by avo based on Pylops
772771

@@ -909,10 +908,7 @@ def get_avo_result(self, folder, save_folder):
909908
def calc_velocities(self, folder, save_folder, grid, v, f_dim):
910909
# The properties in pem are only given in the active cells
911910
# indices of active cells:
912-
<<<<<<< Updated upstream
913911

914-
=======
915-
>>>>>>> Stashed changes
916912
true_indices = np.where(grid['ACTNUM'])
917913

918914
# Alt 2
@@ -959,7 +955,7 @@ def calc_velocities(self, folder, save_folder, grid, v, f_dim):
959955
save_dic = {'vp': vp, 'vs': vs, 'rho': rho}#, 'bulkmod': self.bulkmod, 'shearmod': self.shearmod,
960956
#'Pov': self.poverburden, 'P': self.pressure, 'Peff': self.peff, 'por': porosity} # for debugging
961957
else:
962-
save_dic = {'vp': vp, 'vs': vs, 'rho': rho, 'por': porosity, 'sgas': sgas, 'Pd': pdyn}
958+
save_dic = {'vp': vp, 'vs': vs, 'rho': rho}#, 'por': porosity, 'sgas': sgas, 'Pd': pdyn}
963959

964960
if save_folder is not None:
965961
file_name = save_folder + os.sep + f"vp_vs_rho_vint{v}.npz" if save_folder[-1] != os.sep \
@@ -1033,12 +1029,12 @@ def _get_props(self, kw_file):
10331029
with np.load(file) as f:
10341030
exec(f'self.{kw} = f[ "{kw}" ]')
10351031
self.NX, self.NY, self.NZ = f['NX'], f['NY'], f['NZ']
1036-
else:
1037-
reader = GRDECL_Parser(filename=file)
1038-
reader.read_GRDECL()
1039-
exec(f"self.{kw} = reader.{kw}.reshape((reader.NX, reader.NY, reader.NZ), order='F')")
1040-
self.NX, self.NY, self.NZ = reader.NX, reader.NY, reader.NZ
1041-
eval(f'np.savez("./{kw}.npz", {kw}=self.{kw}, NX=self.NX, NY=self.NY, NZ=self.NZ)')
1032+
#else:
1033+
# reader = GRDECL_Parser(filename=file)
1034+
# reader.read_GRDECL()
1035+
# exec(f"self.{kw} = reader.{kw}.reshape((reader.NX, reader.NY, reader.NZ), order='F')")
1036+
# self.NX, self.NY, self.NZ = reader.NX, reader.NY, reader.NZ
1037+
# eval(f'np.savez("./{kw}.npz", {kw}=self.{kw}, NX=self.NX, NY=self.NY, NZ=self.NZ)')
10421038

10431039
def _calc_avo_props(self, dt=0.0005):
10441040
# dt is the fine resolution sampling rate
@@ -1249,6 +1245,7 @@ def _calc_avo_props_active_cells(self, grid, vp, vs, rho, dt=0.0005):
12491245
kind='nearest', fill_value='extrapolate')
12501246
trace_interp[ind, :] = f(t_interp)
12511247

1248+
12521249
if i == 0:
12531250
avo_data = trace_interp # 3D
12541251
elif i == 1:
@@ -2260,34 +2257,8 @@ def van_opstal(self, lambda_vals, z_res, z_base, poisson):
22602257

22612258
return value
22622259

2263-
def van_opstal_org(self, lambda_vals, z_res, z_base, poisson):
2264-
"""
2265-
Compute the Van Opstal transfer function.
2266-
2267-
Args:
2268-
lambda_vals -- Numpy array of lambda values.
2269-
z_res -- Depth to reservoir [m].
2270-
z_base -- Distance to the basement [m].
2271-
poisson -- Poisson's ratio.
2272-
2273-
Returns:
2274-
value -- Numpy array of computed values.
2275-
"""
2276-
2277-
term1 = np.exp(lambda_vals * z_res) * (2 * lambda_vals * z_base + 1)
2278-
term2 = np.exp(-lambda_vals * z_res) * (
2279-
4 * lambda_vals ** 2 * z_base ** 2 + 2 * lambda_vals * z_base + (3 - 4 * poisson) ** 2)
2280-
2281-
term3_numer = (3 - 4 * poisson) * (
2282-
np.exp(-lambda_vals * (2 * z_base + z_res)) - np.exp(-lambda_vals * (2 * z_base - z_res)))
2283-
term3_denom = 2 * ((1 - 2 * poisson) ** 2 + lambda_vals ** 2 * z_base ** 2 + (3 - 4 * poisson) * np.cosh(
2284-
lambda_vals * z_base) ** 2)
2285-
2286-
value = term1 - term2 - (term3_numer / term3_denom)
2287-
2288-
return value
2260+
def hankel_transform_order_0(self, f, r_max, num_points=1000):
22892261

2290-
def hankel_transform_order_0(f, r_max, num_points=1000):
22912262
"""
22922263
Computes the Hankel transform of order 0 of a function f(r).
22932264

0 commit comments

Comments
 (0)