[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