[cig-commits] r21612 - seismo/3D/SPECFEM3D/trunk/src/specfem3D

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Fri Mar 22 17:39:42 PDT 2013


Author: dkomati1
Date: 2013-03-22 17:39:42 -0700 (Fri, 22 Mar 2013)
New Revision: 21612

Modified:
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_noDev.f90
   seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_viscoelastic_Dev.F90
Log:
left comments for Jo and Zhinan about potential problems in the CPML implementation


Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_noDev.f90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_noDev.f90	2013-03-23 00:31:26 UTC (rev 21611)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_acoustic_noDev.f90	2013-03-23 00:39:42 UTC (rev 21612)
@@ -266,6 +266,25 @@
 
   enddo ! end of loop over all spectral elements
 
+
+!! DK DK to Jo, to debug CPML, 22 March 2013:
+
+!! DK DK please check with Zhinan, it could be that this Dirichlet condition for acoustic CPML elements
+!! DK DK is not needed any more, I think that in the 2D code for acoustic CPML elements we switched to
+!! DK DK Neumann instead of Dirichlet (and if so, for Neumann there is nothing to do,
+!! DK DK the condition is automatic, nothing to program);  Zhinan can tell you more about this.
+
+
+
+
+!! DK DK to Jo, to debug CPML, 22 March 2013:
+
+!! DK DK I think that there is an error in the loops below, you should also check if ispec is a CPML element,
+!! DK DK and also if ispec is an acoustic element (and NOT for instance an elastic or viscoelastic element)
+!! DK DK
+!! DK DK thus test something like:   if (is_CPML(ispec) .and. acoustic(ispec)) then
+!! DK DK or something like that
+
   ! C-PML boundary
   if( PML_CONDITIONS ) then
      ! xmin

Modified: seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_viscoelastic_Dev.F90
===================================================================
--- seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_viscoelastic_Dev.F90	2013-03-23 00:31:26 UTC (rev 21611)
+++ seismo/3D/SPECFEM3D/trunk/src/specfem3D/compute_forces_viscoelastic_Dev.F90	2013-03-23 00:39:42 UTC (rev 21612)
@@ -733,20 +733,20 @@
         do j=1,m2
           do i=1,m1
             E1_m1_m2_5points(i,j) = hprimewgll_xxT(i,1)*C1_m1_m2_5points(1,j) + &
-                                  hprimewgll_xxT(i,2)*C1_m1_m2_5points(2,j) + &
-                                  hprimewgll_xxT(i,3)*C1_m1_m2_5points(3,j) + &
-                                  hprimewgll_xxT(i,4)*C1_m1_m2_5points(4,j) + &
-                                  hprimewgll_xxT(i,5)*C1_m1_m2_5points(5,j)
+                                    hprimewgll_xxT(i,2)*C1_m1_m2_5points(2,j) + &
+                                    hprimewgll_xxT(i,3)*C1_m1_m2_5points(3,j) + &
+                                    hprimewgll_xxT(i,4)*C1_m1_m2_5points(4,j) + &
+                                    hprimewgll_xxT(i,5)*C1_m1_m2_5points(5,j)
             E2_m1_m2_5points(i,j) = hprimewgll_xxT(i,1)*C2_m1_m2_5points(1,j) + &
-                                  hprimewgll_xxT(i,2)*C2_m1_m2_5points(2,j) + &
-                                  hprimewgll_xxT(i,3)*C2_m1_m2_5points(3,j) + &
-                                  hprimewgll_xxT(i,4)*C2_m1_m2_5points(4,j) + &
-                                  hprimewgll_xxT(i,5)*C2_m1_m2_5points(5,j)
+                                    hprimewgll_xxT(i,2)*C2_m1_m2_5points(2,j) + &
+                                    hprimewgll_xxT(i,3)*C2_m1_m2_5points(3,j) + &
+                                    hprimewgll_xxT(i,4)*C2_m1_m2_5points(4,j) + &
+                                    hprimewgll_xxT(i,5)*C2_m1_m2_5points(5,j)
             E3_m1_m2_5points(i,j) = hprimewgll_xxT(i,1)*C3_m1_m2_5points(1,j) + &
-                                  hprimewgll_xxT(i,2)*C3_m1_m2_5points(2,j) + &
-                                  hprimewgll_xxT(i,3)*C3_m1_m2_5points(3,j) + &
-                                  hprimewgll_xxT(i,4)*C3_m1_m2_5points(4,j) + &
-                                  hprimewgll_xxT(i,5)*C3_m1_m2_5points(5,j)
+                                    hprimewgll_xxT(i,2)*C3_m1_m2_5points(2,j) + &
+                                    hprimewgll_xxT(i,3)*C3_m1_m2_5points(3,j) + &
+                                    hprimewgll_xxT(i,4)*C3_m1_m2_5points(4,j) + &
+                                    hprimewgll_xxT(i,5)*C3_m1_m2_5points(5,j)
           enddo
         enddo
 
@@ -757,20 +757,20 @@
             ! for efficiency it is better to leave this loop on k inside, it leads to slightly faster code
             do k = 1,NGLLX
               newtempx2(i,j,k) = tempx2(i,1,k)*hprimewgll_xx(1,j) + &
-                               tempx2(i,2,k)*hprimewgll_xx(2,j) + &
-                               tempx2(i,3,k)*hprimewgll_xx(3,j) + &
-                               tempx2(i,4,k)*hprimewgll_xx(4,j) + &
-                               tempx2(i,5,k)*hprimewgll_xx(5,j)
+                                 tempx2(i,2,k)*hprimewgll_xx(2,j) + &
+                                 tempx2(i,3,k)*hprimewgll_xx(3,j) + &
+                                 tempx2(i,4,k)*hprimewgll_xx(4,j) + &
+                                 tempx2(i,5,k)*hprimewgll_xx(5,j)
               newtempy2(i,j,k) = tempy2(i,1,k)*hprimewgll_xx(1,j) + &
-                               tempy2(i,2,k)*hprimewgll_xx(2,j) + &
-                               tempy2(i,3,k)*hprimewgll_xx(3,j) + &
-                               tempy2(i,4,k)*hprimewgll_xx(4,j) + &
-                               tempy2(i,5,k)*hprimewgll_xx(5,j)
+                                 tempy2(i,2,k)*hprimewgll_xx(2,j) + &
+                                 tempy2(i,3,k)*hprimewgll_xx(3,j) + &
+                                 tempy2(i,4,k)*hprimewgll_xx(4,j) + &
+                                 tempy2(i,5,k)*hprimewgll_xx(5,j)
               newtempz2(i,j,k) = tempz2(i,1,k)*hprimewgll_xx(1,j) + &
-                               tempz2(i,2,k)*hprimewgll_xx(2,j) + &
-                               tempz2(i,3,k)*hprimewgll_xx(3,j) + &
-                               tempz2(i,4,k)*hprimewgll_xx(4,j) + &
-                               tempz2(i,5,k)*hprimewgll_xx(5,j)
+                                 tempz2(i,2,k)*hprimewgll_xx(2,j) + &
+                                 tempz2(i,3,k)*hprimewgll_xx(3,j) + &
+                                 tempz2(i,4,k)*hprimewgll_xx(4,j) + &
+                                 tempz2(i,5,k)*hprimewgll_xx(5,j)
             enddo
           enddo
         enddo
@@ -779,20 +779,20 @@
         do j=1,m1
           do i=1,m2
             E1_mxm_m2_m1_5points(i,j) = C1_mxm_m2_m1_5points(i,1)*hprimewgll_xx(1,j) + &
-                                      C1_mxm_m2_m1_5points(i,2)*hprimewgll_xx(2,j) + &
-                                      C1_mxm_m2_m1_5points(i,3)*hprimewgll_xx(3,j) + &
-                                      C1_mxm_m2_m1_5points(i,4)*hprimewgll_xx(4,j) + &
-                                      C1_mxm_m2_m1_5points(i,5)*hprimewgll_xx(5,j)
+                                        C1_mxm_m2_m1_5points(i,2)*hprimewgll_xx(2,j) + &
+                                        C1_mxm_m2_m1_5points(i,3)*hprimewgll_xx(3,j) + &
+                                        C1_mxm_m2_m1_5points(i,4)*hprimewgll_xx(4,j) + &
+                                        C1_mxm_m2_m1_5points(i,5)*hprimewgll_xx(5,j)
             E2_mxm_m2_m1_5points(i,j) = C2_mxm_m2_m1_5points(i,1)*hprimewgll_xx(1,j) + &
-                                      C2_mxm_m2_m1_5points(i,2)*hprimewgll_xx(2,j) + &
-                                      C2_mxm_m2_m1_5points(i,3)*hprimewgll_xx(3,j) + &
-                                      C2_mxm_m2_m1_5points(i,4)*hprimewgll_xx(4,j) + &
-                                      C2_mxm_m2_m1_5points(i,5)*hprimewgll_xx(5,j)
+                                        C2_mxm_m2_m1_5points(i,2)*hprimewgll_xx(2,j) + &
+                                        C2_mxm_m2_m1_5points(i,3)*hprimewgll_xx(3,j) + &
+                                        C2_mxm_m2_m1_5points(i,4)*hprimewgll_xx(4,j) + &
+                                        C2_mxm_m2_m1_5points(i,5)*hprimewgll_xx(5,j)
             E3_mxm_m2_m1_5points(i,j) = C3_mxm_m2_m1_5points(i,1)*hprimewgll_xx(1,j) + &
-                                      C3_mxm_m2_m1_5points(i,2)*hprimewgll_xx(2,j) + &
-                                      C3_mxm_m2_m1_5points(i,3)*hprimewgll_xx(3,j) + &
-                                      C3_mxm_m2_m1_5points(i,4)*hprimewgll_xx(4,j) + &
-                                      C3_mxm_m2_m1_5points(i,5)*hprimewgll_xx(5,j)
+                                        C3_mxm_m2_m1_5points(i,2)*hprimewgll_xx(2,j) + &
+                                        C3_mxm_m2_m1_5points(i,3)*hprimewgll_xx(3,j) + &
+                                        C3_mxm_m2_m1_5points(i,4)*hprimewgll_xx(4,j) + &
+                                        C3_mxm_m2_m1_5points(i,5)*hprimewgll_xx(5,j)
           enddo
         enddo
 
@@ -864,7 +864,7 @@
                                       betaval_loc * Sn + gammaval_loc * Snp1
                  enddo   ! end of loop on memory variables
 
-              endif  !  end attenuation
+              endif  !  end of if attenuation
 
             enddo
           enddo



More information about the CIG-COMMITS mailing list