Skip to content

Commit c387c23

Browse files
committed
Update title and attribution for Devito edition
- Change subtitle from "A Modern Software Approach" to "A Devito Approach" - Add "About This Adaptation" section to preface with CC BY 4.0 attribution - Fix license from CC BY-NC 4.0 to CC BY 4.0 (matching original work) - Add adapter credit (Gerard J. Gorman, Imperial College London) - Create LICENSE file with full attribution requirements - Add license badge and DOI link to README and index
1 parent 087844f commit c387c23

5 files changed

Lines changed: 101 additions & 8 deletions

File tree

LICENSE

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# License
2+
3+
## This Adapted Work
4+
5+
"Finite Difference Computing with PDEs: A Devito Approach" is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
6+
7+
https://creativecommons.org/licenses/by/4.0/
8+
9+
## Original Work
10+
11+
This work is adapted from:
12+
13+
**Finite Difference Computing with PDEs: A Modern Software Approach**
14+
by Hans Petter Langtangen and Svein Linge
15+
16+
- Publisher: Springer International Publishing (2017)
17+
- DOI: https://doi.org/10.1007/978-3-319-55456-3
18+
- License: CC BY 4.0
19+
- Source: https://github.com/hplgit/fdm-book
20+
21+
## Attribution
22+
23+
When reusing this work, please credit:
24+
1. Original authors: Hans Petter Langtangen and Svein Linge
25+
2. Adapter: Gerard J. Gorman
26+
3. Link to original DOI
27+
4. Link to CC BY 4.0 license
28+
5. Note that changes were made

README.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ Install [Quarto](https://quarto.org/docs/get-started/):
6666
# macOS
6767
brew install quarto
6868

69-
# Ubuntu/Debian
70-
wget https://github.com/quarto-dev/quarto-cli/releases/latest/download/quarto-linux-amd64.deb
71-
sudo dpkg -i quarto-linux-amd64.deb
69+
# Ubuntu/Debian - see https://quarto.org/docs/get-started/ for current version
70+
# Download the .deb from https://github.com/quarto-dev/quarto-cli/releases/latest
71+
sudo dpkg -i quarto-*.deb
7272
```
7373

7474
### LaTeX (for PDF output)
@@ -158,16 +158,28 @@ Pre-commit hooks enforce:
158158

159159
## License
160160

161-
Content: [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
161+
[![CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)
162+
163+
This work is adapted from:
164+
165+
> Langtangen, H.P., Linge, S. (2017). *Finite Difference Computing with PDEs: A Modern Software Approach*. Springer, Cham. [DOI: 10.1007/978-3-319-55456-3](https://doi.org/10.1007/978-3-319-55456-3)
166+
167+
Licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
162168

163169
## Authors
164170

171+
**Original Authors:**
172+
165173
- Hans Petter Langtangen (1962-2016)
166174
- Svein Linge
167175

176+
**Adapted by:**
177+
178+
- Gerard J. Gorman, Imperial College London
179+
168180
## Links
169181

170182
- [Devito Project](https://www.devitoproject.org/)
171-
- [Devito Documentation](https://www.devitoproject.org/devito/index.html)
183+
- [Devito API Reference](https://www.devitoproject.org/api/)
172184
- [Devito GitHub](https://github.com/devitocodes/devito)
173185
- [Original Book (PDF)](https://hplgit.github.io/fdm-book/doc/pub/book/pdf/fdm-book-4print.pdf)

_quarto.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project:
44

55
book:
66
title: "Finite Difference Computing with PDEs"
7-
subtitle: "A Modern Software Approach"
7+
subtitle: "A Devito Approach"
88
author:
99
- name: Hans Petter Langtangen
1010
- name: Svein Linge

chapters/preface/preface.qmd

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
1+
## About This Adaptation {.unnumbered}
2+
3+
This book is an adaptation of *Finite Difference Computing with PDEs: A Modern Software Approach* by Hans Petter Langtangen and Svein Linge, originally published by Springer in 2017 under a [Creative Commons Attribution 4.0 International License (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/).
4+
5+
**Original Work:**
6+
7+
> Langtangen, H.P., Linge, S. (2017). *Finite Difference Computing with PDEs: A Modern Software Approach*. Texts in Computational Science and Engineering, vol 16. Springer, Cham. [https://doi.org/10.1007/978-3-319-55456-3](https://doi.org/10.1007/978-3-319-55456-3)
8+
9+
### What Has Changed
10+
11+
This edition has been substantially adapted to feature [Devito](https://www.devitoproject.org/), a domain-specific language for symbolic PDE specification and automatic code generation.
12+
13+
**New Content:**
14+
15+
- Introduction to Devito chapter covering Grid, Function, TimeFunction, and Operator
16+
- Devito solver implementations for wave, diffusion, advection, and nonlinear equations
17+
- Comprehensive exercises using Devito
18+
- Test suite with verification of all numerical methods
19+
20+
**Technical Updates:**
21+
22+
- Conversion from DocOnce to [Quarto](https://quarto.org/) publishing format
23+
- Modern Python practices
24+
- Continuous integration and testing infrastructure
25+
- Updated external links and references
26+
27+
**Preserved Content:**
28+
29+
- Mathematical derivations and theoretical foundations
30+
- Pedagogical structure and learning philosophy
31+
- Appendices on truncation errors and finite difference formulas
32+
33+
### Acknowledgment
34+
35+
This adaptation was prepared by Gerard J. Gorman (Imperial College London) in collaboration with the Devito development team.
36+
37+
Professor Hans Petter Langtangen passed away in October 2016. His profound contributions to computational science education continue to benefit students and practitioners worldwide. This adaptation aims to honor his legacy by bringing his pedagogical approach to modern tools.
38+
39+
---
40+
41+
## Original Preface
42+
43+
*The following preface is from the original work by Langtangen and Linge.*
44+
145
There are so many excellent books on finite difference methods for
246
ordinary and partial differential equations that writing yet another
347
one requires a different view on the topic. The present book is not
@@ -241,7 +285,7 @@ stated, even if it was already met in another chapter.
241285

242286
All program and data files referred to in this book are available
243287
from the book's primary web site:
244-
URL: <https://github.com/hplgit/fdm-book/>.
288+
URL: <https://github.com/devitocodes/devito_book/>.
245289

246290
### Acknowledgments
247291

index.qmd

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,20 @@ This book teaches finite difference methods for solving partial differential equ
44

55
## About this Edition {.unnumbered}
66

7-
This is the modernized edition of *Finite Difference Computing with PDEs - A Modern Software Approach*, originally authored by Hans Petter Langtangen and Svein Linge. This edition features:
7+
This is an adaptation of *[Finite Difference Computing with PDEs: A Modern Software Approach](https://doi.org/10.1007/978-3-319-55456-3)* by Hans Petter Langtangen and Svein Linge (Springer, 2017). This Devito edition features:
88

99
- **[Devito](https://www.devitoproject.org/)** - A domain-specific language for symbolic PDE specification and automatic code generation
1010
- **[Quarto](https://quarto.org/)** - Modern scientific publishing for web and PDF output
1111
- **Modern Python** - Type hints, testing, and CI/CD practices
1212

13+
Adapted by Gerard J. Gorman (Imperial College London).
14+
15+
## License {.unnumbered}
16+
17+
[![CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)
18+
19+
This work is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), the same license as the original work.
20+
1321
## What is Devito? {.unnumbered}
1422

1523
Devito allows you to write PDEs symbolically and automatically generates optimized finite difference code:
@@ -19,6 +27,7 @@ from devito import Grid, TimeFunction, Eq, Operator
1927

2028
grid = Grid(shape=(101,), extent=(1.0,))
2129
u = TimeFunction(name='u', grid=grid, time_order=2, space_order=2)
30+
c = 1.0 # wave speed
2231

2332
# Write the wave equation symbolically
2433
eq = Eq(u.dt2, c**2 * u.dx2)

0 commit comments

Comments
 (0)