[cig-commits] r22731 - seismo/2D/SPECFEM2D/trunk/src/specfem2D

xie.zhinan at geodynamics.org xie.zhinan at geodynamics.org
Tue Aug 27 00:04:37 PDT 2013


Author: xie.zhinan
Date: 2013-08-27 00:04:36 -0700 (Tue, 27 Aug 2013)
New Revision: 22731

Modified:
   seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90
Log:
allow to use variable kappa in PML for acoustic simulation


Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90	2013-08-26 11:20:57 UTC (rev 22730)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/compute_forces_acoustic.f90	2013-08-27 07:04:36 UTC (rev 22731)
@@ -280,7 +280,8 @@
                     beta_LDDRK(i_stage) * rmemory_acoustic_dux_dx_LDDRK(i,j,ispec_PML)
                   endif
 
-                  dux_dxl = PML_dux_dxl(i,j)  + A8 * rmemory_acoustic_dux_dx(i,j,ispec_PML)
+                  dux_dxl = 1.0_CUSTOM_REAL/k_x_store(i,j,ispec_PML) * PML_dux_dxl(i,j)  &
+                            + A8 * rmemory_acoustic_dux_dx(i,j,ispec_PML)
 
                   !---------------------- A5 --------------------------
                   A5 = d_x_store(i,j,ispec_PML)
@@ -309,7 +310,7 @@
                     beta_LDDRK(i_stage) * rmemory_acoustic_dux_dz_LDDRK(i,j,ispec_PML)
                   endif
 
-                  dux_dzl = PML_dux_dzl(i,j)  + A5 * rmemory_acoustic_dux_dz(i,j,ispec_PML)
+                  dux_dzl = k_x_store(i,j,ispec_PML) * PML_dux_dzl(i,j)  + A5 * rmemory_acoustic_dux_dz(i,j,ispec_PML)
 
                    else if (region_CPML(ispec) == CPML_XY_ONLY) then
 !------------------------------------------------------------------------------
@@ -345,7 +346,8 @@
                         beta_LDDRK(i_stage) * rmemory_acoustic_dux_dx_LDDRK(i,j,ispec_PML)
                     endif
 
-                    dux_dxl = PML_dux_dxl(i,j)  + A8 * rmemory_acoustic_dux_dx(i,j,ispec_PML)
+                    dux_dxl = k_z_store(i,j,ispec_PML) / k_x_store(i,j,ispec_PML) * PML_dux_dxl(i,j) &
+                              + A8 * rmemory_acoustic_dux_dx(i,j,ispec_PML)
 
                     !---------------------------- A5 ----------------------------
                     A5 =(k_z_store(i,j,ispec_PML) * d_x_store(i,j,ispec_PML) &
@@ -378,7 +380,8 @@
                     beta_LDDRK(i_stage) * rmemory_acoustic_dux_dz_LDDRK(i,j,ispec_PML)
                     endif
 
-                    dux_dzl = PML_dux_dzl(i,j)  + A5 * rmemory_acoustic_dux_dz(i,j,ispec_PML)
+                    dux_dzl = k_x_store(i,j,ispec_PML) / k_z_store(i,j,ispec_PML) * PML_dux_dzl(i,j)  &
+                              + A5 * rmemory_acoustic_dux_dz(i,j,ispec_PML)
 
                else if(region_CPML(ispec) == CPML_Y_ONLY) then
 
@@ -412,7 +415,7 @@
                     beta_LDDRK(i_stage) * rmemory_acoustic_dux_dx_LDDRK(i,j,ispec_PML)
                   endif
 
-                  dux_dxl = PML_dux_dxl(i,j)  + A7 * rmemory_acoustic_dux_dx(i,j,ispec_PML)
+                  dux_dxl = k_z_store(i,j,ispec_PML) * PML_dux_dxl(i,j)  + A7 * rmemory_acoustic_dux_dx(i,j,ispec_PML)
 
                   !---------------------- A6 --------------------------
                   A6 = - d_z_store(i,j,ispec_PML) / ( k_z_store(i,j,ispec_PML) ** 2 )
@@ -440,7 +443,8 @@
                     beta_LDDRK(i_stage) * rmemory_acoustic_dux_dz_LDDRK(i,j,ispec_PML)
                   endif
 
-                  dux_dzl = PML_dux_dzl(i,j)  + A6 * rmemory_acoustic_dux_dz(i,j,ispec_PML)
+                  dux_dzl = 1.0_CUSTOM_REAL/k_z_store(i,j,ispec_PML) * PML_dux_dzl(i,j) &
+                            + A6 * rmemory_acoustic_dux_dz(i,j,ispec_PML)
 
                endif
              endif



More information about the CIG-COMMITS mailing list