Skip to content

Commit

Permalink
Reword
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielVandH committed Sep 25, 2024
1 parent 5f725c9 commit c3e0fbd
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
7 changes: 7 additions & 0 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ @phdthesis{bobach2009natural
school={Technische Universit{\"a}t Kaiserslautern},
}

@phdthesis{li2019first,
title={First passage times of diffusion processes and their applications to finance},
author={Luting Li},
year={2019},
school={London School of Economics and Political Science},
}

@phdthesis{gosselin2009delaunay,
title = {Delaunay refinement mesh generation of curve-bounded domains},
author = {Serge Gosselin},
Expand Down
6 changes: 3 additions & 3 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ bibliography: paper.bib

DelaunayTriangulation.jl is a feature-rich Julia [@bezanson2017julia] package for computing Delaunay triangulations and Voronoi tessellations. The package, amongst many other features, supports unconstrained and constrained triangulations, mesh refinement, clipped and centroidal Voronoi tessellations, power diagrams, and dynamic updates. Thanks to the speed and genericity of Julia, the package is both performant and robust---making use of [AdaptivePredicates.jl](https://github.com/JuliaGeometry/AdaptivePredicates.jl) [@churavy2024adaptive; @shewchuk1997adaptive] and [ExactPredicates.jl](https://github.com/lairez/ExactPredicates.jl) [@lairez2024exact] for computing predicates with robust arithmetic---while still allowing for generic representations of geometric primitives.

Given a set of points $\mathcal P$, edges $\mathcal E$, and piecewise linear boundaries $\mathcal B$ together defining some domain $\Omega$, a _Delaunay triangulation_ is a subdivision of this domain into triangles. The vertices of the triangles come from $\mathcal P$, and each of the edges in $\mathcal E$ and $\mathcal B$ are present as an edge of some triangle [@cheng2013delaunay; @aurenhammer2013voronoi]. The boundaries $\mathcal B$ may also be given as parametric curves, in which case they are discretised until they accurately approximate the curved boundary [@gosselin2009delaunay]. A related geometric structure is the _Voronoi tessellation_ that partitions the plane into convex polygons for each $p \in \mathcal P$ such that, for a given polygon, each point in that polygon is closer to the associated polygon's point than to any other $q \in \mathcal P$ [@cheng2013delaunay; @aurenhammer2013voronoi]. Weighted triangulations and power diagrams are generalisations of these structures that allow for the inclusion of weights associated with the points [@cheng2013delaunay].
Given a set of points $\mathcal P$, edges $\mathcal E$, and piecewise linear boundaries $\mathcal B$ together defining some domain $\Omega$, a _Delaunay triangulation_ is a subdivision of this domain into triangles. The vertices of the triangles come from $\mathcal P$, and each of the edges in $\mathcal E$ and $\mathcal B$ are present as an edge of some triangle [@cheng2013delaunay; @aurenhammer2013voronoi]. The boundaries $\mathcal B$ may also be given as parametric curves, in which case they are discretised until they accurately approximate the curved boundary [@gosselin2009delaunay]. A related geometric structure is the _Voronoi tessellation_ that partitions the plane into convex polygons for each $p \in \mathcal P$ such that, for a given polygon, each point in that polygon is closer to the associated polygon's point than to any other $q \in \mathcal P$ [@cheng2013delaunay; @aurenhammer2013voronoi]. Weighted triangulations and power diagrams are generalisations of these structures that allow for the inclusion of weights associated with the points [@cheng2013delaunay]. A more detailed description of these mathematical details can be found in the package's [documentation](https://juliageometry.github.io/DelaunayTriangulation.jl/stable/math/overview/).

# Statement of Need

Expand All @@ -38,7 +38,7 @@ DelaunayTriangulation.jl has already seen use in several areas. DelaunayTriangul

We give one example of how the package can be used, focusing on Delaunay triangulations rather than Voronoi tessellations. Many more examples are given in the [documentation](https://juliageometry.github.io/DelaunayTriangulation.jl/stable/), including [tutorials](https://juliageometry.github.io/DelaunayTriangulation.jl/stable/tutorials/overview/) and [fully detailed applications](https://juliageometry.github.io/DelaunayTriangulation.jl/stable/applications/overview/) such as cell simulations. To fully demonstrate the utility of the package, we consider a realistic application. We omit code used for plotting with Makie.jl [@danisch2021makie] in the example below for space reasons. The complete code is available [here](https://github.com/JuliaGeometry/DelaunayTriangulation.jl/blob/paper/paper/paper.jl).

We consider a domain motivated by mean exit time. In particular, consider the problem
We consider a domain motivated by mean exit time, relating to the time taken for a particle to reach a certain target, with applications to areas such as diffusive transport [@carr2022mean] and economics [@li2019first]. For example, mean exit time can be used to describe the expected time for a stock to reach a certain threshold [@li2019first; @redner2001guide]. Denoting the mean exit time of a particle at a point $(x, y)$ by $T(x, y)$, one model describing the mean exit time of a particle existing $\Omega$ with diffusivity $D$ starting at $(x, y)$ is give by [@redner2001guide; @carr2022mean]
$$
\begin{array}{rcll}
D\nabla^2 T(x, y) & = & -1 & (x, y) \in \Omega, \\
Expand All @@ -47,7 +47,7 @@ T(x, y) & = & 0 & (x, y) = (x_s, y_s), \\
\nabla T(x, y) \cdot \hat{\boldsymbol n}(x, y) & = & 0 & (x, y) \in \Gamma_r.
\end{array}
$$
Here, $T(x, y)$ denotes the mean exit time of a particle exiting $\Omega$ with diffusivity $D$ starting at $(x, y)$ [@redner2001guide; @carr2022mean], $\hat{\boldsymbol n}(x, y)$ is the unit normal vector field on $\Gamma_r$, $(x_s, y_s) = (0, 0)$, and the domain $\Omega$ with boundary $\partial\Omega = \Gamma_a \cup \Gamma_r$ is shown in \autoref{fig:1}(a). This setup defines a mean exit time where the particle can only exit through $\Gamma_a$ or through the sink $(x_s, y_s)$, and it gets reflected off of $\Gamma_r$.
Here, $\hat{\boldsymbol n}(x, y)$ is the unit normal vector field on $\Gamma_r$, $(x_s, y_s) = (0, 0)$, and the domain $\Omega$ with boundary $\partial\Omega = \Gamma_a \cup \Gamma_r$ is shown in \autoref{fig:1}(a). This setup defines a mean exit time where the particle can only exit through $\Gamma_a$ or through the sink $(x_s, y_s)$, and it gets reflected off of $\Gamma_r$.

The code to generate a mesh of the domain is given below. We use `CircularArc`s to define the boundary so that curve-bounded refinement can be applied using the algorithm of @gosselin2009delaunay. The resulting mesh is shown in \autoref{fig:1}, together with a solution of the mean exit time problem with $D = 6.25 \times 10^{-4}$; FiniteVolumeMethod.jl [@vandenheuvel2024finite] is used to solve this problem, and the code for this can be found [here](https://github.com/JuliaGeometry/DelaunayTriangulation.jl/blob/paper/paper/paper.jl).

Expand Down

0 comments on commit c3e0fbd

Please sign in to comment.