Skip to content

Commit af194bb

Browse files
committed
Complete Phase 8: Final Integration & Review
- Add Devito references to bibliography (4 entries) - Fix Unicode characters causing pdflatex errors (lambda, pi, nu, approx) - Replace box-drawing characters with ASCII in directory tree - Update cross-references from removed vib chapter to devito_intro - Add section label for absorbing boundary conditions - Fix preface chapter reference from @sec-ch-vib to @sec-ch-devito-intro - Remove obsolete vib animation references from wave chapter - PDF builds cleanly (4.9MB), all 165 tests pass
1 parent 18c3bce commit af194bb

11 files changed

Lines changed: 84 additions & 44 deletions

File tree

chapters/advec/advec_devito_exercises.qmd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ plt.plot(x, u_final, 'b-', label='Final (T=1)')
426426
plt.xlabel('x')
427427
plt.ylabel('u')
428428
plt.legend()
429-
plt.title('Advection with variable velocity c(x) = 1 + 0.5sin(2πx)')
429+
plt.title('Advection with variable velocity c(x) = 1 + 0.5*sin(2*pi*x)')
430430
plt.savefig('variable_velocity.pdf')
431431
```
432432
:::
@@ -504,7 +504,7 @@ plt.figure(figsize=(10, 6))
504504

505505
for nu, style in [(0.0, 'b-'), (0.01, 'r--'), (0.1, 'g-.')]:
506506
u, x = solve_advec_diff(L, c, nu, Nx, T, C, I)
507-
plt.plot(x, u, style, label=f'ν={nu}')
507+
plt.plot(x, u, style, label=f'nu={nu}')
508508

509509
plt.plot(x, I(x), 'k:', lw=2, label='Initial')
510510
plt.legend()

chapters/appendices/softeng2/softeng2.qmd

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2090,24 +2090,24 @@ A well-organized Devito project follows standard Python package conventions:
20902090
20912091
```
20922092
my_pde_solver/
2093-
├── src/
2094-
├── __init__.py
2095-
├── solvers/
2096-
├── __init__.py
2097-
├── wave.py # Wave equation solvers
2098-
└── diffusion.py # Diffusion equation solvers
2099-
└── utils/
2100-
├── __init__.py
2101-
├── visualization.py # Plotting utilities
2102-
└── convergence.py # Convergence testing
2103-
├── tests/
2104-
├── conftest.py # Pytest fixtures
2105-
├── test_wave.py
2106-
└── test_diffusion.py
2107-
├── examples/
2108-
└── run_simulation.py
2109-
├── pyproject.toml
2110-
└── README.md
2093+
+-- src/
2094+
| +-- __init__.py
2095+
| +-- solvers/
2096+
| | +-- __init__.py
2097+
| | +-- wave.py # Wave equation solvers
2098+
| | +-- diffusion.py # Diffusion equation solvers
2099+
| +-- utils/
2100+
| +-- __init__.py
2101+
| +-- visualization.py # Plotting utilities
2102+
| +-- convergence.py # Convergence testing
2103+
+-- tests/
2104+
| +-- conftest.py # Pytest fixtures
2105+
| +-- test_wave.py
2106+
| +-- test_diffusion.py
2107+
+-- examples/
2108+
| +-- run_simulation.py
2109+
+-- pyproject.toml
2110+
+-- README.md
21112111
```
21122112
21132113
### Pytest Fixtures for Devito Testing

chapters/appendices/trunc/trunc.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2102,7 +2102,7 @@ def test_laplacian_accuracy(space_order):
21022102
for i in range(len(errors)-1)]
21032103
return np.mean(rates)
21042104
2105-
# Expected: rate 2 for space_order=2, rate 4 for space_order=4
2105+
# Expected: rate ~ 2 for space_order=2, rate ~ 4 for space_order=4
21062106
```
21072107
21082108
The measured rates should match the theoretical orders from truncation

chapters/preface/preface.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ mathematics, numerics, computer science, and physics.
209209

210210
Most books on finite difference methods, or books on theory with
211211
computer examples, have their emphasis on diffusion phenomena. Half
212-
of this book (Chapters @sec-ch-vib, @sec-ch-wave, and Appendix
212+
of this book (Chapters @sec-ch-devito-intro, @sec-ch-wave, and Appendix
213213
@sec-ch-softeng2) is devoted to wave phenomena. Extended material on
214214
this topic is not so easy find in the literature, so the book should
215215
be a valuable contribution in this respect. Wave phenomena is also a

chapters/wave/wave1D_fd1.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ empirical convergence rate of the method.
402402
An introduction to the computing of convergence rates is given in Section 3.1.6
403403
in [@Langtangen_decay].
404404
There is also a detailed example on computing convergence rates in
405-
Section @sec-vib-ode1-verify.
405+
@sec-devito-intro-verification.
406406
407407
In the present problem, one expects the method to have a convergence rate
408408
of 2 (see Section @sec-wave-pde1-analysis), so if the computed rates

chapters/wave/wave1D_fd2.qmd

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -720,8 +720,7 @@ for smooth $q(x)$ functions.
720720
The harmonic mean is often preferred when $q(x)$ exhibits large
721721
jumps (which is typical for geological media).
722722
The geometric mean is less used, but popular in
723-
discretizations to linearize quadratic
724-
nonlinearities (see the vibrations chapter, Section @sec-vib-exer-verify-gen-linear for an example).
723+
discretizations to linearize quadratic nonlinearities.
725724
726725
With the operator notation for the arithmetic mean
727726
we can specify the discretization of the complete variable-coefficient

chapters/wave/wave1D_features.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ For our example with $c_1 = 1$ and $c_2 = 2$:
207207
The transmitted wave has larger amplitude but carries the same energy
208208
(accounting for the velocity change).
209209
210-
### Absorbing Boundary Conditions
210+
### Absorbing Boundary Conditions {#sec-wave-1d-absorbing}
211211
212212
For open-domain problems, we want waves to leave without reflecting
213213
from artificial boundaries. A simple approach is a **sponge layer**

chapters/wave/wave1D_prog.qmd

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -601,25 +601,20 @@ frame in the animation to file. We then need a filename where the
601601
frame number is padded with zeros, here `tmp_0000.png`,
602602
`tmp_0001.png`, and so on. The proper printf construction is then
603603
`tmp_%04d.png`.
604-
Section @sec-vib-ode1-anim contains more basic
605-
information on making animations.
606604

607605
### Making movie files
608606

609607
From the
610608
`frame_*.png` files containing the frames in the animation we can
611-
make video files.
612-
Section @sec-vib-ode1-anim presents basic information on how to
613-
use the `ffmpeg` (or `avconv`) program for producing video files
614-
in different modern formats: Flash, MP4, Webm, and Ogg.
609+
make video files using the `ffmpeg` (or `avconv`) program to produce
610+
videos in modern formats: Flash, MP4, Webm, and Ogg.
615611

616612
The `viz` function creates an `ffmpeg` or `avconv` command
617613
with the proper arguments for each of the formats Flash, MP4, WebM,
618614
and Ogg. The task is greatly simplified by having a
619615
`codec2ext` dictionary for mapping
620616
video codec names to filename extensions.
621-
As mentioned in Section @sec-vib-ode1-anim, only
622-
two formats are actually needed to ensure that all browsers can
617+
In practice, only two formats are needed to ensure that all browsers can
623618
successfully play the video: MP4 and WebM.
624619

625620
Some animations having a large number of plot files may not

chapters/wave/wave_exercises.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ for i, f0 in enumerate([10, 25, 50]):
201201
c = 1500 # m/s
202202
for f0 in [10, 25, 50]:
203203
wavelength = c / f0
204-
print(f"f0 = {f0} Hz: λ = {wavelength} m")
204+
print(f"f0 = {f0} Hz: wavelength = {wavelength} m")
205205

206206
# Part (c)
207207
# The Ricker wavelet is centered at t0, and has amplitude ~0 when

devito-plan.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2555,18 +2555,26 @@ jobs:
25552555
25562556
---
25572557
2558-
## Phase 8: Final Integration & Review
2558+
## Phase 8: Final Integration & Review ✅ Complete
25592559
25602560
### 8.1 Pre-Publication Checklist
25612561
2562-
- [ ] All code examples run without errors
2563-
- [ ] All tests pass in CI
2564-
- [ ] Convergence rates verified for all solvers
2565-
- [ ] Cross-references updated (equations, figures, sections)
2566-
- [ ] Bibliography updated with Devito references
2567-
- [ ] Index regenerated
2568-
- [ ] PDF builds cleanly
2569-
- [ ] HTML version renders correctly
2562+
- [x] All code examples run without errors
2563+
- [x] All tests pass in CI (165 tests)
2564+
- [x] Convergence rates verified for all solvers (wave 1D/2D, diffusion 1D/2D)
2565+
- [x] Cross-references updated (equations, figures, sections)
2566+
- [x] Bibliography updated with Devito references (4 new entries)
2567+
- [x] Index regenerated (via Quarto build)
2568+
- [x] PDF builds cleanly (4.9MB)
2569+
- [x] HTML version renders correctly
2570+
2571+
**Completed: 2026-01-28**
2572+
2573+
**Fixes applied:**
2574+
- Fixed Unicode characters (λ, π, ν, ≈) causing pdflatex errors
2575+
- Fixed box-drawing characters in directory tree diagrams
2576+
- Updated cross-references from removed vib chapter to devito_intro
2577+
- Added section label for absorbing boundary conditions
25702578
25712579
### 8.2 New References to Add
25722580

0 commit comments

Comments
 (0)