[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