[cig-commits] r18547 - in seismo/3D/FAULT_SOURCE: branches/new_fault_db/CUBIT branches/new_fault_db/decompose_mesh_SCOTCH branches/new_fault_db/src trunk/EXAMPLES/tpv5/DATA/FAULT

percygalvez at geodynamics.org percygalvez at geodynamics.org
Tue Jun 7 07:44:42 PDT 2011


Author: percygalvez
Date: 2011-06-07 07:44:42 -0700 (Tue, 07 Jun 2011)
New Revision: 18547

Modified:
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/CUBIT/crack_fault.py
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/compile_all.bash
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/fault_scotch.f90
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/assemble_MPI_scalar.f90
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/create_regions_mesh.f90
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_object.f90
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/get_MPI.f90
   seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/FAULT/Par_file_faults.in
Log:
new database running for splay faults

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/CUBIT/crack_fault.py
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/CUBIT/crack_fault.py	2011-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/CUBIT/crack_fault.py	2011-06-07 14:44:42 UTC (rev 18547)
@@ -80,7 +80,7 @@
 cubit.cmd("sweep curve 6 vector 0 0 -1 distance "+str(21*km)) 
 
 #####################################################
-elementsize = 300
+elementsize = 1000
 cubit.cmd("imprint all")
 cubit.cmd("merge all")
 cubit.cmd("surface 1 size "+str(elementsize))

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/compile_all.bash
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/compile_all.bash	2011-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/compile_all.bash	2011-06-07 14:44:42 UTC (rev 18547)
@@ -3,4 +3,4 @@
 make 
 # ./xdecompose_mesh_SCOTCH 4 MESH/OUTPUT_FILES ../DATABASES_MPI/
 echo "./xdecompose_mesh_SCOTCH $npart $input_dir $ouput_dir "
-./xdecompose_mesh_SCOTCH 100 ~/FAULT_SOURCE/CUBIT/MESH /cluster/work/erdw/gpercy
+./xdecompose_mesh_SCOTCH 100 ~/FAULT_SOURCE/EXAMPLES/splay_faults/MESH /cluster/work/erdw/gpercy

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/fault_scotch.f90
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/fault_scotch.f90	2011-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/fault_scotch.f90	2011-06-07 14:44:42 UTC (rev 18547)
@@ -16,7 +16,7 @@
  
   integer, parameter :: long = SELECTED_INT_KIND(18)
 
-  double precision, parameter :: FAULT_GAP_TOLERANCE = 0.01d0
+  double precision, parameter :: FAULT_GAP_TOLERANCE = 1.0d0
 
   public :: read_fault_files, fault_collect_elements, close_faults, write_fault_database, &
             save_nodes_coords, nodes_coords_open, faults
@@ -252,11 +252,11 @@
   integer, dimension(0:nelmnts-1), intent(inout)    :: part
 
 !LOCAL VARIABLES :
-!  integer, dimension(0:nelmnts)                  :: xadj
-!  integer, dimension(0:sup_neighbour*nelmnts-1)  :: adjncy
+  integer, dimension(0:nelmnts)                  :: xadj
+  integer, dimension(0:sup_neighbour*nelmnts-1)  :: adjncy
   integer, dimension(0:nnodes-1)                 :: nnodes_elmnts
   integer, dimension(0:nsize*nnodes-1)           :: nodes_elmnts
-!  integer  :: max_neighbour       
+  integer  :: max_neighbour       
 
 !SHILDING 
   integer  :: i,j, ipart,nproc_null,nproc_null_final
@@ -287,18 +287,19 @@
    !pgb: leaving more space for fault elements. 
    !jpa: But if the number of fault elements is much smaller than nproc_null
    !     we will end up with a very UNbalanced proc 0 !
-    ipart=0
-    do i = 1, nproc_null
-      if ( ipart == nproc ) ipart = 0
-      ipart = ipart +1
-      part(elem_proc_null(i)) = ipart
-    end do
-
+    ipart=1
+    if (nproc > 1) then 
+      do i = 1, nproc_null
+        part(elem_proc_null(i)) = ipart
+        if ( ipart == nproc-1 ) ipart = 0
+        ipart = ipart +1
+      end do
+    end if
     deallocate(elem_proc_null)
   endif
- ! call mesh2dual_ncommonnodes_fault(nelmnts, nnodes, nsize, sup_neighbour, &
- !                               elmnts, xadj, adjncy, nnodes_elmnts, &
- !                               nodes_elmnts, max_neighbour, 4, esize)
+  call mesh2dual_ncommonnodes_fault(nelmnts, nnodes, nsize, sup_neighbour, &
+                                elmnts, xadj, adjncy, nnodes_elmnts, &
+                                nodes_elmnts, max_neighbour, 4, esize)
   
     ! coupled elements
     !  ---------------
@@ -314,50 +315,50 @@
     !                1    2   
                  
     ! Allocating elements with double shield layer
-!  print *, "Fault shield double-layer :"
-!  do el = 0, nelmnts-1
-!    if ( is_on_fault(el+1) ) then
-!      part(el) = 0
-!      do k1 = xadj(el), xadj(el+1) - 1
-!        el_1 = adjncy(k1) 
-!        part(el_1) = 0
-!        do k2 = xadj(el_1), xadj(el_1+1) - 1
-!          el_2 = adjncy(k2) 
-!          part(el_2) = 0
-!        enddo
-!      enddo
-!    endif
-!  enddo
+  print *, "Fault shield double-layer :"
+  do el = 0, nelmnts-1
+    if ( is_on_fault(el+1) ) then
+      part(el) = 0
+      do k1 = xadj(el), xadj(el+1) - 1
+        el_1 = adjncy(k1) 
+        part(el_1) = 0
+        do k2 = xadj(el_1), xadj(el_1+1) - 1
+          el_2 = adjncy(k2) 
+          part(el_2) = 0
+        enddo
+      enddo
+    endif
+  enddo
 
  ! list of elements per node
  !   nnodes_elmnts(i) = number of elements containing node #i (i=0:nnodes-1)     
  !   nodes_elmnts(nsize*i:nsize*i+nnodes_elmnts(i)-1) = index of elements (starting at 0) containing node #i  
-  nnodes_elmnts(:) = 0
-  nodes_elmnts(:) = 0
-  do i = 0, esize*nelmnts-1
-    nodes_elmnts(elmnts(i)*nsize+nnodes_elmnts(elmnts(i))) = i/esize
-    nnodes_elmnts(elmnts(i)) = nnodes_elmnts(elmnts(i)) + 1
-  end do
+!  nnodes_elmnts(:) = 0
+!  nodes_elmnts(:) = 0
+!  do i = 0, esize*nelmnts-1
+!    nodes_elmnts(elmnts(i)*nsize+nnodes_elmnts(elmnts(i))) = i/esize
+!    nnodes_elmnts(elmnts(i)) = nnodes_elmnts(elmnts(i)) + 1
+!  end do
 
  ! fault zone layer = the set of elements that contain at least one fault node
-  print *, "Fault zone layer :"
-  do iflt=1,size(faults)
-    do e=1,faults(iflt)%nspec
-      do k=1,4
+!  print *, "Fault zone layer :"
+!  do iflt=1,size(faults)
+!    do e=1,faults(iflt)%nspec
+!      do k=1,4
 
-        inode = faults(iflt)%inodes1(k,e)-1  ! node index, starting at 0
-        k1 = nsize*inode
-        k2 = k1 + nnodes_elmts(inode) -1
-        part( nodes_elmnts(k1:k2) ) = 0
+!        inode = faults(iflt)%inodes1(k,e)-1  ! node index, starting at 0
+!        k1 = nsize*inode
+!        k2 = k1 + nnodes_elmts(inode) -1
+!        part( nodes_elmnts(k1:k2) ) = 0
 
-        inode = faults(iflt)%inodes2(k,e)-1 
-        k1 = nsize*inode
-        k2 = k1 + nnodes_elmts(inode) -1
-        part( nodes_elmnts(k1:k2) ) = 0
+!        inode = faults(iflt)%inodes2(k,e)-1 
+!        k1 = nsize*inode
+!        k2 = k1 + nnodes_elmts(inode) -1
+!        part( nodes_elmnts(k1:k2) ) = 0
 
-      end do
-    end do
-  end do
+!      end do
+!    end do
+!  end do
 ! jpa: if the previous section works then clean up obsolete stuff
 
   nproc_null_final = count( part == 0 )

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/assemble_MPI_scalar.f90
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/assemble_MPI_scalar.f90	2011-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/assemble_MPI_scalar.f90	2011-06-07 14:44:42 UTC (rev 18547)
@@ -77,12 +77,14 @@
     allocate(request_recv_scalar_ext_mesh(num_interfaces_ext_mesh))
 
     ! partition border copy into the buffer
+    write(6,*) 'run 1'
     do iinterface = 1, num_interfaces_ext_mesh
       do ipoin = 1, nibool_interfaces_ext_mesh(iinterface)
         buffer_send_scalar_ext_mesh(ipoin,iinterface) = array_val(ibool_interfaces_ext_mesh(ipoin,iinterface))
       enddo
     enddo
 
+    write(6,*) 'run 2'
     ! send messages
     do iinterface = 1, num_interfaces_ext_mesh
       call issend_cr(buffer_send_scalar_ext_mesh(1:nibool_interfaces_ext_mesh(iinterface),iinterface), &
@@ -99,11 +101,13 @@
            )
     enddo
 
+    write(6,*) 'run 3'
     ! wait for communications completion
     do iinterface = 1, num_interfaces_ext_mesh
       call wait_req(request_recv_scalar_ext_mesh(iinterface))
     enddo
 
+    write(6,*) 'run 4'
     ! adding contributions of neighbours
     do iinterface = 1, num_interfaces_ext_mesh
       do ipoin = 1, nibool_interfaces_ext_mesh(iinterface)
@@ -112,11 +116,13 @@
       enddo
     enddo
 
+    write(6,*) 'run 5'
     ! wait for communications completion (send)
     do iinterface = 1, num_interfaces_ext_mesh
       call wait_req(request_send_scalar_ext_mesh(iinterface))
     enddo
 
+    write(6,*) 'run 6' 
     deallocate(buffer_send_scalar_ext_mesh)
     deallocate(buffer_recv_scalar_ext_mesh)
     deallocate(request_send_scalar_ext_mesh)
@@ -159,13 +165,16 @@
 ! here we have to assemble all the contributions between partitions using MPI
 
 ! assemble only if more than one partition
+    write(6,*) 'NPROC',NPROC
+  
   if(NPROC > 1) then
-
+    write(6,*) 'run 1'
     allocate(buffer_send_scalar_ext_mesh(max_nibool_interfaces_ext_mesh,num_interfaces_ext_mesh))
     allocate(buffer_recv_scalar_ext_mesh(max_nibool_interfaces_ext_mesh,num_interfaces_ext_mesh))
     allocate(request_send_scalar_ext_mesh(num_interfaces_ext_mesh))
     allocate(request_recv_scalar_ext_mesh(num_interfaces_ext_mesh))
 
+    write(6,*) 'run 2'
     ! partition border copy into the buffer
     do iinterface = 1, num_interfaces_ext_mesh
       do ipoin = 1, nibool_interfaces_ext_mesh(iinterface)
@@ -173,6 +182,7 @@
       enddo
     enddo
 
+    write(6,*) 'run 3'
     ! send messages
     do iinterface = 1, num_interfaces_ext_mesh
       call issend_i(buffer_send_scalar_ext_mesh(1:nibool_interfaces_ext_mesh(iinterface),iinterface), &
@@ -188,11 +198,13 @@
            request_recv_scalar_ext_mesh(iinterface) &
            )
     enddo
+    write(6,*) 'run 4'
 
     ! wait for communications completion
     do iinterface = 1, num_interfaces_ext_mesh
       call wait_req(request_recv_scalar_ext_mesh(iinterface))
     enddo
+    write(6,*) 'run 5'
 
     ! adding contributions of neighbours
     do iinterface = 1, num_interfaces_ext_mesh
@@ -201,11 +213,13 @@
              array_val(ibool_interfaces_ext_mesh(ipoin,iinterface)) + buffer_recv_scalar_ext_mesh(ipoin,iinterface)
       enddo
     enddo
+    write(6,*) 'run 6'
 
     ! wait for communications completion (send)
     do iinterface = 1, num_interfaces_ext_mesh
       call wait_req(request_send_scalar_ext_mesh(iinterface))
     enddo
+    write(6,*) 'run 7'
 
     deallocate(buffer_send_scalar_ext_mesh)
     deallocate(buffer_recv_scalar_ext_mesh)

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/create_regions_mesh.f90
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/create_regions_mesh.f90	2011-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/create_regions_mesh.f90	2011-06-07 14:44:42 UTC (rev 18547)
@@ -55,7 +55,8 @@
   use create_regions_mesh_ext_par
   use fault_object, only: fault_read_input,fault_setup, &
                           fault_save_arrays,fault_save_arrays_test,&
-                          nnodes_coords_open,nodes_coords_open,ANY_FAULT_IN_THIS_PROC 
+                          nnodes_coords_open,nodes_coords_open,ANY_FAULT_IN_THIS_PROC,&
+                          ANY_FAULT 
 
   implicit none
 

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_object.f90
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_object.f90	2011-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_object.f90	2011-06-07 14:44:42 UTC (rev 18547)
@@ -178,9 +178,6 @@
 
   do iflt=1,size(fault_db)
 
-    ! close the fault in (xyz)store_dummy
-    call close_fault(fault_db(iflt)) 
-    
     call setup_iface(fault_db(iflt),nnodes_ext_mesh,nodes_coords_ext_mesh,nspec,nglob,ibool)
 
     ! saving gll indices for each fault face, needed for ibulks
@@ -194,6 +191,9 @@
     !          from global indices on the fault to global indices on the bulk
     call setup_ibulks(fault_db(iflt),ibool,nspec)
 
+    ! close the fault in (xyz)store_dummy
+    call close_fault(fault_db(iflt)) 
+
     call setup_Kelvin_Voigt_eta(fault_db(iflt),nspec)
  
     call save_fault_xyzcoord_ibulk(fault_db(iflt))

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/get_MPI.f90
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/get_MPI.f90	2011-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/get_MPI.f90	2011-06-07 14:44:42 UTC (rev 18547)
@@ -155,7 +155,7 @@
   if( myrank == 0 ) then
     write(IMAIN,*) '     total MPI interface points: ',ilocnum  
   endif
-  
+ 
 ! checks with assembly of test fields
   allocate(test_flag(nglob),test_flag_cr(nglob))
   test_flag(:) = 0
@@ -179,6 +179,8 @@
       enddo
     enddo
   enddo
+
+  write(6,*) 'sync 1' !test 
   call sync_all()
 
   ! collects contributions from different MPI partitions
@@ -192,8 +194,14 @@
      count = count + nibool_interfaces_ext_mesh(iinterface)
      !write(*,*) myrank,'interfaces ',iinterface,nibool_interfaces_ext_mesh(iinterface),max_nibool_interfaces_ext_mesh
   enddo
+  
+  write(6,*) 'sync 2' !test
+  write(6,*) 'proc : ',myrank 
   call sync_all()
-  
+   
+  write(6,*) 'sync 2.1' !test
+  write(6,*) 'proc : ',myrank 
+
   call sum_all_i(count,iglob)
   if( myrank == 0 ) then
     if( iglob /= ilocnum ) call exit_mpi(myrank,'error total global MPI interface points')
@@ -201,11 +209,16 @@
   
   ! adds contributions from different partitions to flag arrays
   ! integer arrays
+  
+  write(6,*) 'sync 3' !test
+  write(6,*) 'proc',myrank 
   call assemble_MPI_scalar_i_ext_mesh(NPROC,nglob,test_flag, &
                         num_interfaces_ext_mesh,max_nibool_interfaces_ext_mesh, &
                         nibool_interfaces_ext_mesh,ibool_interfaces_dummy,&
                         my_neighbours_ext_mesh)
   ! custom_real arrays
+ 
+  write(6,*) 'sync 4' !test  (CODE STOPS inside this subroutine below)
   call assemble_MPI_scalar_ext_mesh(NPROC,nglob,test_flag_cr, &
                         num_interfaces_ext_mesh,max_nibool_interfaces_ext_mesh, &
                         nibool_interfaces_ext_mesh,ibool_interfaces_dummy, &
@@ -218,7 +231,9 @@
     ! only counts flags with MPI contributions
     if( test_flag(iglob) > myrank+1 ) i = i + 1
     if( test_flag_cr(iglob) > myrank+1.0) j = j + 1
-  enddo  
+  enddo 
+   
+  write(6,*) 'sync 5' !test 
   call sum_all_i(i,inum)
   call sum_all_i(j,iglob)
   if( myrank == 0 ) then

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-06-06 16:51:45 UTC (rev 18546)
+++ seismo/3D/FAULT_SOURCE/trunk/EXAMPLES/tpv5/DATA/FAULT/Par_file_faults.in	2011-06-07 14:44:42 UTC (rev 18547)
@@ -1,15 +1,27 @@
-1
+2
 0.00134                 ! #tag #eta(damping)
-2                       ! 1 = dyn 2=kin
+0.00134                 ! #tag #eta(damping)
+1                       ! 1 = dyn 2=kin
 1000						! NTOUT : Number of time steps
 100                                             ! NTSNAP: time interation of snapshots
 -1.0e0                                          ! V_HEALING (-1 : Healing off)
 1e-3                                            ! V_RUPT
 &BEGIN_FAULT dummy_idfault=1 /
-&INIT_STRESS S1=70.0e6,S2=0.0e0,S3=-120.0e6,n1=3,n2=0,n3=0 /
-&DIST2D shape='square',    val = 78.0e6, xc = -7500.0e0, yc =0e0, zc=  -7500.0e0, r=0e0, l=3000.0e0, lx=0e0, ly=0e0, lz=0e0 /
-&DIST2D shape='square',    val = 81.6e6, xc =       0e0, yc =0e0, zc=  -7500.0e0, r=0e0, l=3000.0e0, lx=0e0, ly=0e0, lz=0e0 /
-&DIST2D shape='square',    val = 62.0e6, xc =  7500.0e0, yc =0e0, zc=  -7500.0e0, r=0e0, l=3000.0e0, lx=0e0, ly=0e0, lz=0e0 /
-&SWF mus=10000.0e0,mud=0.525e0,dc=0.4e0,nmus=1,nmud=0,ndc=0 /  
-&DIST2D	shape='rectangle', val = 0.677e0, xc =  0e0, yc =0e0, zc=  -7500.0e0, r=0e0,  l=0e0, lx=30000.0e0, ly=0.0e0, lz=15000.0e0 /
+&INIT_STRESS S1=0.0e6,S2=0.0e0,S3=0.0e6,n1=2,n2=0,n3=2 / 
+&DIST2D	shape='rectangle', val =  2.16e6, xc = 113500e0, yc =120.0e3, zc= -19500.0e0, r=0e0,  l=0e0, lx=227.0e3, ly=80.0e3, lz=30000.0e0 /
+&DIST2D shape='rectangle', val =  5.04e6, xc = 166521.863e0, yc =148.0e3, zc= -7962.09773e0, r=0e0, l=0.0e0, lx=23794.68e0, ly=24.0e3, lz=3132.628e0 / 
+&DIST2D	shape='rectangle', val = -0.10e6, xc = 113500e0, yc =120.0e3, zc= -15000.0e0, r=0e0,  l=0e0, lx=227.0e3, ly=80.0e3, lz=30000.0e0 /
+&DIST2D	shape='rectangle', val = -4.78e6, xc = 113500e0, yc =120.0e3, zc= -19500.0e0, r=0e0,  l=0e0, lx=227.0e3, ly=80.0e3, lz=30000.0e0 /
+&SWF mus=1000.0e0,mud=0.2e0,dc=0.5e0,nmus=1,nmud=0,ndc=0 /  
+&DIST2D	shape='rectangle', val = 0.6e0, xc = 113500e0, yc =140.0e3, zc= -15000.0e0, r=0e0,  l=0e0, lx=227.0e3, ly=40.0e3, lz=30000.0e0 /
+
+&BEGIN_FAULT dummy_idfault=2 /
+&INIT_STRESS S1=0.0e6,S2=0.0e0,S3=0.0e6,n1=2,n2=0,n3=3 / 
+&DIST2D	shape='rectangle', val =  5.69e6, xc = 70514.4284e0, yc =120.0e3, zc=-11.25e3,r=0e0,  l=0e0, lx=23382.6859e0, ly=80.0e3, lz=13.5e3 /
+&DIST2D	shape='rectangle', val =  3.54e6, xc = 43894.8822e0, yc =120.0e3, zc=-22.0e3, r=0e0,  l=0e0, lx=29856.4065e0, ly=80.0e3, lz= 8.0e3 /  
+&DIST2D	shape='rectangle', val =  -0.1e6, xc = 74411.5427e0, yc =120.0e3, zc= -9.0e3, r=0e0,  l=0e0, lx=31176.9145e0, ly=80.0e3, lz=18.0e3 /
+&DIST2D	shape='rectangle', val =-12.38e6, xc = 70514.4284e0, yc =120.0e3, zc=-11.25e3,r=0e0,  l=0e0, lx=23382.6859e0, ly=80.0e3, lz=13.5e3 /
+&DIST2D	shape='rectangle', val = -9.04e6, xc = 43894.8822e0, yc =120.0e3, zc=-22.0e3, r=0e0,  l=0e0, lx=29856.4065e0, ly=80.0e3, lz= 8.0e3 /
+
+&SWF mus=0.6e0,mud=0.2e0,dc=0.5e0,nmus=0,nmud=0,ndc=0 /  
 &KINPAR kindt=10.0e-3



More information about the CIG-COMMITS mailing list