twrite hydraulic conductivities to VTK files - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
HTML git clone git://src.adamsgaard.dk/sphere
DIR Log
DIR Files
DIR Refs
DIR LICENSE
---
DIR commit 0aca99cb20d1d509490e3c02a50b71aee6742ddf
DIR parent 8119b65511e8027e7919c4fe3ece55ec0def60b6
HTML Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Wed, 12 Nov 2014 11:47:50 +0100
write hydraulic conductivities to VTK files
Diffstat:
M python/sphere.py | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+), 0 deletions(-)
---
DIR diff --git a/python/sphere.py b/python/sphere.py
t@@ -1871,6 +1871,15 @@ class sim:
else:
k.SetNumberOfTuples(grid.GetNumberOfPoints())
+ self.findHydraulicConductivities()
+ K = vtk.vtkDoubleArray()
+ K.SetName("Conductivity [m/s]")
+ K.SetNumberOfComponents(1)
+ if cell_centered:
+ K.SetNumberOfTuples(grid.GetNumberOfCells())
+ else:
+ K.SetNumberOfTuples(grid.GetNumberOfPoints())
+
# insert values
for z in range(self.num[2]):
for y in range(self.num[1]):
t@@ -1883,6 +1892,7 @@ class sim:
Re.SetValue(idx, self.Re[x,y,z])
if self.cfd_solver[0] == 1:
k.SetValue(idx, self.k[x,y,z])
+ K.SetValue(idx, self.K[x,y,z])
# add pres array to grid
if cell_centered:
t@@ -1893,6 +1903,7 @@ class sim:
grid.GetCellData().AddArray(Re)
if self.cfd_solver[0] == 1:
grid.GetCellData().AddArray(k)
+ grid.GetCellData().AddArray(K)
else:
grid.GetPointData().AddArray(pres)
grid.GetPointData().AddArray(vel)
t@@ -1901,6 +1912,7 @@ class sim:
grid.GetPointData().AddArray(Re)
if self.cfd_solver[0] == 1:
grid.GetPointData().AddArray(k)
+ grid.GetPointData().AddArray(K)
# write VTK XML image data file
writer = vtk.vtkXMLImageDataWriter()
t@@ -3150,6 +3162,22 @@ class sim:
raise Exception('findPermeabilities() only relevant for the '
+ 'Darcy solver (cfd_solver = 1)')
+ def findHydraulicConductivities(self):
+ '''
+ Calculates the hydrological conductivities from the Kozeny-Carman
+ relationship. These values are only relevant when the Darcy solver is
+ used (`self.cfd_solver = 1`). The permeability pre-factor `self.k_c`
+ and the assemblage porosities must be set beforehand. The former values
+ are set if a file from the `output/` folder is read using
+ `self.readbin`.
+ '''
+ if self.cfd_solver[0] == 1:
+ self.findPermeabilities()
+ self.K = self.k*self.rho_f*g/self.mu
+ else:
+ raise Exception('findPermeabilities() only relevant for the '
+ + 'Darcy solver (cfd_solver = 1)')
+
def defaultParams(self,
mu_s = 0.5,
mu_d = 0.5,