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:
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?
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!