[cig-commits] r20778 - seismo/2D/SPECFEM2D/trunk/src/specfem2D
xie.zhinan at geodynamics.org
xie.zhinan at geodynamics.org
Wed Sep 26 01:51:30 PDT 2012
Author: xie.zhinan
Date: 2012-09-26 01:51:29 -0700 (Wed, 26 Sep 2012)
New Revision: 20778
Modified:
seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90
Log:
add a optimized factor tested by paul to modify the origin damping coefficient definition in CPML domain to achieve better absorbing efficiency
Modified: seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90 2012-09-25 23:40:00 UTC (rev 20777)
+++ seismo/2D/SPECFEM2D/trunk/src/specfem2D/pml_init.F90 2012-09-26 08:51:29 UTC (rev 20778)
@@ -327,6 +327,7 @@
!DK,DK
integer, dimension(nspec) :: spec_to_PML
integer :: ispec_PML
+ double precision, parameter :: damping_modified_factor = 1.2d0
! reflection coefficient (INRIA report section 6.1) http://hal.inria.fr/docs/00/07/32/19/PDF/RR-3471.pdf
Rcoef = 0.001d0
@@ -512,7 +513,7 @@
if(abscissa_in_PML >= 0.d0) then
abscissa_normalized = abscissa_in_PML / thickness_PML_z_bottom
- d_z = d0_z_bottom / 0.6d0 * abscissa_normalized**NPOWER
+ d_z = d0_z_bottom / damping_modified_factor * abscissa_normalized**NPOWER
!DK DK we keep the equation to define an nonconstant alpha_z in case user needed,
!However for users who want to use nonconstant alpha_z, you also need to change
@@ -540,7 +541,7 @@
if(abscissa_in_PML >= 0.d0) then
abscissa_normalized = abscissa_in_PML / thickness_PML_z_top
- d_z = d0_z_top / 0.6d0 * abscissa_normalized**NPOWER
+ d_z = d0_z_top / damping_modified_factor * abscissa_normalized**NPOWER
! alpha_z = ALPHA_MAX_PML * (1.d0 - abscissa_normalized) &
! + ALPHA_MAX_PML / 2.d0
@@ -562,7 +563,7 @@
if(abscissa_in_PML >= 0.d0) then
abscissa_normalized = abscissa_in_PML / thickness_PML_x_right
- d_x = d0_x_right / 0.6d0 * abscissa_normalized**NPOWER
+ d_x = d0_x_right / damping_modified_factor * abscissa_normalized**NPOWER
! alpha_x = ALPHA_MAX_PML * (1.d0 - abscissa_normalized) &
! + ALPHA_MAX_PML / 2.d0
@@ -584,7 +585,7 @@
if(abscissa_in_PML >= 0.d0) then
abscissa_normalized = abscissa_in_PML / thickness_PML_x_left
- d_x = d0_x_left / 0.6d0 * abscissa_normalized**NPOWER
+ d_x = d0_x_left / damping_modified_factor * abscissa_normalized**NPOWER
! alpha_x = ALPHA_MAX_PML * (1.d0 - abscissa_normalized) &
! + ALPHA_MAX_PML / 2.d0
More information about the CIG-COMMITS
mailing list