[cig-commits] r19624 - in seismo/3D/FAULT_SOURCE: . branches/new_fault_db/decompose_mesh_SCOTCH

ampuero at geodynamics.org ampuero at geodynamics.org
Tue Feb 14 09:15:06 PST 2012


Author: ampuero
Date: 2012-02-14 09:15:05 -0800 (Tue, 14 Feb 2012)
New Revision: 19624

Modified:
   seismo/3D/FAULT_SOURCE/TO_DO
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/Makefile
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90
   seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/fault_scotch.f90
Log:
temporarily commented out parallel fault

Modified: seismo/3D/FAULT_SOURCE/TO_DO
===================================================================
--- seismo/3D/FAULT_SOURCE/TO_DO	2012-02-14 15:47:28 UTC (rev 19623)
+++ seismo/3D/FAULT_SOURCE/TO_DO	2012-02-14 17:15:05 UTC (rev 19624)
@@ -8,10 +8,12 @@
 		. repeat the loop above to handle triple junctions
 	- in fault_solver.f90:
 		. assemble B and the fault normal vectors during initialization
-		. assemble internal forces before and after fault solver
+		. make sure internal forces are assembled across processors before fault solver
+                  No need to re-assemble after fault solver because B is already assembled
 		. parallelize outputs
 
 + close fault edges in CUBIT
++ simplify meshing: maybe split nodes in Scotch/SESAME instead of in CUBIT
 + mesh coarsening in CUBIT
 
 + add snapshot outputs to kinematic solver
@@ -20,3 +22,7 @@
 
 + eliminate fault edge nodes (sticky, same ibulk) ?
 
++ better documentation
++ write methodological paper
++ merge with main SESAME branch
++ public release

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/Makefile
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/Makefile	2012-02-14 15:47:28 UTC (rev 19623)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/Makefile	2012-02-14 17:15:05 UTC (rev 19624)
@@ -6,9 +6,8 @@
 F90 = gfortran    # use -Wall
 
 ## modify to match your library paths
+# SCOTCH library path
 SCOTCH_LIBS = -L/cluster/home/erdw/gpercy/scotch/scotch_5.1/lib/ -lscotch -lscotcherr
-#(SCOTCH library address .Change it in case 
-#your SCOTH is install in another address)
 
 #############################################################
 

Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90	2012-02-14 15:47:28 UTC (rev 19623)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/decompose_mesh_SCOTCH.f90	2012-02-14 17:15:05 UTC (rev 19624)
@@ -392,7 +392,7 @@
     if (allocated(faults)) then 
       call save_nodes_coords(nodes_coords,nnodes)
       call close_faults(nodes_coords,elmnts,nspec,nnodes,esize)    
-      call reorder_fault_elements(nodes_coords,nnodes)
+!JPA parallel fault      call reorder_fault_elements(nodes_coords,nnodes)
     end if 
 
   end subroutine read_mesh_files

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	2012-02-14 15:47:28 UTC (rev 19623)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/decompose_mesh_SCOTCH/fault_scotch.f90	2012-02-14 17:15:05 UTC (rev 19624)
@@ -19,7 +19,8 @@
   double precision, parameter :: FAULT_GAP_TOLERANCE = 1.0d0
 
   public :: read_fault_files, fault_repartition, close_faults, write_fault_database, &
-            save_nodes_coords, nodes_coords_open, faults, reorder_fault_elements
+            save_nodes_coords, nodes_coords_open, faults 
+!JPA parallel fault      , reorder_fault_elements
 
 CONTAINS 
 !==========================================================================================
@@ -204,41 +205,42 @@
   end subroutine close_fault_single
 
 !===================================================================================================
-  subroutine reorder_fault_elements(nodes_coords,nnodes)
-!JPA  ... 
-  do iflt=1,size(faults)
-    call reorder_fault_elements_single(faults(iflt),&
-                            elmnts,nodes_coords,nnodes,esize,nelmnts)
-  enddo
+!JPA parallel fault
+!  subroutine reorder_fault_elements(nodes_coords,nnodes)
+!!JPA  ... 
+!  do iflt=1,size(faults)
+!    call reorder_fault_elements_single(faults(iflt),&
+!                            elmnts,nodes_coords,nnodes,esize,nelmnts)
+!  enddo
+!
+!  end subroutine reorder_fault_elements
+!
+!! ---------------------------------------------------------------------------------------------------
+!  subroutine reorder_fault_elements_single(f)
+!
+!  ! compute element-face centers for fault side 1
+!  do i=1,f%nspec
+!    e = f%ispec1(i)
+!    do k=1,4
+!      iglob = f%inodes1(k,e)
+!      xyz(:,k) = nodes_coords(:,iglob)
+!    enddo
+!    xyz_c(:,k) = ! ... average of xyz
+!  enddo
+!  ! reorder
+!  call lex_order(xyz_c,new_index_list) 
+!  f%ispec1 = f%ispec1(new_index_list)
+!
+!  ! repeat for fault side 2
+!  ! ....
+!
+!  end subroutine reorder_fault_elements_single
+!  
+!! ---------------------------------------------------------------------------------------------------
+!  subroutine lex_order()
+!! JPA lexicographic ordering inspired from src/get_global.f90
+!  end subroutine lex_order
 
-  end subroutine reorder_fault_elements
-
-! ---------------------------------------------------------------------------------------------------
-  subroutine reorder_fault_elements_single(f)
-
-  ! compute element-face centers for fault side 1
-  do i=1,f%nspec
-    e = f%ispec1(i)
-    do k=1,4
-      iglob = f%inodes1(k,e)
-      xyz(:,k) = nodes_coords(:,iglob)
-    enddo
-    xyz_c(:,k) = ! ... average of xyz
-  enddo
-  ! reorder
-  call lex_order(xyz_c,new_index_list) 
-  f%ispec1 = f%ispec1(new_index_list)
-
-  ! repeat for fault side 2
-  ! ....
-
-  end subroutine reorder_fault_elements_single
-  
-! ---------------------------------------------------------------------------------------------------
-  subroutine lex_order()
-! JPA lexicographic ordering inspired from src/get_global.f90
-  end subroutine lex_order
-
 !===================================================================================================
   !--------------------------------------------------
   ! Repartitioning : two coupled faultside1/side2 elements are transfered to the same partition
@@ -334,31 +336,31 @@
   end subroutine fault_repartition
 
 ! ---------------------------------------------------------------------------------------------------
-! JPA need to call this one now
-  subroutine fault_repartition_parallel (nelmnts, nnodes, elmnts, nsize, &
-                        nproc, part, esize)
+! JPA parallel fault
+!  subroutine fault_repartition_parallel (nelmnts, nnodes, elmnts, nsize, &
+!                        nproc, part, esize)
+!
+!!JPA loop over all faults
+!!JPA   loop over all fault element pairs
+!!JPA     assign the pair of elements to the processor with lowest rank among them
+! 
+!  do i=1,2 !JPA repeated to handle triple junctions
+!
+!  do iflt=1,size(faults)
+!    do e=1,faults(iflt)%nspec
+!      e1 = faults(iflt)%ispec1(e)
+!      e2 = faults(iflt)%ispec2(e)
+!      proc1 = part(e1)
+!      proc2 = part(e2)
+!      part(e1) = min(proc1,proc2)
+!      part(e2) = part(e1)
+!    end do
+!  end do
+!
+!  end do
+!
+!  end subroutine fault_repartition_parallel
 
-!JPA loop over all faults
-!JPA   loop over all fault element pairs
-!JPA     assign the pair of elements to the processor with lowest rank among them
- 
-  do i=1,2 !JPA repeated to handle triple junctions
-
-  do iflt=1,size(faults)
-    do e=1,faults(iflt)%nspec
-      e1 = faults(iflt)%ispec1(e)
-      e2 = faults(iflt)%ispec2(e)
-      proc1 = part(e1)
-      proc2 = part(e2)
-      part(e1) = min(proc1,proc2)
-      part(e2) = part(e1)
-    end do
-  end do
-
-  end do
-
-  end subroutine fault_repartition_parallel
-
 ! ---------------------------------------------------------------------------------------------------
 ! See subroutine write_boundaries_database in part_decompose_mesh_SCOTCH.f90
 !



More information about the CIG-COMMITS mailing list