added permx and globIdx test, test darcy conversion

This commit is contained in:
Pål Grønås Drange
2017-01-12 16:02:09 +01:00
parent 4f89ed02af
commit cd75e134d5

View File

@@ -4,6 +4,11 @@ import sunbeam
class TestProps(unittest.TestCase):
spe3 = None
def assertClose(self, expected, observed, epsilon=1e-18):
diff = abs(expected - observed)
if diff > epsilon:
raise AssertionError('|%g - %g| = %g > %g' % (expected, observed, diff, epsilon))
def setUp(self):
if self.spe3 is None:
self.spe3 = sunbeam.parse('spe3/SPE3CASE1.DATA')
@@ -32,3 +37,21 @@ class TestProps(unittest.TestCase):
p = self.props
reg = p.getRegions('SATNUM')
self.assertEqual(0, len(reg))
def test_permx_values(self):
def md2si(md):
"""millidarcy->SI"""
return md * 1e-3 * 9.869233e-13
e3dp = self.props
grid = self.spe3.grid()
permx = e3dp['PERMX']
print('set(PERMX) = %s' % set(permx))
# 130mD, 40mD, 20mD, and 150mD, respectively, top to bottom
darcys = {0:md2si(130), 1:md2si(40), 2:md2si(20), 3:md2si(150)}
for i in range(grid.getNX()):
for j in range(grid.getNY()):
for k in range(grid.getNZ()):
g_idx = grid.globalIndex(i,j,k)
perm = permx[g_idx]
darcy = darcys[k]
self.assertClose(darcy, perm)