/[escript]/trunk/escript/py_src/faultsystems.py
ViewVC logotype

Diff of /trunk/escript/py_src/faultsystems.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2664 by gross, Tue Sep 15 06:04:44 2009 UTC revision 2665 by gross, Wed Sep 16 02:56:02 2009 UTC
# Line 413  class FaultSystem: Line 413  class FaultSystem:
413             normals.append(numpy.array([sin(dips[i])*strike_vectors[i][1], -sin(dips[i])*strike_vectors[i][0], cos(dips[i])]) )             normals.append(numpy.array([sin(dips[i])*strike_vectors[i][1], -sin(dips[i])*strike_vectors[i][0], cos(dips[i])]) )
414        
415          d=numpy.cross(strike_vectors[0],normals[0])          d=numpy.cross(strike_vectors[0],normals[0])
416          depth_vectors=[depths[0]*d/numpy.linalg.norm(d) ]          if d[2]>0:
417                 f=-1
418            else:
419                 f=1
420            depth_vectors=[f*depths[0]*d/numpy.linalg.norm(d) ]
421          for i in xrange(1,n_segs):          for i in xrange(1,n_segs):
422              d=-numpy.cross(normals[i-1],normals[i])              d=-numpy.cross(normals[i-1],normals[i])
423              d_l=numpy.linalg.norm(d)              d_l=numpy.linalg.norm(d)
424              if d_l<=0:              if d_l<=0:
425                   d=numpy.cross(strike_vectors[i],normals[i])                   d=numpy.cross(strike_vectors[i],normals[i])
426                   depth_vectors.append([depths[d]*d/numpy.linalg.norm(d)])                   d_l=numpy.linalg.norm(d)
427              else:              else:
                  d=depths[i]*d/d_l  
428                   for L in [ strike_vectors[i], strike_vectors[i-1]]:                   for L in [ strike_vectors[i], strike_vectors[i-1]]:
429                      if numpy.linalg.norm(numpy.cross(L,d)) <= self.MIN_DEPTH_ANGLE * numpy.linalg.norm(L) * depths[i]:                      if numpy.linalg.norm(numpy.cross(L,d)) <= self.MIN_DEPTH_ANGLE * numpy.linalg.norm(L) * d_l:
430                           raise ValueError,"%s-th depth vector %s too flat."%(i, d)                           raise ValueError,"%s-th depth vector %s too flat."%(i, d)
431                   depth_vectors.append(d)              if d[2]>0:
432                    f=-1
433                else:
434                    f=1
435                depth_vectors.append(f*d*depths[i]/d_l)
436          d=numpy.cross(strike_vectors[n_segs-1],normals[n_segs-1])          d=numpy.cross(strike_vectors[n_segs-1],normals[n_segs-1])
437          depth_vectors.append(depths[n_segs]*d/numpy.linalg.norm(d))          if d[2]>0:
438                 f=-1
439            else:
440                 f=1
441            depth_vectors.append(f*depths[n_segs]*d/numpy.linalg.norm(d))
442          bottom_polyline=[ top_polyline[i]+depth_vectors[i] for i in xrange(n_segs+1) ]          bottom_polyline=[ top_polyline[i]+depth_vectors[i] for i in xrange(n_segs+1) ]
443       #       #
444       #   calculate offsets if required:       #   calculate offsets if required:

Legend:
Removed from v.2664  
changed lines
  Added in v.2665

  ViewVC Help
Powered by ViewVC 1.1.26