timprove functionality for determining shear stresses - 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 af3ff5f94fe8c7134db7b7e7614fa7759368cacb
 (DIR) parent 69c1afc4ac0f4239d9f3b875c96a2962fae2076a
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Tue, 24 Feb 2015 10:51:51 +0100
       
       improve functionality for determining shear stresses
       
       Diffstat:
         M python/sphere.py                    |      27 +++++++++++++++++++--------
       
       1 file changed, 19 insertions(+), 8 deletions(-)
       ---
 (DIR) diff --git a/python/sphere.py b/python/sphere.py
       t@@ -5793,24 +5793,35 @@ class sim:
                '''
                self.ndem = numpy.asarray(ndem)
        
       -    def shearStress(self):
       +    def shearStress(self, type='effective'):
                '''
                Calculates the sum of shear stress values measured on any moving
                particles with a finite and fixed velocity.
        
       +        :param type: Find the 'defined' or 'effective' (default) shear stress 
       +        :type type: str
       +
                :returns: The shear stress in Pa
                :return type: numpy.array
                '''
        
       -        fixvel = numpy.nonzero(self.fixvel > 0.0)
       -        force = numpy.zeros(3)
       +        if type == 'defined':
       +            return self.w_tau_x[0]
        
       -        # Summation of shear stress contributions
       -        for i in fixvel[0]:
       -            if self.vel[i,0] > 0.0:
       -                force += -self.force[i,:]
       +        elif type == 'effective':
        
       -        return force/(self.L[0]*self.L[1])
       +            fixvel = numpy.nonzero(self.fixvel > 0.0)
       +            force = numpy.zeros(3)
       +
       +            # Summation of shear stress contributions
       +            for i in fixvel[0]:
       +                if self.vel[i,0] > 0.0:
       +                    force += -self.force[i,:]
       +
       +            return force/(self.L[0]*self.L[1])
       +
       +        else:
       +            raise Exception('Shear stress type ' + type + ' not understood')
        
        
            def visualize(self, method='energy', savefig=True, outformat='png',