Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mockingbirdnest/Principia
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3f87ee41aa53
Choose a base ref
...
head repository: mockingbirdnest/Principia
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 563e1c78eafa
Choose a head ref
  • 8 commits
  • 3 files changed
  • 1 contributor

Commits on Jan 6, 2019

  1. Document the damping.

    eggrobin committed Jan 6, 2019
    Copy the full SHA
    2ea893f View commit details
  2. after pleroy's review

    eggrobin committed Jan 6, 2019

    Unverified

    This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
    Copy the full SHA
    10c05f1 View commit details
  3. Copy the full SHA
    812f3d9 View commit details
  4. how can I fix the font

    eggrobin committed Jan 6, 2019
    Copy the full SHA
    76633a4 View commit details

Commits on Jan 7, 2019

  1. regenerate

    eggrobin committed Jan 7, 2019
    Copy the full SHA
    df87ddb View commit details
  2. regenerate again

    eggrobin committed Jan 7, 2019
    Copy the full SHA
    fb205fe View commit details
  3. abs

    eggrobin committed Jan 7, 2019
    Copy the full SHA
    b0aab78 View commit details
  4. Merge pull request #2060 from eggrobin/document-damping

    Document the damping.
    eggrobin authored Jan 7, 2019
    Copy the full SHA
    563e1c7 View commit details
Showing with 79 additions and 4 deletions.
  1. BIN documentation/Geopotential.pdf
  2. +75 −0 documentation/Geopotential.tex
  3. +4 −4 documentation/semtex.sty
Binary file modified documentation/Geopotential.pdf
Binary file not shown.
75 changes: 75 additions & 0 deletions documentation/Geopotential.tex
Original file line number Diff line number Diff line change
@@ -343,5 +343,80 @@ \subsection*{Implementation considerations}
\pa{n - 1} \deriv[m]{t}{\LegendrePolynomial{n - 2}\of t}
\]
This recurrence starts with ${\LegendrePolynomial{0}\of t} = 1$, ${\LegendrePolynomial{1}\of t} = t$ and ${\deriv{t}{\LegendrePolynomial{1}\of t}} = 1$. It is similar to \cite[eqn. (12)]{Westra2017} and makes it possible to efficiently evaluate $\Evaluate{\deriv[m]{t}{\LegendrePolynomial{n}\of t}}{t = \sin \gb}$ for increasing values of $n$ and $m$.

\section*{Damping}
In order to reduce the computational cost, we ignore high degree and order terms at long range.
This is done by replacing $\mathfrak R\of{r}$ by $\gs\of r \mathfrak R\of r$ in $V_{nm}$, where
$\gs\of r = 0$ for all $r>s_1$, and $\gs\of r = 1$ for all $r<s_0$, so that the $V_{nm}$ term
vanishes at long range and is unaffected at short range.

In the force computations, this means that $\grad\mathfrak R$ is replaced by\[
\grad \pa{\gs\mathfrak R} = \pa{\gs'\mathfrak R + \gs\mathfrak R'} \frac \vr r\text.
\]

\subsection*{Sigmoid}
Since we want the force to remain continuous, we need $\gs$ to be $\Cont[1]$; we achieve this by
making $\gs$ the cubic Hermite interpolation on the non-constant interval $\intclos {s_0} {s_1}$,
\[
\gs\of r=
\begin{cases}
1 &\text{for }r \leq s_0\text, \\
\frac{\pa{r-s_1}^2\pa{2r-3s_0+s_1}}{\pa{s_1-s_0}^3} &\text{for }r \in \intclos {s_0} {s_1}\text, \\
0 &\text{for }r \geq s_1\text.
\end{cases}
\]
The radial component of the acceleration resulting from $V_{nm}$ is
\[
\gm\InnerProduct {\grad V_{nm}}{\frac \vr r} = \gm \deriv r {{\gs\of r \mathfrak R\of r}}{\mathfrak B\of \gb}\,{\mathfrak L\of \gl}\text.
\]
We require that it and all its derivatives be monotone, i.e., that
\[
\forall k \in \Positives, \deriv[k+1] r {\gs\of r \mathfrak R\of r}{\mathfrak B\of \gb}\,{\mathfrak L\of \gl}
\]
have constant sign for $r \in \intclos {s_0} {s_1}$.

Removing those factors that do not depend on $r$, this means that we must have
\[
\forall r \in \intopen{s_0} {s_1}, \deriv[k+1] r {\gs\of r r^{-\pa{n+1}}} \neq 0\text.
\]

\begin{lemma}
The smallest value of $s_1$ such that the above property holds for all $k$ and $n$ is $s_1 = 3s_0$.
\end{lemma}
Accordingly, we pick $s_1=3s_0$.
The expression for $\gs$ on $\intclos {s_0} {s_1}$ simplifies to\[
\gs\of r = \frac{r \pa{r-3s_0}^2} {4 s_0^3} = \frac{r^3}{4 s_0^3} - \frac{3 r^2}{2s_0^2} + \frac{9r}{4s_0}\text.
\]

\subsection*{Threshold}
For a tolerance $\gce$, we choose $s_0$ as the smallest distance such that the radial component of the force at $s_0$
does not exceed $\gce$ times the magnitude of the central force,
\[
\max_{\gl,\gb} \abs{s_0^2\mathfrak R' \of {s_0} \mathfrak B \of \gb \mathfrak L\of\gl}
= \gce\text.
\]
This maximum decomposes to
\[
\max_{\gl,\gb} \abs{s_0^2\mathfrak R' \of {s_0} \mathfrak B \of \gb \mathfrak L\of\gl}
= \abs{s_0^2\mathfrak R' \of {s_0}} \max_\gb\abs{\mathfrak B \of \gb} \max_\gl \abs{\mathfrak L\of\gl}\text.
\]
The first factor is
\[
\abs{s_0^2\mathfrak R' \of {s_0}}=s_0^2\frac{\pa{n+1}\mathfrak R\of{s_0}}{s_0}=\pa{n+1}\frac{R^n}{s_0^n}\text.
\]
We have \begin{align*}
\max_\gl \abs{\mathfrak L\of\gl}
&= \max_\gl \abs{C_{nm}\cos m\gl + S_{nm} \sin m\gl}\\
&= \max_\gl \abs{\operatorname{Re}\of{\pa{C_{nm} + \I S_{nm}}\E^{-\I m\gl}}}\\
&= \abs{C_{nm} + \I S_{nm}} = \sqrt{C_{nm}^2 + S_{nm}^2}\text,
\end{align*}
and we numerically compute and tabulate \[
\max_\gb\abs{\mathfrak B \of \gb} = \max_\gb\abs{\p nm\of{\sin \gb}}\text.
\]
Thus we can compute the desired $s_0$ as
\[
s_0 = R \pa{\frac{\max_\gb\abs{\p nm\of{\sin \gb}}\pa{n+1}\sqrt{C_{nm}^2 + S_{nm}^2}}{\gce}}^{\frac 1 n}\text.
\]

\printbibliography
\end{document}
8 changes: 4 additions & 4 deletions documentation/semtex.sty
Original file line number Diff line number Diff line change
@@ -157,7 +157,7 @@
\vphantom{#5}
{\kern-\nulldelimiterspace}
}{\right.}
\kern-\nulldelimiterspace
% \kern-\nulldelimiterspace
}
\def\@delimcontent{#5}
\@delimsizefalse
@@ -169,18 +169,18 @@
\vphantom{#5}
{\kern-\nulldelimiterspace}
}{\right.}
\kern-\nulldelimiterspace
% \kern-\nulldelimiterspace
}
\@delimiterWrapper{\left#3}{
\vphantom{#5}
{\kern-\nulldelimiterspace}
}{\right.}
\kern-\nulldelimiterspace
% \kern-\nulldelimiterspace
\@delimsizefalse
\hphantom{#5}
\mathclose{
\@delimsizetrue
\kern-\nulldelimiterspace
% \kern-\nulldelimiterspace
\@delimiterWrapper{\left.}{
{\kern-\nulldelimiterspace}
\vphantom{#5}