You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+96-50Lines changed: 96 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,8 @@
1
1
# Finite Difference Computing with PDEs
2
2
3
3
[](https://github.com/devitocodes/devito_book/actions/workflows/build.yml)
Resources for the book *Finite Difference Computing with Partial Differential Equations - A Modern Software Approach* by Hans Petter Langtangen and Svein Linge.
6
8
@@ -23,16 +25,32 @@ python -m venv venv
23
25
source venv/bin/activate # On Windows: venv\Scripts\activate
The build script automatically fixes encoding issues by converting from `utf8x` to standard `utf8`. If you see encoding errors, ensure you're using the latest `make.sh`.
208
+
Check the Quarto log output for details. For more verbose output:
184
209
185
-
### Build Logs
210
+
```bash
211
+
quarto render --log-level debug
212
+
```
213
+
214
+
### Devito Installation Issues
186
215
187
-
Check these files for detailed error information:
216
+
If Devito installation fails, ensure you have a C compiler and dependencies:
188
217
189
-
-`book.log` - LaTeX compilation log
190
-
-`book.dlog` - DocOnce processing log
218
+
```bash
219
+
# macOS
220
+
xcode-select --install
221
+
222
+
# Ubuntu/Debian
223
+
sudo apt-get install build-essential python3-dev
224
+
```
191
225
192
226
## Contributing
193
227
194
228
1. Fork the repository
195
229
2. Create a feature branch (`git checkout -b feature/improvement`)
196
-
3. Make your changes
197
-
4. Run the build to verify (`bash make.sh nospell`)
198
-
5. Commit your changes (`git commit -am 'Add improvement'`)
199
-
6. Push to the branch (`git push origin feature/improvement`)
200
-
7. Create a Pull Request
230
+
3. Install development dependencies: `pip install -e ".[dev]"`
231
+
4. Install pre-commit hooks: `pre-commit install`
232
+
5. Make your changes
233
+
6. Run tests: `pytest tests/ -v`
234
+
7. Verify the build: `quarto render`
235
+
8. Commit your changes (pre-commit hooks run automatically)
-`tests/conftest.py` - Pytest fixtures including `devito_available`
35
+
-`tests/test_operators.py` - 37 tests for FD operators
36
+
-`tests/test_derivations.py` - 22 tests for mathematical derivations
37
+
-`tests/test_wave_devito.py` - Devito wave solver tests (skipped if Devito not installed)
38
+
-`.github/workflows/ci.yml` - GitHub Actions CI with Codecov integration
39
+
40
+
**Phase 2 - Wave Equations (Started):**
41
+
-`src/wave/wave1D_devito.py` - 1D wave equation solver using Devito DSL
42
+
43
+
---
44
+
3
45
## Executive Summary
4
46
5
47
This document outlines the comprehensive plan to refactor *Finite Difference Computing with PDEs - A Modern Software Approach* to use the Devito DSL instead of NumPy-based implementations. The refactored book will teach finite difference methods through Devito's symbolic PDE specification and automatic code generation capabilities.
0 commit comments