Skip to content

Commit 54e20aa

Browse files
committed
misc: Tweak FAQ headings and content
1 parent 9939f7d commit 54e20aa

1 file changed

Lines changed: 25 additions & 9 deletions

File tree

FAQ.md

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

3-
- [What is Devito](#what-is-devito)
3+
- [What Devito is](#what-devito-is)
4+
- [What Devito is not](#what-devito-is-not)
45
- [How can I see the code generated by Devito?](#how-can-i-see-the-code-generated-by-devito)
56
- [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)
67
- [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)
@@ -39,28 +40,43 @@
3940
- [Where did the name Devito come from?](#where-did-the-name-devito-come-from)
4041

4142

42-
## What is Devito?
43-
Devito is a Python-based domain-specific language (DSL) and code generation framework for solving any system of partial differential equations (PDEs) through symbolic computation. Instead of bundling fixed “black-box” solvers, Devito empowers you to build your own, tailored to your physics and your hardware.
43+
## What Devito is
44+
Devito is a Python-based domain-specific language (DSL) and code generation framework for solving any system of partial differential equations (PDEs) through symbolic computation. Instead of bundling fixed “black-box” solvers, Devito empowers you to build your own, tailored to your physics and hardware.
4445

4546
Here’s what Devito brings to the table:
4647

4748
1. **Symbolic PDE definitions in pure Python**
48-
Express your governing equations exactly as you would on paper, using a concise, SymPy-powered syntaxno boilerplate, no glue code.
49+
Express your governing equations exactly as you would on paper, using a concise, SymPy-powered syntaxno boilerplate, no glue code.
4950

5051
2. **Automatic generation of fast, low-level code**
51-
Devito turns your high-level symbolic equations into highly optimized C/C++ code.
52+
Devito turns your high-level symbolic equations into highly optimized C/C++ code via a sophisticated compiler stack, automatically applying an array of performance optimizations during the lowering process.
5253

5354
3. **Portable performance across architectures**
5455
From laptops to supercomputers: Devito targets multi-core CPUs (with OpenMP and MPI) and accelerators (CUDA, HIP, SYCL, OpenACC, and MPI) from the same source. GPU support for CUDA, HIP, and SYCL is included in [DevitoPRO](https://www.devitocodes.com/features/).
5556

56-
4. **Custom finite-difference and stencil design**
57-
Design bespoke numerical schemes for acoustics, elasticity, electromagnetics, fluid dynamicsor whatever PDE-driven physics your research demands.
57+
4. **Custom finite-difference and stencil kernel design**
58+
Design bespoke numerical schemes for acoustics, elasticity, electromagnetics, fluid dynamics, or whatever PDE-driven physics your research demands.
5859

59-
While Devito is often associated with seismic imaging, that’s just one application domain. Our RTM and FWI examples use Devito under the hood, but the engine itself is physics-agnostic. There’s no built-in assumption about waves, seismics, or domains—you provide the physics, and Devito delivers efficient, architecture-aware implementations.
60+
By providing high-level abstractions for numerical scheme specification, Devito combines productivity, portability, and performance, avoiding the need to hand-implement and optimize finite-difference solvers, or rely on pre-existing implementations. This enables domain scientists to rapidly specify the solvers they require, whilst remaining focused on their areas of expertise - typically the overarching problem.
6061

61-
Focus on modeling and mathDevito handles the performance.
62+
Focus on modeling and mathDevito handles the performance.
6263

6364

65+
## What Devito is not
66+
As is hopefully implied by the preceeding section, Devito is *not* a seismic modelling or imaging framework, nor is it a set of pre-baked solvers. Whilst Devito is often associated with seismic imaging, this is just one application domain. Our RTM and FWI examples use Devito under the hood, but the engine itself is physics-agnostic. There’s no built-in assumption about waves, seismics, or domains — you provide the physics, and Devito delivers efficient, architecture-aware implementations.
67+
68+
Furthermore, the examples provided with Devito are often conflated with the core DSL and compiler. However, the purpose of this collection of tutorials, code samples, and helper functions is fourfold:
69+
70+
1. **Elucidate the usage of the Devito DSL and compiler**
71+
72+
2. **Demonstrate example implementations of various PDE-driven problems**
73+
74+
3. **Demonstrate integration of Devito into workflows of interest**
75+
76+
4. **Provide helper objects and functions for learning the DSL**
77+
78+
Whilst components of the provided examples may be well-suited to user applications, it is worth bearing in mind that they represent a higher level of abstraction atop of Devito. We do, however, encourage the extension of example objects, and their use as templates for implementing your own higher-level functionalities.
79+
6480
## How can I see the code generated by Devito?
6581
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**.
6682

0 commit comments

Comments
 (0)