I have a 2D square mesh and a 3D beam shaped mesh and I want to propagate a seismic wave in them. I am trying to simulate them using Open source FEM codes (fenics). I have left the top surface to be free because that is where we would see a response (ground motion). I have also set the other boundaries except the bottom one to zero Dirichlet condition. These will cause the waves hitting them to reflect back. Usually, these would be absorbing boundary conditions or PML but for now I keep them reflective. I believe that the input seismic excitation will be set as a Dirichlet condition on the bottom boundary (2D/ 3D). In literature, a Ricker Wavelet pulse is considered suitable to represent a seismic input.

My questions are:

  1. Is the input source given as a Dirichlet condition on bottom boundary or is it given as a point source ricker wavelet somewhere within the mesh close to the bottom boundary?

  2. If it is a point source ricker wavelet; how would I implement it in fem mesh using c++ or python at the point where I want it? Does anyone have a piece of code that would help? Is it added as the source term '$f$' in the '$f∗v∗dx$' part of the weak form of wave equation (where $v$ is the test function) or is it projected as an initial condition on the mesh??

Thank you very much for your guidance!

  • $\begingroup$ Is your question about how to model a plane wave impinging on a halfspace using FEM? or is it about how should it be done in the time domain? $\endgroup$
    – nicoguaro
    Jun 28, 2016 at 4:02
  • $\begingroup$ You probably want to check this reference: Bielak, Jacobo, and Paul Christiano. "On the effective seismic input for non‐linear soil‐structure interaction systems." Earthquake engineering & structural dynamics 12.1 (1984): 107-119. $\endgroup$
    – nicoguaro
    Jun 28, 2016 at 4:03


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.