Skip to content

Commit 53b8ff2

Browse files
Update FAQ.md
1 parent d6980b7 commit 53b8ff2

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

FAQ.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Frequently Asked Questions
22

3+
- [What is Devito](#what-is-devito)
34
- [How can I see the code generated by Devito?](#how-can-i-see-the-code-generated-by-devito)
45
- [How can I see the compilation command with which Devito compiles the generated code](#how-can-i-see-the-compilation-command-with-which-devito-compiles-the-generated-code)
56
- [Where does the generated code go and how do I look at it](#where-does-the-generated-code-go-and-how-do-i-look-at-it)
@@ -38,6 +39,16 @@
3839
- [Where did the name Devito come from?](#where-did-the-name-devito-come-from)
3940

4041

42+
## What is Devito?
43+
Devito isn’t a ready-made library of seismic or wave solvers—it’s a symbolic DSL and code-generation framework for discretizing and solving arbitrary partial differential equations (PDEs). Rather than shipping you a fixed suite of “pre-canned” simulators, Devito, in short, lets you:
44+
45+
* Express your PDEs in Python using concise, SymPy-based syntax.
46+
* Automatically generate highly optimized C (and parallel MPI/OpenMP/OpenACC/CUDA/HIP/SYCL) kernels behind the scenes.
47+
* Compose your own finite-difference or other stencil schemes to target whatever physics you need—acoustics, elasticity, electromagnetics, you name it.
48+
49+
Yes, we include example scripts (e.g. an elastic wave solver with a free-surface boundary) to demonstrate how to build a working simulator, but those are just examples—starting points to show you how to leverage Devito’s abstractions. The engine itself has no built-in “knowledge” of waves or seismics; that lives entirely in the numerical methods you implement on top of it.
50+
51+
4152
## How can I see the code generated by Devito?
4253
After you build an ```op=Operator(...)``` implementing one or more equations, you can use ```print(op)``` to see the generated low level code. The example below builds an operator that takes a 1/2 cell forward shifted derivative of the ```Function``` **f** and puts the result in the ```Function``` **g**.
4354

0 commit comments

Comments
 (0)