Exercise scripts#

Scripts for data generation and plotting for the exercises in assignment 2.

Exercise A#

Legendre Tau vs Collocation methods - convergence analysis.

Legendre Tau vs Collocation - Convergence Study

Legendre Tau vs Collocation - Convergence Study

Legendre Tau vs Collocation - Data Generation

Legendre Tau vs Collocation - Data Generation

Legendre Tau vs Collocation - Plotting

Legendre Tau vs Collocation - Plotting

Exercise B#

Fourier spectral methods.

Polar BVP - Data Generation

Polar BVP - Data Generation

Polar BVP - Plotting

Polar BVP - Plotting

Exercise C#

Boundary value problems and eigenvalue analysis.

KdV Eigenvalue Stability Analysis - Data Generation

KdV Eigenvalue Stability Analysis - Data Generation

KdV Solutions - Separate plots per method

KdV Solutions - Separate plots per method

KdV Convergence Studies

KdV Convergence Studies

Generate KdV Soliton Samples (RK4, RK3)

Generate KdV Soliton Samples (RK4, RK3)

KdV Eigenvalue Stability Analysis - Plotting

KdV Eigenvalue Stability Analysis - Plotting

Spatial and Temporal Convergence for Fourier KdV Solver

Spatial and Temporal Convergence for Fourier KdV Solver

Exercise D#

Advanced eigenvalue problems.

Single Soliton Error and Conservation Analysis

Single Soliton Error and Conservation Analysis

Single Soliton Error and Conservation Analysis

Single Soliton Error and Conservation Analysis

Exercise E#

Time-dependent PDEs.

Aliasing Diagnostics for Fourier KdV Solver

Aliasing Diagnostics for Fourier KdV Solver

Aliasing Diagnostics for KdV Solver

Aliasing Diagnostics for KdV Solver

Exercise F#

KdV equation and invariants.

Space-Time Visualization for Two-Soliton Collision

Space-Time Visualization for Two-Soliton Collision

Two-Soliton KdV Collision Dataset Generation

Two-Soliton KdV Collision Dataset Generation

Conserved Quantities for Two-Soliton Collision

Conserved Quantities for Two-Soliton Collision

Two-Soliton KdV Collision Animation

Two-Soliton KdV Collision Animation

Exercise G#

Nonlinear problems: profiling, scalability, and work-precision analysis for the KdV solver.

Available scripts

Profiling#

  • compute_profiling_functions.py – Function-level profiling using cProfile. Saves to data/A2/ex_g/cprofile_functions.parquet.

  • compute_profiling_lines.py – Line-by-line profiling using line_profiler. Requires @profile decorators in src/spectral/tdp.py.

    Usage: uv run kernprof -l Exercises/exercise_g/compute_profiling_lines.py then uv run python Exercises/exercise_g/compute_profiling_lines.py --parse

  • plot_profiling_functions.py – Function-level profiling visualizations. Saves to figures/A2/ex_g/function_profiling.pdf.

  • plot_profiling_lines.py – Line-by-line profiling visualizations. Saves to figures/A2/ex_g/line_profiling.pdf.

Performance Analysis#

  • compute_scalability.py – Measures strong/weak scaling behavior. Saves to data/A2/ex_g/scalability_timing.parquet.

  • compute_work-precision.py – Sweeps stable time-step fractions for RK3/RK4 and records work vs accuracy metrics. Saves to data/A2/ex_g/work_precision.parquet.

  • plot_scalability.py – Creates scalability analysis plots. Saves to figures/A2/ex_g/scalability_analysis.pdf.

  • plot_work-precision.py – Creates work-precision diagrams. Saves to figures/A2/ex_g/work_precision.pdf.

Note: Run the corresponding compute_*.py or profile_*.py scripts before plotting.

Scalability Analysis

Scalability Analysis

Work-Precision Diagram: Varying Grid Resolution

Work-Precision Diagram: Varying Grid Resolution

Profiling Script: Single Soliton KdV Solver

Profiling Script: Single Soliton KdV Solver

Scalability Analysis: Time per Step vs Grid Size

Scalability Analysis: Time per Step vs Grid Size

Work-Precision Analysis: RK3 vs RK4 with Varying Grid Resolution

Work-Precision Analysis: RK3 vs RK4 with Varying Grid Resolution

Exercise H#

Advanced applications.

Transport Equation Solution using Legendre Collocation

Transport Equation Solution using Legendre Collocation

Transport Equation Solutions

Transport Equation Solutions

Gallery generated by Sphinx-Gallery