[cig-commits] r20359 - in seismo/2D/SPECFEM2D/trunk: DATA setup src/meshfem2D src/specfem2D

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Tue Jun 12 16:03:33 PDT 2012


Author: dkomati1
Date: 2012-06-12 16:03:32 -0700 (Tue, 12 Jun 2012)
New Revision: 20359

Modified:
   seismo/2D/SPECFEM2D/trunk/DATA/Par_file
   seismo/2D/SPECFEM2D/trunk/setup/constants.h.in
   seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_parameter_file.F90
   seismo/2D/SPECFEM2D/trunk/src/meshfem2D/save_databases.f90
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_viscoelastic.F90
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/read_databases.f90
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90
Log:
moved PML_BOUNDARY_CONDITIONS and NELEM_PML_THICKNESS to DATA/Par_file


Modified: seismo/2D/SPECFEM2D/trunk/DATA/Par_file
===================================================================
--- seismo/2D/SPECFEM2D/trunk/DATA/Par_file	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/DATA/Par_file	2012-06-12 23:03:32 UTC (rev 20359)
@@ -117,8 +117,10 @@
 read_external_mesh              = .false.
 
 # absorbing boundary active or not
-absorbing_conditions            = .true.
-ADD_SPRING_TO_STACEY            = .true.
+PML_BOUNDARY_CONDITIONS         = .true.
+NELEM_PML_THICKNESS             = 3
+STACEY_ABSORBING_CONDITIONS     = .false.
+ADD_SPRING_TO_STACEY            = .false.
 
 # for horizontal periodic conditions: detect common points between left and right edges
 ADD_PERIODIC_CONDITIONS         = .false.

Modified: seismo/2D/SPECFEM2D/trunk/setup/constants.h.in
===================================================================
--- seismo/2D/SPECFEM2D/trunk/setup/constants.h.in	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/setup/constants.h.in	2012-06-12 23:03:32 UTC (rev 20359)
@@ -184,7 +184,3 @@
   real(kind=CUSTOM_REAL), parameter :: r0_guenneau = 0.20_CUSTOM_REAL
   real(kind=CUSTOM_REAL), parameter :: r1_guenneau = 0.40_CUSTOM_REAL
 
-! PML
-  logical, parameter :: PML_BOUNDARY_CONDITIONS = .false.
-  integer, parameter :: NELEM_PML_THICKNESS = 3
-

Modified: seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_parameter_file.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_parameter_file.F90	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/src/meshfem2D/read_parameter_file.F90	2012-06-12 23:03:32 UTC (rev 20359)
@@ -99,8 +99,8 @@
   logical, dimension(:), pointer :: enreg_surf_same_vertical
 
   integer :: NSTEP_BETWEEN_OUTPUT_INFO,NSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP_BETWEEN_OUTPUT_IMAGES,NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS, &
-             subsamp_seismos,imagetype_JPEG,imagetype_wavefield_dumps
-  logical :: output_postscript_snapshot,output_color_image
+             subsamp_seismos,imagetype_JPEG,imagetype_wavefield_dumps,NELEM_PML_THICKNESS
+  logical :: output_postscript_snapshot,output_color_image,PML_BOUNDARY_CONDITIONS
   integer :: imagetype_postscript
   double precision :: cutsnaps
   logical :: meshvect,modelvect,boundvect,interpol
@@ -452,8 +452,14 @@
   call read_value_logical_p(read_external_mesh, 'mesher.read_external_mesh')
   if(err_occurred() /= 0) stop 'error reading parameter 50 in Par_file'
 
+  call read_value_logical_p(PML_BOUNDARY_CONDITIONS, 'solver.PML_BOUNDARY_CONDITIONS')
+  if(err_occurred() /= 0) stop 'error reading parameter 33za in Par_file'
+
+  call read_value_integer_p(NELEM_PML_THICKNESS, 'solver.NELEM_PML_THICKNESS')
+  if(err_occurred() /= 0) stop 'error reading parameter 33zb in Par_file'
+
   ! boolean defining whether to use any absorbing boundaries
-  call read_value_logical_p(any_abs, 'solver.absorbing_conditions')
+  call read_value_logical_p(any_abs, 'solver.STACEY_ABSORBING_CONDITIONS')
   if(err_occurred() /= 0) stop 'error reading parameter 51a in Par_file'
 
   call read_value_logical_p(ADD_SPRING_TO_STACEY, 'solver.ADD_SPRING_TO_STACEY')

Modified: seismo/2D/SPECFEM2D/trunk/src/meshfem2D/save_databases.f90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/meshfem2D/save_databases.f90	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/src/meshfem2D/save_databases.f90	2012-06-12 23:03:32 UTC (rev 20359)
@@ -115,6 +115,12 @@
     write(15,*) 'NSTEP_BETWEEN_OUTPUT_IMAGES'
     write(15,*) NSTEP_BETWEEN_OUTPUT_IMAGES
 
+    write(15,*) 'PML_BOUNDARY_CONDITIONS'
+    write(15,*) PML_BOUNDARY_CONDITIONS
+
+    write(15,*) 'NELEM_PML_THICKNESS'
+    write(15,*) NELEM_PML_THICKNESS
+
     write(15,*) 'NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS'
     write(15,*) NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS
 

Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_viscoelastic.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_viscoelastic.F90	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_viscoelastic.F90	2012-06-12 23:03:32 UTC (rev 20359)
@@ -67,16 +67,15 @@
      K_x_store,K_z_store,d_x_store,d_z_store,alpha_x_store,alpha_z_store, &
      rmemory_displ_elastic,rmemory_displ_elastic_corner, &
      rmemory_dux_dx,rmemory_dux_dz,rmemory_duz_dx,rmemory_duz_dz, &
-     rmemory_dux_dx_corner,rmemory_dux_dz_corner,rmemory_duz_dx_corner,rmemory_duz_dz_corner)
+     rmemory_dux_dx_corner,rmemory_dux_dz_corner,rmemory_duz_dx_corner,rmemory_duz_dz_corner,PML_BOUNDARY_CONDITIONS)
 
-
   ! compute forces for the elastic elements
 
   implicit none
 
   include "constants.h"
 
-  logical :: p_sv
+  logical :: p_sv,PML_BOUNDARY_CONDITIONS
   integer :: NSOURCES, i_source
   integer :: nglob,nspec,myrank,nelemabs,numat,it,NSTEP
   integer, dimension(NSOURCES) :: ispec_selected_source,is_proc_source,source_type

Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90	2012-06-12 23:03:32 UTC (rev 20359)
@@ -43,7 +43,7 @@
 
   subroutine pml_init(nspec,nglob,anyabs,ibool,nelemabs,codeabs,numabs,&
                     nspec_PML,is_PML,which_PML_elem,which_PML_poin,spec_to_PML,ibool_PML, &
-                    npoin_PML,icorner_iglob)
+                    npoin_PML,icorner_iglob,NELEM_PML_THICKNESS)
 
   implicit none
   include 'constants.h'
@@ -52,7 +52,7 @@
   include 'mpif.h'
 #endif
 
-  integer :: nspec,nglob,nelemabs,nspec_PML,npoin_PML
+  integer :: nspec,nglob,nelemabs,nspec_PML,npoin_PML,NELEM_PML_THICKNESS
   logical :: anyabs
 
   integer :: ibound,ispecabs,ncorner,ispec,iglob
@@ -596,9 +596,9 @@
           alpha_x_store(iPML) = alpha_x  
           alpha_z_store(iPML) = alpha_y  
 
-         write(IOUT,*)K_x_store(iPML),K_z_store(iPML),'K_store'
-         write(IOUT,*)d_x_store(iPML),d_z_store(iPML),'d_store'
-         write(IOUT,*)alpha_x_store(iPML),alpha_z_store(iPML),'alpha_store'
+!        write(IOUT,*)K_x_store(iPML),K_z_store(iPML),'K_store'
+!        write(IOUT,*)d_x_store(iPML),d_z_store(iPML),'d_store'
+!        write(IOUT,*)alpha_x_store(iPML),alpha_z_store(iPML),'alpha_store'
 
        enddo
      enddo

Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/read_databases.f90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/read_databases.f90	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/read_databases.f90	2012-06-12 23:03:32 UTC (rev 20359)
@@ -46,6 +46,7 @@
   subroutine read_databases_init(myrank,ipass, &
                   simulation_title,SIMULATION_TYPE,NOISE_TOMOGRAPHY,SAVE_FORWARD,npgeo,nproc, &
                   output_grid_Gnuplot,interpol,NSTEP_BETWEEN_OUTPUT_INFO,NSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP_BETWEEN_OUTPUT_IMAGES, &
+                  PML_BOUNDARY_CONDITIONS,NELEM_PML_THICKNESS, &
                   NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS,subsamp_seismos,imagetype_JPEG,imagetype_wavefield_dumps, &
                   output_postscript_snapshot,output_color_image,colors,numbers, &
                   meshvect,modelvect,boundvect,cutsnaps,subsamp_postscript,sizemax_arrows, &
@@ -73,7 +74,7 @@
   logical :: meshvect,modelvect,boundvect,initialfield,add_Bielak_conditions, &
     assign_external_model,READ_EXTERNAL_SEP_FILE, &
     output_grid_ASCII,output_energy,output_wavefield_dumps,p_sv,use_binary_for_wavefield_dumps
-  logical :: ATTENUATION_VISCOELASTIC_SOLID,ATTENUATION_PORO_FLUID_PART, &
+  logical :: ATTENUATION_VISCOELASTIC_SOLID,ATTENUATION_PORO_FLUID_PART,PML_BOUNDARY_CONDITIONS, &
              save_ASCII_seismograms,save_binary_seismograms_single,save_binary_seismograms_double,DRAW_SOURCES_AND_RECEIVERS
 
   double precision :: cutsnaps,sizemax_arrows,anglerec
@@ -82,7 +83,7 @@
 
   integer :: NSTEP,NSOURCES
   integer :: NSTEP_BETWEEN_OUTPUT_INFO,NSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP_BETWEEN_OUTPUT_IMAGES,NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS, &
-             subsamp_seismos,imagetype_JPEG,imagetype_wavefield_dumps
+             subsamp_seismos,imagetype_JPEG,imagetype_wavefield_dumps,NELEM_PML_THICKNESS
 
 ! factor to subsample color images output by the code (useful for very large models)
   integer :: factor_subsample_image
@@ -180,6 +181,12 @@
   read(IIN,*) NSTEP_BETWEEN_OUTPUT_IMAGES
 
   read(IIN,"(a80)") datlin
+  read(IIN,*) PML_BOUNDARY_CONDITIONS
+
+  read(IIN,"(a80)") datlin
+  read(IIN,*) NELEM_PML_THICKNESS
+
+  read(IIN,"(a80)") datlin
   read(IIN,*) NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS
 
   read(IIN,"(a80)") datlin

Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90	2012-06-12 22:39:04 UTC (rev 20358)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/specfem2D.F90	2012-06-12 23:03:32 UTC (rev 20359)
@@ -523,12 +523,12 @@
     NSTEP_BETWEEN_OUTPUT_INFO,seismotype,NSTEP_BETWEEN_OUTPUT_SEISMOS,NSTEP_BETWEEN_OUTPUT_IMAGES, &
     NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS,subsamp_seismos,imagetype_JPEG,imagetype_wavefield_dumps
   integer :: numat,ngnod,nspec,pointsdisp, &
-    nelemabs,nelem_acoustic_surface,ispecabs,UPPER_LIMIT_DISPLAY
+    nelemabs,nelem_acoustic_surface,ispecabs,UPPER_LIMIT_DISPLAY,NELEM_PML_THICKNESS
 
   logical interpol,meshvect,modelvect,boundvect,assign_external_model,initialfield, &
     output_grid_ASCII,output_grid_Gnuplot,ATTENUATION_VISCOELASTIC_SOLID,output_postscript_snapshot,output_color_image, &
     plot_lowerleft_corner_only,add_Bielak_conditions,output_energy,READ_EXTERNAL_SEP_FILE, &
-    output_wavefield_dumps,use_binary_for_wavefield_dumps
+    output_wavefield_dumps,use_binary_for_wavefield_dumps,PML_BOUNDARY_CONDITIONS
 
   double precision :: cutsnaps,sizemax_arrows,anglerec,xirec,gammarec
 
@@ -1000,7 +1000,8 @@
   call read_databases_init(myrank,ipass, &
                   simulation_title,SIMULATION_TYPE,NOISE_TOMOGRAPHY,SAVE_FORWARD,npgeo,nproc_read_from_database, &
                   output_grid_Gnuplot,interpol,NSTEP_BETWEEN_OUTPUT_INFO,NSTEP_BETWEEN_OUTPUT_SEISMOS, &
-                  NSTEP_BETWEEN_OUTPUT_IMAGES,NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS,subsamp_seismos, &
+                  NSTEP_BETWEEN_OUTPUT_IMAGES,PML_BOUNDARY_CONDITIONS,NELEM_PML_THICKNESS, &
+                  NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS,subsamp_seismos, &
                   imagetype_JPEG,imagetype_wavefield_dumps, &
                   output_postscript_snapshot,output_color_image,colors,numbers, &
                   meshvect,modelvect,boundvect,cutsnaps,subsamp_postscript,sizemax_arrows, &
@@ -1037,7 +1038,8 @@
        call read_databases_init(myrank,ipass, &
                       simulation_title,SIMULATION_TYPE,NOISE_TOMOGRAPHY,SAVE_FORWARD,npgeo,nproc_read_from_database, &
                       output_grid_Gnuplot,interpol,NSTEP_BETWEEN_OUTPUT_INFO,NSTEP_BETWEEN_OUTPUT_SEISMOS, &
-                      NSTEP_BETWEEN_OUTPUT_IMAGES,NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS,subsamp_seismos, &
+                      NSTEP_BETWEEN_OUTPUT_IMAGES,PML_BOUNDARY_CONDITIONS,NELEM_PML_THICKNESS, &
+                      NSTEP_BETWEEN_OUTPUT_WAVE_DUMPS,subsamp_seismos, &
                       imagetype_JPEG,imagetype_wavefield_dumps, &
                       output_postscript_snapshot,output_color_image,colors,numbers, &
                       meshvect,modelvect,boundvect,cutsnaps,subsamp_postscript,sizemax_arrows, &
@@ -2788,7 +2790,7 @@
 
       call pml_init(nspec,nglob,anyabs,ibool,nelemabs,codeabs,numabs,&
                   nspec_PML,is_PML,which_PML_elem,which_PML_poin,spec_to_PML,ibool_PML, &
-                  npoin_PML,icorner_iglob)
+                  npoin_PML,icorner_iglob,NELEM_PML_THICKNESS)
 
       deallocate(icorner_iglob)
       deallocate(which_PML_poin)
@@ -5353,7 +5355,7 @@
                K_x_store,K_z_store,d_x_store,d_z_store,alpha_x_store,alpha_z_store, &
                rmemory_displ_elastic,rmemory_displ_elastic_corner,&
                rmemory_dux_dx,rmemory_dux_dz,rmemory_duz_dx,rmemory_duz_dz,&
-               rmemory_dux_dx_corner,rmemory_dux_dz_corner,rmemory_duz_dx_corner,rmemory_duz_dz_corner)
+               rmemory_dux_dx_corner,rmemory_dux_dz_corner,rmemory_duz_dx_corner,rmemory_duz_dz_corner,PML_BOUNDARY_CONDITIONS)
 
       if(anyabs .and. SAVE_FORWARD .and. SIMULATION_TYPE == 1) then
         !--- left absorbing boundary



More information about the CIG-COMMITS mailing list