From 1637e18d3e12c531179926430f49c439d818568f Mon Sep 17 00:00:00 2001 From: tradke Date: Sun, 20 Jun 2004 12:31:17 +0000 Subject: Removed old interpolator API code. git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGHInterp/trunk@79 1c20744c-e24a-42ec-9533-f5004cb800e5 --- doc/documentation.tex | 52 --------------------------------------------------- 1 file changed, 52 deletions(-) (limited to 'doc') diff --git a/doc/documentation.tex b/doc/documentation.tex index 8d682fe..cb5bdb5 100644 --- a/doc/documentation.tex +++ b/doc/documentation.tex @@ -54,12 +54,6 @@ and reuse them for all grid arrays. Please refer to the {\it Cactus UsersGuide} for a complete function description of \InterpGridArrays\ and {\tt CCTK\_InterpLocalUniform()}.\\ -\PUGHInterp\ also implements the old Cactus interpolation API {\tt -CCTK\_InterpGV()}. Application thorns should not make use of this depricated API -anymore and rather switch to the new, more general API \InterpGridArrays. -A brief description of \PUGHInterp's implementation of {\tt CCTK\_InterpGV()} is -given in section \ref{PUGHInterp_old_API}. - \section{\PUGHInterp's Implementation of \InterpGridArrays} @@ -239,52 +233,6 @@ of gathering all the status information back to the originating processors.) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{\PUGHInterp\ and the old Cactus Interpolation API} -\label{PUGHInterp_old_API} - -Currently, \PUGHInterp\ also implements the old Cactus interpolation API -for grid arrays {\tt CCTK\_InterpGV()}. -For that purpose, it registers different {\tt CCTK\_InterpGV()} operators -under the name {\tt "uniform cartesian"} prepended by the interpolation order, -i.e.\ {\tt "second-order uniform cartesian"}). Currently there are -first, second, and third-order interpolation implemented. - -Each operator takes care of the necessary interprocessor communication, and -also does the actual interpolation itself (as opposed to the new API -\InterpGridArrays\ where an external local interpolator is invoked). - -\subsection{Implementation Notes} -The interpolation operators registered for different orders are mapped -via wrappers (in {\tt Startup.c}) onto a single routine (in {\tt Operator.c}) -just passing the order as an additional argument. - -The routine for distributed arrays will then map all points to interpolate -at to the processors which own those points, and communicate the points' -coordinates and corresponding input arrays ({\tt MPI\_Alltoall()} is used -for this global communication). - -Then the interpolation takes place in parallel on every processor, calling -a core interpolation routine (located in {\tt Interpolate.c}). This one -takes a list of input arrays and points and interpolates these to a -list of output arrays (one output value per interpolation point). -Again, for distributed arrays, the interpolation results for remote points -are sent back to the requesting processors. - -\subsection{Implementation Restrictions} -Current limitations of the core interpolation routine's implementation are: -\begin{itemize} - \item arrays up to three ({\bf MAXDIM}) dimensions only can be handled - \item interpolation orders up to three ({\bf MAXORDER}) only are supported - \item coordinates must be given as {\bf CCTK\_REAL} types - \item input and output array types must be the same - (no type casting of interpolation results supported) -\end{itemize} - -Despite of these limitations, the code it was programmed almost generic -in that it can easily be extended to support higher-dimensional arrays -or more interpolation orders. Please see the NOTES in this source file -for details. - \section{Comments} For more information on how to invoke interpolation operators please refer to the flesh documentation. -- cgit v1.2.3