aboutsummaryrefslogtreecommitdiff
path: root/Doc
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2011-05-25 17:18:58 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2011-05-25 17:18:58 +0200
commit9c11d83ae772ec60088a076e9b494064e1b65ee8 (patch)
tree558dd397ed109d8240c1092d57130c3726cc21c3 /Doc
parentaf9eef310d3cfd2f0f42bd54c1112e3fdd17d72b (diff)
KrancDoc.tex: Update Jacobian documentation
Diffstat (limited to 'Doc')
-rw-r--r--Doc/KrancDoc.tex26
1 files changed, 18 insertions, 8 deletions
diff --git a/Doc/KrancDoc.tex b/Doc/KrancDoc.tex
index 131f5c2..c6e1821 100644
--- a/Doc/KrancDoc.tex
+++ b/Doc/KrancDoc.tex
@@ -939,11 +939,14 @@ enabled by an option of the form \verb|Use* -> True| in the call to
\section{Jacobians}
-Kranc allows the user to relate finite differencing operators to
-partial derivatives via an arbitrary user-defined Jacobian
-transformation provided in a grid function. This feature is enabled
-by setting \verb|UseJacobian -> True| in the options to \verb|CreateThorn| or
-\verb|CreateThornTT|.
+Kranc allows the user to apply an arbitrary user-defined Jacobian
+transformation (provided in a grid function) to all derivatives. This
+feature is enabled by setting \verb|UseJacobian -> True| in the
+options to \verb|CreateThorn| or \verb|CreateThornTT|. This can be
+used to generate codes which work with multi-block schemes. The use
+of the Jacobian is determined at run time, so a single code can be
+generated which will work both with and without a Jacobian being
+present.
Kranc does not provide the Jacobian grid function; it might be
provided by an external infrastructure (for example for multi-block
@@ -1018,9 +1021,16 @@ Note:
\item The Jacobian multiplication introduces an additional performance
cost to the simulation, so it should not be enabled unless
necessary.
-\item It is currently not possible to generate a thorn which applies
- the Jacobians optionally based on a run-time parameter or depending
- on the current Carpet map. This is planned for the future.
+\item If the Jacobian parameters are left unset, the partial
+ derivatives will not be multiplied by any Jacobian, and the
+ performance will be only slightly worse than if UseJacobian was not
+ set and the Jacobian code was not generated (the extra cost comes
+ from the use of run-time conditionals).
+\item The parameter \verb|GenericFD::jacobian_identity_map| can be
+ used with multi-block systems to prevent the use of the Jacobian on
+ one of the maps. Set this parameter to the map number (e.g.~0)
+ where the Jacobian should not be applied. This can lead to a
+ significant performance improvement.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%