-
Notifications
You must be signed in to change notification settings - Fork 45
Improve documentation with pedagogical approach #625
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
6ebee2c
Improve documentation with pedagogical approach
waltsims 9596dde
Fix index
waltsims d577c30
Fix links
waltsims 0465ec9
use :ghfile:
waltsims 888a3c4
fix links
waltsims bfd555c
Restructure
waltsims 494fc8c
update index
waltsims 41458cf
Fix badge
waltsims 7176f82
Merge branch 'master' into feature/improve-documentation-pedagogical
waltsims 2925e9d
fix link
waltsims 068ef86
ignore license links
waltsims 6e4011a
try again
waltsims 2678a35
3rd time
waltsims 08d5daa
Update README.md
djps cffd5be
Update link-check.yml - explicitly exclude problematic link
djps 2e3b3d1
📝 Add docstrings to `feature/improve-documentation-pedagogical` (#638)
coderabbitai[bot] 3aa3410
Apply suggestion from @coderabbitai[bot]
waltsims 1b96388
Apply suggestion from @coderabbitai[bot]
waltsims 1e4fe0d
Apply suggestion from @coderabbitai[bot]
waltsims dfa441f
Apply suggestion from @coderabbitai[bot]
waltsims 7eb14fa
simplify conf.py
waltsims 7cab8d4
Fix docs formatting
waltsims c13eb82
remove refferences to gpuArray
waltsims 5af3ee8
Make links more robust.
waltsims bfd69dd
clean docs
waltsims 8fb9ad0
fix char
waltsims 9ebbfd2
update uv lock
waltsims 9f979de
Merge branch 'master' into feature/improve-documentation-pedagogical
waltsims 3bae077
fix docs
waltsims File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| name: Markdown Link Validator | ||
|
|
||
| on: | ||
| pull_request: | ||
| push: | ||
| branches: [ main, master ] | ||
|
|
||
| jobs: | ||
| linkChecker: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 1 | ||
|
|
||
| - name: Check links with lychee | ||
| # See https://github.com/lycheeverse/lychee-action | ||
| uses: lycheeverse/lychee-action@v2 | ||
| with: | ||
| # Check all markdown and reStructuredText files | ||
| args: >- | ||
| --verbose | ||
| --no-progress | ||
| --max-concurrency 12 | ||
| --max-retries 3 | ||
| --retry-wait-time 4 | ||
| --accept 200,206,403,429 | ||
| --exclude-path "docs/get_started/legacy_licenses/gpl-3.0.rst" | ||
| "**/*.md" "**/*.rst" | ||
| # Fail the build on any broken link | ||
| fail: true | ||
| env: | ||
| # Exclude localhost and badges | ||
| LY_CHEE_EXCLUDE: "http://localhost,https://localhost,https://127.0.0.1,https://img.shields.io" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,179 @@ | ||
| Examples: k-Wave-Python Step-by-Step | ||
| ======================= | ||
|
|
||
| The k-Wave Python examples are organized to help you progress from basic wave physics to advanced applications. Each example demonstrates the four-component framework (Grid, Medium, Source, Sensor) with increasing complexity. | ||
|
|
||
| Start with the :doc:`get_started/first_simulation` tutorial, then follow this suggested learning path: | ||
|
|
||
| Basic Wave Propagation (IVP - Initial Value Problems) | ||
| ----------------------------------------------------- | ||
|
|
||
| **Start Here**: Learn fundamental wave physics using initial pressure distributions (the simplest source type). | ||
|
|
||
| .. list-table:: | ||
| :header-rows: 1 | ||
| :widths: 40 40 20 | ||
|
|
||
| * - Example | ||
| - Core Concept | ||
| - Topics | ||
| * - :ghdir:`examples/ivp_photoacoustic_waveforms/` | ||
| - 2D vs 3D wave propagation physics | ||
| - **IVP** • Wave spreading • Compact support | ||
|
|
||
| Simple Transducers & Sources | ||
| ----------------------------- | ||
|
|
||
| **Next Step**: Introduction to time-varying sources and practical transducer modeling. | ||
|
|
||
| .. list-table:: | ||
| :header-rows: 1 | ||
| :widths: 40 40 20 | ||
|
|
||
| * - Example | ||
| - Core Concept | ||
| - Topics | ||
| * - :ghdir:`examples/us_defining_transducer/` | ||
| - Basic ultrasound transducer setup | ||
| - **US** • Transducer basics • Time-varying sources | ||
| * - :ghdir:`examples/at_circular_piston_3D/` | ||
| - Simple focused geometry | ||
| - **AT** • 3D focusing • Geometric sources | ||
| * - :ghdir:`examples/at_circular_piston_AS/` | ||
| - Computational efficiency with symmetry | ||
| - **AT** • Axisymmetric • Computational optimization | ||
|
|
||
| Medical Imaging Applications | ||
| ---------------------------- | ||
|
|
||
| **Practical Applications**: See how basic concepts combine into real-world medical imaging systems. | ||
|
|
||
| .. list-table:: | ||
| :header-rows: 1 | ||
| :widths: 40 40 20 | ||
|
|
||
| * - Example | ||
| - Application | ||
| - Topics | ||
| * - :ghdir:`examples/us_beam_patterns/` | ||
| - Understanding acoustic beam formation | ||
| - **US** • Beam focusing • Field patterns | ||
| * - :ghdir:`examples/us_bmode_linear_transducer/` | ||
| - Complete ultrasound imaging pipeline | ||
| - **US** • Medical imaging • Signal processing | ||
| * - :ghdir:`examples/pr_2D_FFT_line_sensor/` | ||
| - Photoacoustic image reconstruction | ||
| - **PR** • Image reconstruction • FFT methods | ||
| * - :ghdir:`examples/pr_2D_TR_line_sensor/` | ||
| - Alternative reconstruction approach | ||
| - **PR** • Time reversal • Reconstruction | ||
|
|
||
| Advanced Transducer Modeling (AT - Array Transducers) | ||
| ----------------------------------------------------- | ||
|
|
||
| **Complex Geometries**: Learn sophisticated techniques for modeling complex transducer arrays using Cartesian space methods. | ||
|
|
||
| .. list-table:: | ||
| :header-rows: 1 | ||
| :widths: 40 40 20 | ||
|
|
||
| * - Example | ||
| - Advanced Technique | ||
| - Topics | ||
| * - :ghdir:`examples/at_array_as_source/` | ||
| - kWaveArray for complex geometries | ||
| - **AT** • Array modeling • Anti-aliasing | ||
| * - :ghdir:`examples/at_array_as_sensor/` | ||
| - Complex sensor array geometries | ||
| - **AT** • Sensor arrays • Flexible positioning | ||
| * - :ghdir:`examples/at_linear_array_transducer/` | ||
| - Multi-element linear arrays | ||
| - **AT** • Linear arrays • Element spacing | ||
| * - :ghdir:`examples/at_focused_bowl_3D/` | ||
| - 3D focused ultrasound therapy | ||
| - **AT** • Therapeutic US • 3D focusing | ||
| * - :ghdir:`examples/at_focused_annular_array_3D/` | ||
| - Multi-element focused systems | ||
| - **AT** • Annular arrays • Complex focusing | ||
|
|
||
| Advanced Imaging & Reconstruction (PR - Pressure/Photoacoustic Reconstruction) | ||
| ------------------------------------------------------------------------------- | ||
|
|
||
| **3D Reconstruction**: Advanced reconstruction techniques for photoacoustic and pressure field imaging. | ||
|
|
||
| .. list-table:: | ||
| :header-rows: 1 | ||
| :widths: 40 40 20 | ||
|
|
||
| * - Example | ||
| - Reconstruction Method | ||
| - Topics | ||
| * - :ghdir:`examples/pr_3D_FFT_planar_sensor/` | ||
| - 3D FFT-based reconstruction | ||
| - **PR** • 3D imaging • Planar arrays | ||
| * - :ghdir:`examples/pr_3D_TR_planar_sensor/` | ||
| - 3D time reversal reconstruction | ||
| - **PR** • 3D time reversal • Volumetric imaging | ||
| * - :ghdir:`examples/us_bmode_phased_array/` | ||
| - Advanced ultrasound beamforming | ||
| - **US** • Phased arrays • Electronic steering | ||
|
|
||
| Sensor Physics & Directivity (SD - Sensor Directivity) | ||
| ------------------------------------------------------ | ||
|
|
||
| **Sensor Modeling**: Understanding how sensor size, shape, and directivity affect measurements. | ||
|
|
||
| .. list-table:: | ||
| :header-rows: 1 | ||
| :widths: 40 40 20 | ||
|
|
||
| * - Example | ||
| - Physics Concept | ||
| - Topics | ||
| * - :ghdir:`examples/sd_directivity_modelling_2D/` | ||
| - How sensor size affects measurements | ||
| - **SD** • Directivity • Finite sensor size | ||
| * - :ghdir:`examples/sd_focussed_detector_2D/` | ||
| - Directional sensor sensitivity | ||
| - **SD** • Focused detection • Sensor design | ||
| * - :ghdir:`examples/sd_focussed_detector_3D/` | ||
| - 3D focused sensor modeling | ||
| - **SD** • 3D detection • Sensor focusing | ||
|
|
||
| Computational Optimization (NA - Numerical Analysis) | ||
| ---------------------------------------------------- | ||
|
|
||
| **Advanced Numerics**: Optimize simulations and understand computational aspects. | ||
|
|
||
| .. list-table:: | ||
| :header-rows: 1 | ||
| :widths: 40 40 20 | ||
|
|
||
| * - Example | ||
| - Optimization Topic | ||
| - Topics | ||
| * - :ghdir:`examples/na_controlling_the_pml/` | ||
| - Boundary conditions and efficiency | ||
| - **NA** • PML boundaries • Computational domains | ||
|
|
||
| Understanding the Prefixes | ||
| -------------------------- | ||
|
|
||
| - **IVP** = Initial Value Problems (wave propagation from initial pressure) | ||
| - **US** = Ultrasound (medical and therapeutic ultrasound applications) | ||
| - **AT** = Array Transducers (complex geometries using Cartesian space methods) | ||
| - **PR** = Pressure/Photoacoustic Reconstruction (image reconstruction techniques) | ||
| - **SD** = Sensor Directivity (sensor physics and measurement effects) | ||
| - **NA** = Numerical Analysis (computational optimization and methods) | ||
|
|
||
| Learning Strategy | ||
| ----------------- | ||
|
|
||
| 1. **Start with IVP**: Understand basic wave physics | ||
| 2. **Move to simple US/AT**: Learn transducer basics | ||
| 3. **Apply to imaging**: See concepts in real applications (US, PR) | ||
| 4. **Master advanced AT**: Handle complex geometries | ||
| 5. **Understand sensors**: Learn about measurement physics (SD) | ||
| 6. **Optimize**: Improve computational efficiency (NA) | ||
|
|
||
| Each example builds on the four-component framework, but with increasing sophistication in how the components are configured and used. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Either add MyST or drop “.md” from source_suffix; otherwise builds will error.
Without a Markdown parser, Sphinx can’t parse .md top-level sources.
Minimal fix (preferred):
Quick check script:
🏁 Script executed:
Length of output: 32
Enable Markdown parsing (myst_parser) or remove ".md" from source_suffix
docs/conf.py currently lists ".md" as a top-level source but myst_parser is not enabled (myst_parser not found in conf.py); Sphinx will fail to build. Apply one of the fixes below.
📝 Committable suggestion
🤖 Prompt for AI Agents