[CIG-SEISMO] need some advices to learn the SPECFEM2D codes

Yang Luo yangl at princeton.edu
Wed Dec 14 09:21:52 PST 2011


Hi Chen,

SPECFEM2D is a little bit hard to read, especially if you are not familiar with Fortran.
SPECFEM3D has better structures, but I'm not sure whether it would give you some help.

If you look into SPECFEM2D, besides "rhop_ac_kl" and "rho_ac_kl",
there are more variables such as "kappa_ac_kl" and "rho_el_kl" etc.
"rho" denotes density \rho ("kappa" for bulk modulus etc.),
"ac" denotes acoustic ("el" for elastic),
"kl" means kernel (and you may find "k" as well, which is the interaction at each time step, i.e., before doing time integration)

The algorithm is simple:
1. calculate forward wavefield \mathbf{s}(x,t)
2. calculate adjoint wavefield  \mathbf{s}^\dagger(x,t)
3. calculate interaction \mathbf{s}(x,t) \cdot \mathbf{s}^\dagger(x,T-t) (this symbolic, temporal and spatial derivatives should be included!)
4. integrate the interactions, which is summation in the code.
That's all. (step 3 has some tricks in implementation, but you can skip it for your purpose)

Thanks,
Yang

________________________________________
From: cig-seismo-bounces at geodynamics.org [cig-seismo-bounces at geodynamics.org] on behalf of Guoping Chen, Ph.D. [guoping.chen at duke.edu]
Sent: Wednesday, December 14, 2011 11:39 AM
To: cig-seismo at geodynamics.org
Cc: qhliu at ee.duke.edu
Subject: [CIG-SEISMO] need some advices to learn the SPECFEM2D codes

Hi,
  I am studying the SPECFEM2D codes, and very intersting in the adjoint algorithm. But then I finish read the "Finite-frequency tomography using adjoint methods—
Methodology and examples using membrane surface waves" written by Carl Tape in 2007, and "Seismic tomography, adjoint methods, time reversal and banana-doughnut kernels" written by Jeroen Tromp in 2005, then tracing the SPECFEM2D codes, I am lost in the large program lines due to my poor Fortran skill and lack enough comments in the program codes.
  Especially, I can not understand why the SPECFEM2D codes using like "rhop_ac_kl, rho_ac_kl" to define the phase-speed or density kernel, because them not dispear neither in Carl Tape paper published in 2007 nor in Jeroen Tromp paper published in 2005. That means in all your prior published papers, the kernel defined using K as the abbreviate for the kernel, why in program codes using "tho" as the pre-fix?

  To sum up, would your can give me some advices to how to learn the algorithm introduced in the published papers and learn the implement through the SPECFEM2D codes?

  Longer for your reply!






  sincerely your,
  ECE Duke, Guoping Chen
  14th, Dec., 2011
_______________________________________________
CIG-SEISMO mailing list
CIG-SEISMO at geodynamics.org
http://geodynamics.org/cgi-bin/mailman/listinfo/cig-seismo


More information about the CIG-SEISMO mailing list