twrite hydraulic conductivities to VTK files - sphere - GPU-based 3D discrete e… | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 0aca99cb20d1d509490e3c02a50b71aee6742ddf | |
parent 8119b65511e8027e7919c4fe3ece55ec0def60b6 | |
Author: Anders Damsgaard <[email protected]> | |
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(-) | |
--- | |
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, |