tfix reynolds number calculation, add Re number to vtk files - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
 (HTM) git clone git://src.adamsgaard.dk/sphere
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit 6953a6e79d6f9b2c89e136d8283b348f332f8415
 (DIR) parent 692076d936059904de8c5e1365d11db9197f762e
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Tue, 14 Oct 2014 11:23:55 +0200
       
       fix reynolds number calculation, add Re number to vtk files
       
       Diffstat:
         M python/sphere.py                    |      19 +++++++++++++++++--
       
       1 file changed, 17 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/python/sphere.py b/python/sphere.py
       t@@ -1684,6 +1684,16 @@ class sim:
                else:
                    dporos.SetNumberOfTuples(grid.GetNumberOfPoints())
        
       +        # array of scalars: Reynold's number
       +        self.ReynoldsNumber()
       +        Re = vtk.vtkDoubleArray()
       +        Re.SetName("Reynolds number")
       +        Re.SetNumberOfComponents(1)
       +        if cell_centered:
       +            Re.SetNumberOfTuples(grid.GetNumberOfCells())
       +        else:
       +            Re.SetNumberOfTuples(grid.GetNumberOfPoints())
       +
                # insert values
                for z in range(self.num[2]):
                    for y in range(self.num[1]):
       t@@ -1693,6 +1703,7 @@ class sim:
                            vel.SetTuple(idx, self.v_f[x,y,z,:])
                            poros.SetValue(idx, self.phi[x,y,z])
                            dporos.SetValue(idx, self.dphi[x,y,z])
       +                    Re.SetValue(idx, self.Re[x,y,z])
        
                # add pres array to grid
                if cell_centered:
       t@@ -1700,11 +1711,13 @@ class sim:
                    grid.GetCellData().AddArray(vel)
                    grid.GetCellData().AddArray(poros)
                    grid.GetCellData().AddArray(dporos)
       +            grid.GetCellData().AddArray(Re)
                else:
                    grid.GetPointData().AddArray(pres)
                    grid.GetPointData().AddArray(vel)
                    grid.GetPointData().AddArray(poros)
                    grid.GetPointData().AddArray(dporos)
       +            grid.GetPointData().AddArray(Re)
        
                # write VTK XML image data file
                writer = vtk.vtkXMLImageDataWriter()
       t@@ -4504,7 +4517,8 @@ class sim:
        
            def ReynoldsNumber(self):
                '''
       -        Estimate the per-cell Reynolds number by: Re = rho * ||v_f|| * dx/mu
       +        Estimate the per-cell Reynolds number by: Re = rho * ||v_f|| * dx/mu.
       +        This value is returned and also stored in `self.Re`.
        
                :returns: Reynolds number
                :return type: Numpy array with dimensions like the fluid grid
       t@@ -4515,7 +4529,8 @@ class sim:
                for z in numpy.arange(self.num[2]):
                    for y in numpy.arange(self.num[1]):
                        for x in numpy.arange(self.num[0]):
       -                    self.v_f_magn = self.v_f[x,y,z,:].dot(self.v_f[x,y,z,:])
       +                    self.v_f_magn[x,y,z] = \
       +                            self.v_f[x,y,z,:].dot(self.v_f[x,y,z,:])
        
                self.Re = self.rho_f*self.v_f_magn*self.L[0]/self.num[0]/self.mu
                return self.Re