Skip to content

Commit 6d1c0a5

Browse files
authored
Merge pull request #314 from sandialabs/kuberry-gmls-explanation-update
- Updated README.md to work with Github markup as well as Doxygen - Gave a more detailed overview of GMLS
2 parents 0610eb7 + 63e988b commit 6d1c0a5

File tree

2 files changed

+32
-16
lines changed

2 files changed

+32
-16
lines changed

README.md

+27-12
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,33 @@ This toolkit focuses on the 'on-node' aspects of meshless PDE solution and remap
88

99
### Generalized Moving Least Squares (GMLS)
1010

11-
A GMLS problem requires the specification of a target functional ![equation](https://latex.codecogs.com/gif.latex?\tau) (Compadre::TargetOperation), a reconstruction space ![equation](https://latex.codecogs.com/gif.latex?V) (Compadre::ReconstructionSpace), and a sampling functional ![equation](https://latex.codecogs.com/gif.latex?\lambda) (Compadre::SamplingFunctional).
12-
13-
The Compadre Toolkit is designed to efficiently assemble, factorize, and solve large batches of minimization problems having the form:
14-
15-
![equation](https://latex.codecogs.com/png.latex?%5Cbg_white%20%5Clarge%20%5C%5C%20%5Cbegin%7Balign*%7D%20p%5E%7B*%7D%26%20%3D%26%20%5Cunderset%7Bp%20%5Cin%20V%7D%7B%5Ctext%7Barg%20min%7D%7D%5C%3B%5Cfrac%7B1%7D%7B2%7D%5Csum_%7Bj%3D1%7D%5EN%20%28%5Clambda_j%28u%29-%5Clambda_j%28p%29%29%5E%7B2%7D%5Comega%28%5Ctau%3B%5Clambda_j%29%5C%5C%5C%5C%20%26%26%5Ctau%28u%29%20%5Capprox%20%5Ctau%28p%5E%7B*%7D%29%20%5Cend%7Balign*%7D)
16-
<!---
17-
https://www.codecogs.com/latex/eqneditor.php
18-
\[\large \begin{align*}
19-
p^{*}& =& \underset{p \in V}{\text{arg min}}\;\frac{1}{2}\sum_{j=1}^N (\lambda_j(u)-\lambda_j(p))^{2}\omega(\tau;\lambda_j)\\\\
20-
&&\tau(u) \approx \tau(p^{*})
21-
\end{align*} \]
22-
--->
11+
Here is a brief overview of the GMLS framework:
12+
13+
Consider $\phi$ of function class $\mathbf{V}$ as well as a collection of samples $\Lambda = \\{\lambda_ i(\phi)\\}_ {i=1}^{N}$ (Compadre::SamplingFunctional) corresponding to a quasiuniform collection of data sites $\mathbf{X}_ h = \\{ \mathbf{x}_ i \\} \subset \mathbb{R}^d$ characterized by fill distance $h$. To approximate a given linear target functional $\tau_{\tilde{x}}$ (Compadre::TargetOperation) associated with a target site $\tilde{x}$, we seek a reconstruction $p \in \mathbf{V}_ h$, where $\mathbf{V}_ h \subset \mathbf{V}$ is a finite dimensional space (Compadre::ReconstructionSpace) chosen to provide good approximation properties, with basis $\mathbf{P} = \\{P\\}_{i=1}^{dim(V_h)}$. We perform this reconstruction in the following weighted $\ell_2$ sense:
14+
15+
$$p = \underset{{q \in \mathbf{V}_ h}}{\mathrm{argmin}} \sum_{i=1}^N ( \lambda_i(\phi) -\lambda_i(q) )^2 \omega(\lambda_i,\tau_{\tilde{x}}),$$
16+
17+
where $\omega$ is a locally supported positive function, $\omega = \Phi(|\tilde{x}-\mathbf{x}_i|)$ and $|\cdot|$ denotes the Euclidean norm. $\Phi(r,\epsilon)$ is selected by the user, having a parameter controlling the support of $\omega$.
18+
19+
With an optimal reconstruction $p$ in hand, the target functional is approximated via $\tau_{\tilde{x}} (\phi) \approx \tau^h_{\tilde{x}} (\phi) := \tau_{\tilde{x}} (p)$.
20+
21+
As an unconstrained $\ell_2$-optimization problem, this process admits the explicit form:
22+
23+
24+
$$\tau^h_{\tilde{x}}(\phi) = \tau_{\tilde{x}}(\mathbf{P})^\top \left(\Lambda(\mathbf{P})^\top \mathbf{W} \Lambda(\mathbf{P})\right)^{-1} \Lambda(\mathbf{P})^\top \mathbf{W} \Lambda(\phi),$$
25+
26+
where:
27+
* $\tau_{\tilde{x}}(\mathbf{P}) \in \mathbb{R}^{dim(V_h)}$ is a vector with components consisting of the target functional applied to each basis function,
28+
* $\mathbf{W} \in \mathbb{R}^{N \times N}$ is a diagonal matrix with diagonal entries consisting of $\\{\omega(\lambda_i,\tau_{\tilde{x}})\\}_{i=1,...,N}$,
29+
* $\Lambda(\mathbf{P}) \in \mathbb{R}^{N \times dim(V_h)}$ is a rectangular matrix whose $(i,j)$ entry corresponds to the application of the $i^{th}$ sampling functional applied to the $j^{th}$ basis function,
30+
* and $\Lambda(\phi) \in \mathbb{R}^N$ is a vector consisting of the $N$ samples of the function $\phi$.
31+
32+
Compadre forms and solves the GMLS problem for $\\{\alpha_i\\}$ used in the approximation $\tau^h_{\tilde{x}}(\phi) = \sum_{\mathbf{x}_i \in B^\epsilon(\tilde{x})} \alpha_i \lambda_i(\phi)$,
33+
where $B^\epsilon(\tilde{x})$ denotes the $\epsilon$-ball neighborhood of the target site $\tilde{x}$.
34+
35+
As such, GMLS admits an interpretation as an automated process for generating generalized finite difference methods on unstructured point clouds. Note that the computational cost of solving the GMLS problem amounts to inverting a small linear system which may be assembled using only information from neighbors within the support of $\omega$, and construction of such stencils across the entire domain is embarrassingly parallel.
36+
37+
The Compadre Toolkit is designed to efficiently assemble, factorize, and solve large batches of GMLS problems.
2338

2439
## Wiki Information
2540
Details about building and using the Compadre toolkit can be found on the [Wiki](https://github.com/sandialabs/compadre/wiki).

doc/Doxyfile

+5-4
Original file line numberDiff line numberDiff line change
@@ -926,7 +926,7 @@ INPUT_FILTER =
926926
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
927927
# patterns match the file name, INPUT_FILTER is applied.
928928

929-
FILTER_PATTERNS =
929+
FILTER_PATTERNS += "*.md=sed 's/\([^$]\)\$\([^$]*\)\$\([^$]\)/\1\\f$\2\\f$\3/g;s/\\{/\{/g;s/\\}/\}/g'"
930930

931931
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
932932
# INPUT_FILTER ) will also be used to filter the input files that are used for
@@ -1500,7 +1500,7 @@ FORMULA_TRANSPARENT = YES
15001500
# The default value is: NO.
15011501
# This tag requires that the tag GENERATE_HTML is set to YES.
15021502

1503-
USE_MATHJAX = NO
1503+
USE_MATHJAX = YES
15041504

15051505
# When MathJax is enabled you can set the default output format to be used for
15061506
# the MathJax output. See the MathJax site (see:
@@ -1523,7 +1523,8 @@ MATHJAX_FORMAT = HTML-CSS
15231523
# The default value is: http://cdn.mathjax.org/mathjax/latest.
15241524
# This tag requires that the tag USE_MATHJAX is set to YES.
15251525

1526-
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
1526+
# https was required to have it resolve on Github pages
1527+
MATHJAX_RELPATH = https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML
15271528

15281529
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
15291530
# extension names that should be enabled during MathJax rendering. For example
@@ -1633,7 +1634,7 @@ EXTRA_SEARCH_MAPPINGS =
16331634
# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
16341635
# The default value is: YES.
16351636

1636-
GENERATE_LATEX = YES
1637+
GENERATE_LATEX = NO
16371638

16381639
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
16391640
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of

0 commit comments

Comments
 (0)