Coder Social home page Coder Social logo

fd2d's Introduction

fd2d

2D staggered rid finite differences of the wave equation

Die Anleitung:

GENERAL INPUT PARAMETERS: /input/input_parameters.m

  • size of the computational domain

  • number of grid points

  • length and number of time steps

  • finite-difference order

  • model type as defines in /code/propagation/define_material_parameters.m

  • source time function (only relevant for simulation_mode=forward)

  • simulation_mode (type of forward or adjoint simulation)

  • source and receiver positions

  • absorbing boundaries (where and how wide)

COMPUTING NOISE CORRELATIONS

The computation of noise correlations proceeds in two steps.

STEP 1: Computation of the Green’s function with source at the reference station

  • Edit the simulation parameters in input_parameters.m (domain, time step, receivers, …).
  • The source (in earthquake simulations) acts as the reference station in noise correlation simulations.
  • Set the simulation_mode to “forward_green”.
  • Go to /input/interferometry/input_interferometry.m and edit the frequency sampling of the Green’s function. (If the sampling is too low in the frequency domain, then artefacts appear on the correlation source function. Trial and error?)
  • Go to /code/ and run “run_forward()”.
  • This will compute the forward Green’s function.
  • The Fourier transform of the Green’s function is computed on-the-fly, i.e. during the simulation.
  • The Fourier transform is then stored as “G_2.mat” in the directory /output/interferometry/“

STEP 2: Computing the actual correlation function

  • Go to /input/interferometry/make_noise_source.m and edit the noise source spectrum and the noise source geometry.
  • Go to /input/input_parameters.m and set the simulation_mode to “correlation”.
  • Go to /code/ and run “[u,t,rec_x,rec_z]=run_forward();”
  • The resulting correlation functions will be written to “u”. Neither “u” nor “t” are automatically stored!
  • Go to /tools/ and use “plot_recordings(u,t,'vel’)” to plot velocity correlations or “plot_recordings(u,t,’dis’)” to plot displacement correlations.

COMPUTING NOISE SOURCE KERNELS

The computation of noise source kernels proceeds in two steps, as well.

STEP 1: Make measurements and compute adjoint sources

  • Go to /tools/. Without actual data (or at least fake data), one can only compute data-independent adjoint sources, for instance adjoint sources for cross-correlation traveltimes. For this, run “make_adjoint_sources(u,0*u,t,'vel','cc_time_shift’)”. This will compute the adjoint source for cross-correlation time shifts performed on velocity correlations. These adjoint sources are written to /input/sources/adjoint/.

STEP 2: Computing the actual kernels

  • Go to /input/input_parameters.m and set the simulation_mode to “noise_source_kernel”.
  • Go to /code/ and run “[X,Z,K_s]=run_noise_source_kernel();”.
  • The kernel as a function of “X” and “Z” is then in “K_s”.
  • Go to /tools/ and use “plot_noise_source_kernels(X,Z,K_s)” to plot noise source kernels for specific frequency bands.

COMPUTING NOISE STRUCTURE KERNELS

The computation of noise structure kernels proceeds in three steps.

STEP 1: Make measurements and compute adjoint sources, just as for the computation of noise source kernels.

STEP 2: Compute kernel for the reference station

  • Go to /input/input_parameters.m and set the simulation_mode to “noise_structure_kernel”.
  • Go to /code/ and run “[X,Z,K_rho]=run_noise_structure_kernel();”
  • You can plot the kernel with “pcolor(X,Z,K_rho’)”.

STEP 3: Repeat the same procedure with source (reference station) and receiver (target station) interchanged. Then add both kernels to obtain the complete kernel.

fd2d's People

Contributors

afichtner avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.