{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Adaptive grid discretizations\n", "\n", "## A set of tools for discretizing anisotropic PDEs on cartesian grids" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This collection of notebooks presents is part of a *reproducible research* effort in the numerical analysis of partial differential equations. The emphasis is on non-linear and anisotropic problems, discretized on cartesian grids. We present:\n", "* The mathematical tools underlying the numerical methods, coming in particular from the field of lattice geometry\n", "* Reference implementations, designed to be (reasonably) efficient and pedagogical. (Except for fast marching methods, where the implementations are contained in a black-box C++ library.)\n", "* Test cases. Indeed, these notebooks are also intended as a test suite for the numerical libraries.\n", "* Application examples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "**Disclaimer** This series of notebooks is part of an ongoing research project. While we do have a strong focus on research reproducibility, the provided numerical codes should be regarded as experimental and come *without any guarantee of any type*. \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Table of contents\n", "### 1. [Fast Marching Methods](Notebooks_FMM/Summary.ipynb)\n", " * A. Isotropic and anisotropic metrics\n", "\n", " * I. [Classical isotropic fast marching](Notebooks_FMM/Isotropic.ipynb)\n", " * II. [Riemannian metrics](Notebooks_FMM/Riemannian.ipynb)\n", " * III. [Rander metrics](Notebooks_FMM/Rander.ipynb)\n", " * IV. [Asymmetric quadratic metrics](Notebooks_FMM/AsymmetricQuadratic.ipynb)\n", " * B. Non holonomic metrics and curvature penalization\n", "\n", " * I. [Curvature penalized planar paths.](Notebooks_FMM/Curvature.ipynb)\n", " * II. [Five dimensional Reeds-Shepp models.](Notebooks_FMM/Curvature3.ipynb)\n", " * III. [Customized curvature penalization](Notebooks_FMM/DeviationHorizontality.ipynb)\n", " * IV. [Vehicles with trailers](Notebooks_FMM/Trailers.ipynb)\n", " * C. Algorithmic enhancements to the fast marching method\n", "\n", " * I. [Geodesic computation](Notebooks_FMM/Geodesics.ipynb)\n", " * II. [Achieving high accuracy](Notebooks_FMM/HighAccuracy.ipynb)\n", " * III. [Sensitivity analysis](Notebooks_FMM/Sensitivity.ipynb)\n", " * IV. [Sensitivity in semi-Lagrangian schemes](Notebooks_FMM/SensitivitySL.ipynb)\n", " * V. [Accurate distance from a boundary](Notebooks_FMM/DistanceFromBoundary.ipynb)\n", " * D. Motion planning\n", "\n", " * I. [Closed path through a keypoint](Notebooks_FMM/ClosedPaths.ipynb)\n", " * II. [The Dubins-Zermelo problem](Notebooks_FMM/DubinsZermelo.ipynb)\n", " * III. [Optimal routing of a boat](Notebooks_FMM/BoatRouting.ipynb)\n", " * IV. [Radar detection models](Notebooks_FMM/RadarModels.ipynb)\n", " * V. [Minimal paths with curvature penalization and obstacles (Interactive)](Notebooks_FMM/Interactive_CurvatureObstacles.ipynb)\n", " * E. Seismology and crystallography\n", "\n", " * I. [Metrics defined by a Hooke tensor](Notebooks_FMM/Seismic.ipynb)\n", " * II. [Tilted transversally isotropic metrics](Notebooks_FMM/TTI.ipynb)\n", " * F. Image models and segmentation\n", "\n", " * I. [A mathematical model for Poggendorff's visual illusions](Notebooks_FMM/Illusion.ipynb)\n", " * II. [Tubular structure segmentation](Notebooks_FMM/Tubular.ipynb)\n", " * III. [Geodesic models with convexity shape prior (Interactive)](Notebooks_FMM/Interactive_ConvexRegionSegmentation.ipynb)\n", " * G. Other applications\n", "\n", " * I. [Fisher-Rao distances (statistics)](Notebooks_FMM/FisherRao.ipynb)\n", " * II. [The medial axis, and an application to curve denoising](Notebooks_FMM/MedialAxis.ipynb)\n", " * H. Custom optimal control models, discrete states\n", "\n", " * I. [Dubins car with a state and additional controls](Notebooks_FMM/DubinsState.ipynb)\n", " * II. [Elastica variants](Notebooks_FMM/ElasticaVariants.ipynb)\n", "\n", "### 2. [Non-divergence form PDEs](Notebooks_NonDiv/Summary.ipynb)\n", " * A. One space dimension\n", "\n", " * I. [Static problems](Notebooks_NonDiv/MonotoneSchemes1D.ipynb)\n", " * II. [Advection and diffusion](Notebooks_NonDiv/Time1D_NonDiv.ipynb)\n", " * III. [Optimal transport non-linearities and boundary conditions](Notebooks_NonDiv/OTBoundary1D.ipynb)\n", " * B. Monotone numerical schemes\n", "\n", " * I. [Linear partial differential equations](Notebooks_NonDiv/LinearMonotoneSchemes2D.ipynb)\n", " * II. [PDEs with a first order non-linearity](Notebooks_NonDiv/NonlinearMonotoneFirst2D.ipynb)\n", " * III. [PDEs with a second order non-linearity](Notebooks_NonDiv/NonlinearMonotoneSecond2D.ipynb)\n", " * IV. [The Monge-Ampere equation](Notebooks_NonDiv/MongeAmpere.ipynb)\n", " * C. Eikonal equation and variants\n", "\n", " * I. [Eulerian scheme for Riemannian distances](Notebooks_NonDiv/EikonalEulerian.ipynb)\n", " * II. [Shape from shading with oblique lighting](Notebooks_NonDiv/ShapeFromShading.ipynb)\n", " * D. Time dependent optimal control\n", "\n", " * I. [Boat routing, with a generic cost](Notebooks_NonDiv/BoatRoutingGeneric_Time.ipynb)\n", " * II. [Boat routing, with a quadratic cost](Notebooks_NonDiv/BoatRouting_Time.ipynb)\n", "\n", "### 3. [Divergence form PDEs](Notebooks_Div/Summary.ipynb)\n", " * A. One space dimension\n", "\n", " * I. [Heat and wave equations](Notebooks_Div/Time1D_Div.ipynb)\n", " * B. Static problems\n", "\n", " * I. [Elliptic equations](Notebooks_Div/Elliptic.ipynb)\n", " * II. [Elliptic equations with a first order term](Notebooks_Div/EllipticAsymmetric.ipynb)\n", " * C. Linear elasticity\n", "\n", " * I. [Elastic energy](Notebooks_Div/ElasticEnergy.ipynb)\n", " * II. [The wave equation](Notebooks_Div/ElasticWave.ipynb)\n", " * III. [Fourth order schemes for anisotropic acoustic and elastic waves](Notebooks_Div/HighOrderWaves.ipynb)\n", " * IV. [Gradient backpropagation in anisotropic acoustic and elastic waves](Notebooks_Div/WaveExamples.ipynb)\n", " * D. Primal-Dual optimization\n", "\n", " * I. [The mincut problem](Notebooks_Div/Prox_MinCut.ipynb)\n", " * E. Applications\n", "\n", " * I. [Extracting geodesics from the heat kernel](Notebooks_Div/VaradhanGeodesics.ipynb)\n", " * II. [Non-linear anisotropic Diffusion](Notebooks_Div/AnisotropicDiffusion.ipynb)\n", "\n", "### 4. [Algorithmic tools](Notebooks_Algo/Summary.ipynb)\n", " * A. Tensor decomposition techniques\n", "\n", " * I. [Selling's algorithm, in dimension 2 and 3](Notebooks_Algo/TensorSelling.ipynb)\n", " * II. [Voronoi's reduction, in dimension 4 and 5](Notebooks_Algo/TensorVoronoi.ipynb)\n", " * III. [Voronoi's reduction, in dimension 6, application to Hooke tensor decomposition](Notebooks_Algo/TensorVoronoi6.ipynb)\n", " * B. Generalized acuteness\n", "\n", " * I. [Finslerian norms and the Stern-Brocot tree](Notebooks_Algo/SternBrocot.ipynb)\n", " * II. [Riemannian norms and the Voronoi vectors](Notebooks_Algo/VoronoiVectors.ipynb)\n", " * III. [Norms defined by a Hooke tensor](Notebooks_Algo/SeismicNorm.ipynb)\n", " * C. Automatic differentiation\n", "\n", " * I. [Dense automatic differentiation, and geodesic shooting](Notebooks_Algo/Dense.ipynb)\n", " * II. [Sparse automatic differentiation](Notebooks_Algo/Sparse.ipynb)\n", " * III. [Reverse automatic differentiation](Notebooks_Algo/Reverse.ipynb)\n", " * IV. [Known bugs and incompatibilities](Notebooks_Algo/ADBugs.ipynb)\n", " * D. Domain representation\n", "\n", " * I. [Subsets of $R^d$](Notebooks_Algo/SubsetRd.ipynb)\n", " * II. [Finite differences, interpolation](Notebooks_Algo/FiniteDifferences.ipynb)\n", " * E. Convex functions and convex bodies\n", "\n", " * I. [Minkowski and Meissner's problems](Notebooks_Algo/Meissner.ipynb)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [], "source": [ "#import sys; sys.path.append(\"..\") # Allow imports from parent directory\n", "#from Miscellaneous import TocTools; print(TocTools.displayTOCss())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.10" } }, "nbformat": 4, "nbformat_minor": 2 }