[cig-commits] r18388 - in seismo/3D/FAULT_SOURCE/trunk/EXAMPLES: . splay_faults tpv5/DATA tpv5/DATA/FAULT

percygalvez at geodynamics.org percygalvez at geodynamics.org
Tue May 17 08:54:02 PDT 2011


Author: percygalvez
Date: 2011-05-17 08:54:02 -0700 (Tue, 17 May 2011)
New Revision: 18388

Added:
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/save_fault_crack_nodes.py
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults.jpg
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults.py
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults2.jpg
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/tsunami.py
Modified:
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/FAULT/Par_file_faults.in
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file.in
Log:
meshing splay faults

Added: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/save_fault_crack_nodes.py
===================================================================
--- seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/save_fault_crack_nodes.py	                        (rev 0)
+++ seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/save_fault_crack_nodes.py	2011-05-17 15:54:02 UTC (rev 18388)
@@ -0,0 +1,54 @@
+########### Fault elements and nodes ###############
+def (fault_id,fault_up,fault_down)
+
+
+   os.system('mkdir -p MESH') 
+   
+  # fault_u = 2  # fault surface up   : surface 2
+  # fault_d = 3  # fault surface down : surface 3
+   txt =''
+   
+   fault_file=open('MESH/fault_file_1.dat','w')
+   list_hex=cubit.parse_cubit_list('hex','all')
+   
+   quads_fault_u = cubit.get_surface_quads(fault_u)
+   quads_fault_d = cubit.get_surface_quads(fault_d)
+   
+   # TO DO : stop python properly in case fault nodes at both sides
+   #         do not match.
+   if len(quads_fault_u) != len(quads_fault_d):
+      stop
+   # Writting number of elements at both sides to make 
+   # double sure everything is going fine .
+   txt='%10i %10i\n' % (len(quads_fault_u),len(quads_fault_d))
+   fault_file.write(txt)
+   
+   dic_quads_fault_u = dict(zip(quads_fault_u,quads_fault_u)) 
+   dic_quads_fault_d = dict(zip(quads_fault_d,quads_fault_d)) 
+   
+   # FAULT SIDE UP
+   for h in list_hex: 
+       faces = cubit.get_sub_elements('hex',h,2)  
+       for f in faces:
+           if dic_quads_fault_u.has_key(f): 
+              nodes=cubit.get_connectivity('Face',f)
+   #           print 'h,fault nodes side up :',h,nodes[0],nodes[1],nodes[2],nodes[3]
+              txt='%10i %10i %10i %10i %10i\n' % (h,nodes[0],\
+                                                nodes[1],nodes[2],nodes[3])
+              fault_file.write(txt)
+   
+   # FAULT SIDE DOWN
+   for h in list_hex: 
+       faces = cubit.get_sub_elements('hex',h,2)  
+       for f in faces:
+           if dic_quads_fault_d.has_key(f): 
+              nodes=cubit.get_connectivity('Face',f)
+   #           print 'h,fault nodes side down :',h,nodes[0],nodes[1],nodes[2],nodes[3]
+              txt='%10i %10i %10i %10i %10i\n' % (h,nodes[0],\
+                                                nodes[1],nodes[2],nodes[3])
+              fault_file.write(txt)
+   
+   # CLOSING FAULT FILE 
+   fault_file.close()
+   
+

Added: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults.jpg
===================================================================
(Binary files differ)


Property changes on: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults.jpg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults.py
===================================================================
--- seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults.py	                        (rev 0)
+++ seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults.py	2011-05-17 15:54:02 UTC (rev 18388)
@@ -0,0 +1,193 @@
+#!/usr/bin/env python
+
+import cubit
+import boundary_definition
+import cubit2specfem3d 
+import math
+import os
+import sys
+import numarray
+
+cubit.cmd('reset')
+
+km = 1000
+y_vert=0*km
+h = 0
+# dipping angle 1
+d = math.pi/180
+dip1=7.5*d
+# dipping angle 2
+dip2=15*d
+
+####  initializing coordinates x,y,z
+x=[]     # fault
+y=[]
+z=[]
+
+xbulk=[] # bulk
+ybulk=[]
+zbulk=[]
+
+xmid=[]
+ymid=[]  # midpoints.
+zmid=[]
+
+# Bulk points ###
+xbulk.append(0*km)      #x1
+xbulk.append(227*km)    #x2  
+xbulk.append(227*km)    #x3
+xbulk.append(0*km)      #x4
+
+zbulk.append(0*km)   #y1
+zbulk.append(0*km)   #y2   
+zbulk.append(-50*km) #y3
+zbulk.append(-50*km) #y4
+
+ybulk=[y_vert]*4
+
+x.append(0*km) #x5!  
+x.append(4*km/math.tan(dip1))   #x6
+x.append(x[1]+8*km/math.tan(dip2))  #x7
+x.append(90*km)   #x8
+
+z.append(-30*km)    #y5
+z.append(-26*km+h)    #y6  ! shifting joint points.
+z.append(-18*km)    #y7
+z.append(0)         #y8
+
+y=[y_vert]*4
+
+
+### 6 midpoints for three fault cracks A, B and C ###
+# Fault A
+xmid.append((x[1]))   #9    (52) ! JOINT POINT
+zmid.append((z[1]-2*h))  
+
+# Fault B
+xmid.append((x[2]+x[1])/2)       #10   (76)
+xmid.append((x[2]+x[1])/2)       #11   (76)
+zmid.append((z[2]+z[1]+h)/2)    
+zmid.append((z[2]+z[1]-h)/2)     
+
+# Fault C
+xmid.append((x[3]+x[2])/2)       #12   (87)
+xmid.append((x[3]+x[2])/2)       #13   (87)
+zmid.append((z[3]+z[2]+h)/2)   
+zmid.append((z[3]+z[2]-h)/2)  
+
+
+ymid=[y_vert]*6
+
+#####
+
+####################  bulk ###########################################
+for i in range(len(xbulk)): 
+   vert="create vertex x "+str(xbulk[i])+" y "+str(ybulk[i])+" z "+str(zbulk[i]) 
+   cubit.cmd(vert) 
+
+################  Loading fault points profile#############################
+for i in range(len(x)):
+  vert="create vertex x "+str(x[i])+" y "+str(y[i])+" z "+str(z[i])
+  cubit.cmd(vert)
+
+################  Loading fault points profile#############################
+for i in range(len(xmid)):
+  vert="create vertex x "+str(xmid[i])+" y "+str(ymid[i])+" z "+str(zmid[i])
+  cubit.cmd(vert)
+
+
+################ creating fault domains #################################
+
+bulk1="create curve vertex 5 1"
+bulk2="create curve vertex 1 8"
+bulk3="create curve vertex 8 2"
+
+#bulk4="create curve vertex 2 6"
+#bulk5="create curve vertex 6 5"
+
+
+bulk6="create curve vertex 5 4"
+bulk7="create curve vertex 4 3"
+bulk8="create curve vertex 3 2"
+
+cubit.cmd(bulk1)
+cubit.cmd(bulk2)
+cubit.cmd(bulk3)
+#cubit.cmd(bulk4)
+#cubit.cmd(bulk5)
+cubit.cmd(bulk6)
+cubit.cmd(bulk7)
+cubit.cmd(bulk8)
+
+fault_up_A1="create curve spline vertex 2 6"
+fault_up_A2="create curve spline vertex 6 5"
+
+fault_down_A1="create curve spline vertex 5 9" 
+fault_down_A2="create curve spline vertex 9 2" 
+
+
+
+fault_up_B="create curve spline vertex 6 10 7"
+fault_down_B="create curve spline vertex 6 11 7"
+ 
+fault_up_C="create curve spline vertex 7 12 8"
+fault_down_C="create curve spline vertex 7 13 8" 
+
+cubit.cmd(fault_up_A1) 
+cubit.cmd(fault_up_A2) 
+cubit.cmd(fault_down_A1) 
+cubit.cmd(fault_down_A2) 
+cubit.cmd(fault_up_B) 
+cubit.cmd(fault_down_B) 
+cubit.cmd(fault_up_C) 
+cubit.cmd(fault_down_C) 
+
+surface="create surface curve 1 2 13 11 8 "
+cubit.cmd(surface)
+
+surface="create surface curve 3 14 12 7"
+cubit.cmd(surface)
+
+surface="create surface curve 9 10 6 5 4"
+cubit.cmd(surface)
+
+
+cubit.cmd("sweep surface 1  vector 0 1 0 distance "+str(90*km)) 
+cubit.cmd("sweep surface 2  vector 0 1 0 distance "+str(90*km)) 
+cubit.cmd("sweep surface 3  vector 0 1 0 distance "+str(90*km))
+
+### unmerging fault crack ###
+# FAULT A
+#cubit.cmd('curve 8 7 9 10 merge off')
+# FAULT B
+#cubit.cmd('curve 11 12  merge off')
+# FAULT C
+#cubit.cmd('curve 13 14 merge off')
+
+#cubit.cmd('merge tolerance 1e-3')
+###
+
+
+#####################################################
+elementsize = 4000
+
+# IMPRINTING 
+cubit.cmd("imprint all")
+
+# MERGING
+#cubit.cmd("set merge test bbox off")
+#cubit.cmd("set merge test internalsurf off")
+cubit.cmd("merge all")
+
+#curve 4 5 size 4000
+#curve 4 5 scheme equal
+#mesh curve 4 5
+
+cubit.cmd("surface 9 20 14 size "+str(elementsize))
+#cubit.cmd("volume 1 2 3 size "+str(elementsize))
+cubit.cmd("surface 9 20 14 scheme pave")
+cubit.cmd("mesh surface 9 20 14")
+#cubit.cmd("mesh volume 1 2 3")
+#cubit.cmd("unmerge surface 2 3")
+
+

Added: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults2.jpg
===================================================================
(Binary files differ)


Property changes on: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/splay_faults2.jpg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/tsunami.py
===================================================================
--- seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/tsunami.py	                        (rev 0)
+++ seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/splay_faults/tsunami.py	2011-05-17 15:54:02 UTC (rev 18388)
@@ -0,0 +1,182 @@
+#!/usr/bin/env python
+
+import cubit
+import boundary_definition
+import cubit2specfem3d 
+import math
+import os
+import sys
+import numarray
+
+cubit.cmd('reset')
+
+km = 1000
+y_vert=0*km
+h = 1
+h1 = 0.1
+# dipping angle 1
+d = math.pi/180
+dip1=7.5*d
+# dipping angle 2
+dip2=15*d
+
+####  initializing coordinates x,y,z
+x=[]     # fault
+y=[]
+z=[]
+
+xbulk=[] # bulk
+ybulk=[]
+zbulk=[]
+
+xmid=[]
+ymid=[]  # midpoints.
+zmid=[]
+
+# Bulk points ###
+xbulk.append(-10*km)    #x1
+xbulk.append(250*km)    #x2  
+xbulk.append(250*km)    #x3
+xbulk.append(-10*km)    #x4
+
+zbulk.append(0*km)   #y1
+zbulk.append(0*km)   #y2   
+zbulk.append(-50*km) #y3
+zbulk.append(-50*km) #y4
+
+ybulk=[y_vert]*4
+
+### CRACKS ##########
+x.append(0*km)                      #x5  
+x.append(4*km/math.tan(dip1))       #x6
+x.append(x[1]+8*km/math.tan(dip2))  #x7
+x.append(90*km)                     #x8
+x.append(227*km)                    #x9
+x.append(x[1])                      #x10
+
+z.append(-30*km)    #z5
+z.append(-26*km+h1)  #z6  ! shifting dh=h1 joint points.
+z.append(-18*km)    #z7
+z.append(0)         #z8
+z.append(0)         #z9 
+z.append(-26*km-h1)  #z10
+
+y=[y_vert]*6
+
+
+### 6 midpoints for three fault cracks A, B and C ###
+# Fault A (already open)
+#xmid.append((x[1]))   #9     (52) ! JOINT POINT
+#zmid.append((z[1]))  
+#xmid.append((x[5]))   #10    (52) ! JOINT POINT
+#zmid.append((z[5]))  
+
+# Fault B
+xmid.append((x[2]+x[1])/2)       #11   (76)
+xmid.append((x[2]+x[1])/2)       #12   (76)
+zmid.append((z[2]+z[1]+h)/2)    
+zmid.append((z[2]+z[1]-h)/2)     
+
+# Fault C
+xmid.append((x[3]+x[2])/2)       #13   (87)
+xmid.append((x[3]+x[2])/2)       #14   (87)
+zmid.append((z[3]+z[2]+h)/2)   
+zmid.append((z[3]+z[2]-h)/2)  
+
+
+ymid=[y_vert]*6
+
+#####
+
+####################  bulk ###########################################
+for i in range(len(xbulk)): 
+   vert="create vertex x "+str(xbulk[i])+" y "+str(ybulk[i])+" z "+str(zbulk[i]) 
+   cubit.cmd(vert) 
+
+################  Loading fault points profile#############################
+for i in range(len(x)):
+  vert="create vertex x "+str(x[i])+" y "+str(y[i])+" z "+str(z[i])
+  cubit.cmd(vert)
+
+################  Loading fault points profile#############################
+for i in range(len(xmid)):
+  vert="create vertex x "+str(xmid[i])+" y "+str(ymid[i])+" z "+str(zmid[i])
+  cubit.cmd(vert)
+
+
+################ creating fault domains #################################
+
+bulk1="create curve vertex 1 8" #c1
+bulk2="create curve vertex 8 9" #c2
+bulk3="create curve vertex 9 2" #c3   
+bulk4="create curve vertex 2 3" #c4
+bulk5="create curve vertex 3 4" #c5
+bulk6="create curve vertex 4 1" #c6
+
+cubit.cmd(bulk1)
+cubit.cmd(bulk2)
+cubit.cmd(bulk3)
+cubit.cmd(bulk4)
+cubit.cmd(bulk5)
+cubit.cmd(bulk6)
+
+fault_up_A1="create curve spline vertex 5 6"   #c7
+fault_up_A2="create curve spline vertex 6 9"   #c8
+
+fault_down_A1="create curve spline vertex 5 10" #c9
+fault_down_A2="create curve spline vertex 10 9" #c10 
+
+fault_up_B="create curve spline vertex 6 11 7"  #c11
+fault_down_B="create curve spline vertex 6 12 7" #c12
+ 
+fault_up_C="create curve spline vertex 7 13 8"    #c13
+fault_down_C="create curve spline vertex 7 14 8"  #c14
+
+cubit.cmd(fault_up_A1) 
+cubit.cmd(fault_up_A2) 
+cubit.cmd(fault_down_A1) 
+cubit.cmd(fault_down_A2) 
+cubit.cmd(fault_up_B) 
+cubit.cmd(fault_down_B) 
+cubit.cmd(fault_up_C) 
+cubit.cmd(fault_down_C) 
+
+surface="create surface curve 1 13 11 7 9 10 3 4 5 6 "
+cubit.cmd(surface)
+
+surface="create surface curve 2 14 12 8"
+cubit.cmd(surface)
+
+cubit.cmd("sweep surface 1 vector 0 1 0 distance "+str(90*km)) 
+cubit.cmd("sweep surface 2 vector 0 1 0 distance "+str(90*km)) 
+
+###  fault crack (Not necessary here) ###
+# FAULT A
+#cubit.cmd('curve 8 7 9 10 merge off')
+# FAULT B
+#cubit.cmd('curve 11 12  merge off')
+# FAULT C
+#cubit.cmd('curve 13 14 merge off')
+
+#cubit.cmd('merge tolerance 1e-3')
+###
+
+
+#####################################################
+elementsize = 2500
+
+# IMPRINTING 
+cubit.cmd("imprint all")
+
+# MERGING
+cubit.cmd("merge all")
+
+cubit.cmd("surface 13 18 size "+str(elementsize))
+cubit.cmd("volume 1 2 3 size "+str(elementsize))
+cubit.cmd("surface 13 18 scheme pave")
+cubit.cmd("mesh surface 13 18 ")
+cubit.cmd("mesh volume 1 2 3")
+#cubit.cmd("unmerge surface 2 3")
+
+########## Cracks #######
+

Modified: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/FAULT/Par_file_faults.in
===================================================================
--- seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/FAULT/Par_file_faults.in	2011-05-17 07:21:41 UTC (rev 18387)
+++ seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/FAULT/Par_file_faults.in	2011-05-17 15:54:02 UTC (rev 18388)
@@ -1,6 +1,6 @@
 1
 0.00134                 ! #tag #eta(damping)
-1                       ! 1 = dyn 2=kin
+2                       ! 1 = dyn 2=kin
 1000						! NTOUT : Number of time steps
 100                                             ! NTSNAP: time interation of snapshots
 -1.0e0                                          ! V_HEALING (-1 : Healing off)

Modified: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file
===================================================================
--- seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file	2011-05-17 07:21:41 UTC (rev 18387)
+++ seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file	2011-05-17 15:54:02 UTC (rev 18388)
@@ -36,7 +36,7 @@
 SAVE_MESH_FILES                 = .false.
 
 # path to store the local database file on each node
-LOCAL_PATH                      = /cluster/work/erdw/gpercy
+LOCAL_PATH                      = /home/galvez/FAULT_SOURCE/DATABASES_MPI
 
 # interval at which we output time step info and max of norm of displacement
 NTSTEP_BETWEEN_OUTPUT_INFO      = 500

Modified: seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file.in
===================================================================
--- seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file.in	2011-05-17 07:21:41 UTC (rev 18387)
+++ seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/Par_file.in	2011-05-17 15:54:02 UTC (rev 18388)
@@ -36,7 +36,7 @@
 SAVE_MESH_FILES                 = .false.
 
 # path to store the local database file on each node
-LOCAL_PATH                      = /cluster/work/erdw/gpercy
+LOCAL_PATH                      = /home/galvez/FAULT_SOURCE/DATABASES_MPI
 
 # interval at which we output time step info and max of norm of displacement
 NTSTEP_BETWEEN_OUTPUT_INFO      = 500



More information about the CIG-COMMITS mailing list