[Commits] [svn:einsteintoolkit] incoming/ (Rev. 80)

rhaas at tapir.caltech.edu rhaas at tapir.caltech.edu
Fri May 10 23:37:35 CDT 2013


User: rhaas
Date: 2013/05/10 11:37 PM

Added:
 /CartesianCoordinates/
  README, interface.ccl, param.ccl, schedule.ccl
 /CartesianCoordinates/doc/
  documentation.tex
 /CartesianCoordinates/src/
  init.c, make.code.defn, util.c

Log:
 CartesianCoordinates: import from Zelmani a78ba3bf78b84134a0146284a58e8957afe9667b
 
 CartesianCoordinates provides a minimal implementation of Llama's Coordinates
 interface with only Cartesian coordinates available. It is useful to run thorns
 that require Coordinates when not actually using multipatches at all.

Directory Changes:

Directory: /svn:mime-type/
==========================

   + text/x-csrc

File Changes:

Directory: /CartesianCoordinates/
=================================

File [added]: README
Delta lines: +7 -0
===================================================================
--- CartesianCoordinates/README	                        (rev 0)
+++ CartesianCoordinates/README	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,7 @@
+Cactus Code Thorn CartesianCoordinates
+Thorn Author(s)     : Christian Reisswig <reisswig at aei.mpg.de>
+Thorn Maintainer(s) : Christian Reisswig <reisswig at aei.mpg.de>
+--------------------------------------------------------------------------
+
+Purpose of the thorn:
+

File [added]: interface.ccl
Delta lines: +52 -0
===================================================================
--- CartesianCoordinates/interface.ccl	                        (rev 0)
+++ CartesianCoordinates/interface.ccl	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,52 @@
+# Interface definition for thorn CartesianCoordinates
+
+implements: Coordinates
+inherits: Grid
+
+CCTK_INT FUNCTION                         \
+    MultiPatch_GetMap                     \
+        (CCTK_POINTER_TO_CONST IN cctkGH) 
+PROVIDES FUNCTION MultiPatch_GetMap       \
+    WITH CartesianCoordinates_GetMap      \
+    LANGUAGE C
+
+public:
+
+int general_coordinates type=SCALAR tags='checkpoint="no"' \
+  "Compute derivatives for generalised coordinates, involving a non-trivial Jacobian"
+
+int interpolate_boundary_points type=SCALAR tags='checkpoint="no"' \
+  "Interpolate to points which are on both an inter-patch boundary and an outer boundary"
+
+int jacobian_state type=SCALAR tags='checkpoint="no"' \
+  "State of storage for jacobian"
+
+int jacobian_derivative_state type=SCALAR tags='checkpoint="no"' \
+  "State of storage for derivative of jacobian"
+
+int inverse_jacobian_state type=SCALAR tags='checkpoint="no"' \
+  "State of storage for inverse jacobian"
+
+int volume_form_state type=SCALAR tags='checkpoint="no"' \
+  "State of storage for volume form"
+
+
+real jacobian type=GF timelevels=1 tags='checkpoint="no" prolongation="none"'
+{
+  J11, J12, J13, J21, J22, J23, J31, J32, J33
+} "Jacobian d[global]/d[local] of the coordinate transformation"
+
+real inverse_jacobian type=GF timelevels=1 tags='checkpoint="no" prolongation="none"'
+{
+  iJ11, iJ12, iJ13, iJ21, iJ22, iJ23, iJ31, iJ32, iJ33
+} "Jacobian J_(ik) = dx^i/da^k of the inverse coordinate transformation (a: local, x: global)"
+
+real jacobian2 type=GF timelevels=1 tags='checkpoint="no" prolongation="none"'
+{
+  dJ111, dJ112, dJ113, dJ122, dJ123, dJ133,
+  dJ211, dJ212, dJ213, dJ222, dJ223, dJ233,
+  dJ311, dJ312, dJ313, dJ322, dJ323, dJ333,
+} "Derivative of the Jacobian  d^2[global]/d[local]^2"
+	
+
+real volume_form type=GF timelevels=1 tags='checkpoint="no" prolongation="none"' "Determinant of Jacobian and nominal grid mask"

File [added]: param.ccl
Delta lines: +29 -0
===================================================================
--- CartesianCoordinates/param.ccl	                        (rev 0)
+++ CartesianCoordinates/param.ccl	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,29 @@
+# Parameter definitions for thorn CartesianCoordinates
+
+restricted:
+
+keyword coordinate_system "Available patch systems"
+{
+  "Cartesian" :: "Standard CartGrid3D cartesian coordinates"
+} "Cartesian"
+
+private:
+
+# Choices about storage
+
+boolean store_jacobian "Store the transformation da^i/dx^k  (a: local, x: global), for compatibility with Llama/Coordinates"
+{
+} "no"
+
+boolean store_jacobian_derivative "Store the derivative of the Jacobian d^2[global]/d[local]^2, for compatibility with Llama/Coordinates"
+{
+} "no"
+
+boolean store_inverse_jacobian "Store the transformation dx^i/da^k  (a: local, x: global), for compatibility with Llama/Coordinates"
+{
+} "no"
+
+boolean store_volume_form "Store determinant of Jacobian, for compatibility with Llama/Coordinates"
+{
+} "no"
+

File [added]: schedule.ccl
Delta lines: +44 -0
===================================================================
--- CartesianCoordinates/schedule.ccl	                        (rev 0)
+++ CartesianCoordinates/schedule.ccl	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,44 @@
+# Schedule definitions for thorn CartesianCoordinates
+
+STORAGE: general_coordinates
+STORAGE: jacobian_state
+STORAGE: jacobian_derivative_state
+STORAGE: inverse_jacobian_state
+STORAGE: volume_form_state
+
+if (store_jacobian)
+{
+  STORAGE: jacobian
+}
+
+if (store_jacobian_derivative)
+{
+  STORAGE: jacobian2
+}
+
+if (store_inverse_jacobian)
+{
+  STORAGE: inverse_jacobian
+}
+
+if (store_volume_form)
+{
+   STORAGE: volume_form
+}
+
+SCHEDULE GROUP Coordinates_SetGlobalCoords_Group AT BASEGRID
+{
+} "Determine the global coordinates at each grid point."
+
+schedule group Coordinates_SetGlobalCoords_Group at CCTK_POSTREGRIDINITIAL
+{
+} "Determine the global coordinates of each gridpoint."
+
+schedule group Coordinates_SetGlobalCoords_Group at CCTK_POSTREGRID
+{
+} "Determine the global coordinates of each gridpoint."
+
+SCHEDULE CartesianCoordinates_Init in Coordinates_SetGlobalCoords_Group
+{
+  LANG: C
+} "Make clear that we have a trivial coordinate system"

Directory: /CartesianCoordinates/doc/
=====================================

File [added]: documentation.tex
Delta lines: +144 -0
===================================================================
--- CartesianCoordinates/doc/documentation.tex	                        (rev 0)
+++ CartesianCoordinates/doc/documentation.tex	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,144 @@
+% *======================================================================*
+%  Cactus Thorn template for ThornGuide documentation
+%  Author: Ian Kelley
+%  Date: Sun Jun 02, 2002
+%  $Header: /cactusdevcvs/Cactus/doc/ThornGuide/template.tex,v 1.12 2004/01/07 20:12:39 rideout Exp $
+%
+%  Thorn documentation in the latex file doc/documentation.tex
+%  will be included in ThornGuides built with the Cactus make system.
+%  The scripts employed by the make system automatically include
+%  pages about variables, parameters and scheduling parsed from the
+%  relevant thorn CCL files.
+%
+%  This template contains guidelines which help to assure that your
+%  documentation will be correctly added to ThornGuides. More
+%  information is available in the Cactus UsersGuide.
+%
+%  Guidelines:
+%   - Do not change anything before the line
+%       % START CACTUS THORNGUIDE",
+%     except for filling in the title, author, date, etc. fields.
+%        - Each of these fields should only be on ONE line.
+%        - Author names should be separated with a \\ or a comma.
+%   - You can define your own macros, but they must appear after
+%     the START CACTUS THORNGUIDE line, and must not redefine standard
+%     latex commands.
+%   - To avoid name clashes with other thorns, 'labels', 'citations',
+%     'references', and 'image' names should conform to the following
+%     convention:
+%       ARRANGEMENT_THORN_LABEL
+%     For example, an image wave.eps in the arrangement CactusWave and
+%     thorn WaveToyC should be renamed to CactusWave_WaveToyC_wave.eps
+%   - Graphics should only be included using the graphicx package.
+%     More specifically, with the "\includegraphics" command.  Do
+%     not specify any graphic file extensions in your .tex file. This
+%     will allow us to create a PDF version of the ThornGuide
+%     via pdflatex.
+%   - References should be included with the latex "\bibitem" command.
+%   - Use \begin{abstract}...\end{abstract} instead of \abstract{...}
+%   - Do not use \appendix, instead include any appendices you need as
+%     standard sections.
+%   - For the benefit of our Perl scripts, and for future extensions,
+%     please use simple latex.
+%
+% *======================================================================*
+%
+% Example of including a graphic image:
+%    \begin{figure}[ht]
+% 	\begin{center}
+%    	   \includegraphics[width=6cm]{MyArrangement_MyThorn_MyFigure}
+% 	\end{center}
+% 	\caption{Illustration of this and that}
+% 	\label{MyArrangement_MyThorn_MyLabel}
+%    \end{figure}
+%
+% Example of using a label:
+%   \label{MyArrangement_MyThorn_MyLabel}
+%
+% Example of a citation:
+%    \cite{MyArrangement_MyThorn_Author99}
+%
+% Example of including a reference
+%   \bibitem{MyArrangement_MyThorn_Author99}
+%   {J. Author, {\em The Title of the Book, Journal, or periodical}, 1 (1999),
+%   1--16. {\tt http://www.nowhere.com/}}
+%
+% *======================================================================*
+
+% If you are using CVS use this line to give version information
+% $Header: /cactusdevcvs/Cactus/doc/ThornGuide/template.tex,v 1.12 2004/01/07 20:12:39 rideout Exp $
+
+\documentclass{article}
+
+% Use the Cactus ThornGuide style file
+% (Automatically used from Cactus distribution, if you have a
+%  thorn without the Cactus Flesh download this from the Cactus
+%  homepage at www.cactuscode.org)
+\usepackage{../../../../doc/latex/cactus}
+
+\begin{document}
+
+% The author of the documentation
+\author{Christian Reisswig \textless reisswig at aei.mpg.de\textgreater}
+
+% The title of the document (not necessarily the name of the Thorn)
+\title{CartesianCoordinates}
+
+% the date your document was last changed, if your document is in CVS,
+% please use:
+%    \date{$ $Date: 2004/01/07 20:12:39 $ $}
+\date{February 29 2008}
+
+\maketitle
+
+% Do not delete next line
+% START CACTUS THORNGUIDE
+
+% Add all definitions used in this documentation here
+%   \def\mydef etc
+
+% Add an abstract for this thorn's documentation
+\begin{abstract}
+
+\end{abstract}
+
+% The following sections are suggestive only.
+% Remove them or add your own.
+
+\section{Introduction}
+
+\section{Physical System}
+
+\section{Numerical Implementation}
+
+\section{Using This Thorn}
+
+\subsection{Obtaining This Thorn}
+
+\subsection{Basic Usage}
+
+\subsection{Special Behaviour}
+
+\subsection{Interaction With Other Thorns}
+
+\subsection{Examples}
+
+\subsection{Support and Feedback}
+
+\section{History}
+
+\subsection{Thorn Source Code}
+
+\subsection{Thorn Documentation}
+
+\subsection{Acknowledgements}
+
+
+\begin{thebibliography}{9}
+
+\end{thebibliography}
+
+% Do not delete next line
+% END CACTUS THORNGUIDE
+
+\end{document}



Property changes on: CartesianCoordinates/doc/documentation.tex
___________________________________________________________________

Directory: /CartesianCoordinates/src/
=====================================

File [added]: init.c
Delta lines: +113 -0
===================================================================
--- CartesianCoordinates/src/init.c	                        (rev 0)
+++ CartesianCoordinates/src/init.c	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,113 @@
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+
+void CartesianCoordinates_Init(CCTK_ARGUMENTS)
+{
+   DECLARE_CCTK_ARGUMENTS;
+   DECLARE_CCTK_PARAMETERS;
+   
+   *general_coordinates = 0;
+   
+   
+   if (store_jacobian)
+   {
+      *jacobian_state = 1;
+     
+      for (int k=0; k < cctk_lsh[2]; ++k) {
+	for (int j=0; j < cctk_lsh[1]; ++j) {
+	  for (int i=0; i < cctk_lsh[0]; ++i)
+	  {
+	    const int ijk = CCTK_GFINDEX3D(cctkGH, i,j,k);
+	    J11[ijk] = 1.0;
+	    J12[ijk] = 0.0;
+	    J13[ijk] = 0.0;
+
+	    J21[ijk] = 0.0;
+	    J22[ijk] = 1.0;
+	    J23[ijk] = 0.0;
+
+	    J31[ijk] = 0.0;
+	    J32[ijk] = 0.0;
+	    J33[ijk] = 1.0;
+	    
+	  }
+        }
+      }
+   }
+   else
+   {
+      *jacobian_state = 0;
+   }
+   
+   if (store_jacobian_derivative)
+   {
+      *jacobian_derivative_state = 1;
+     
+      for (int k=0; k < cctk_lsh[2]; ++k) {
+	for (int j=0; j < cctk_lsh[1]; ++j) {
+	  for (int i=0; i < cctk_lsh[0]; ++i)
+	  {
+	    const int ijk = CCTK_GFINDEX3D(cctkGH, i,j,k);
+	    
+	    dJ111[ijk] = 0.0; dJ112[ijk] = 0.0; dJ113[ijk] = 0.0; dJ122[ijk] = 0.0; dJ123[ijk] = 0.0; dJ133[ijk] = 0.0;
+            dJ211[ijk] = 0.0; dJ212[ijk] = 0.0; dJ213[ijk] = 0.0; dJ222[ijk] = 0.0; dJ223[ijk] = 0.0; dJ233[ijk] = 0.0;
+            dJ311[ijk] = 0.0; dJ312[ijk] = 0.0; dJ313[ijk] = 0.0; dJ322[ijk] = 0.0; dJ323[ijk] = 0.0; dJ333[ijk] = 0.0;
+	  }
+        }
+      }
+   }
+   
+   if (store_inverse_jacobian)
+   {
+      *inverse_jacobian_state = 1;
+     
+      for (int k=0; k < cctk_lsh[2]; ++k) {
+	for (int j=0; j < cctk_lsh[1]; ++j) {
+	  for (int i=0; i < cctk_lsh[0]; ++i)
+	  {
+	    const int ijk = CCTK_GFINDEX3D(cctkGH, i,j,k);
+	    iJ11[ijk] = 1.0;
+	    iJ12[ijk] = 0.0;
+	    iJ13[ijk] = 0.0;
+
+	    iJ21[ijk] = 0.0;
+	    iJ22[ijk] = 1.0;
+	    iJ23[ijk] = 0.0;
+
+	    iJ31[ijk] = 0.0;
+	    iJ32[ijk] = 0.0;
+	    iJ33[ijk] = 1.0;
+	    
+	  }
+        }
+      }
+   }
+   else
+   {
+      *inverse_jacobian_state = 0;
+   }
+   
+   if (store_volume_form)
+   {
+      *volume_form_state = 1;
+     
+      for (int k=0; k < cctk_lsh[2]; ++k) {
+	for (int j=0; j < cctk_lsh[1]; ++j) {
+	  for (int i=0; i < cctk_lsh[0]; ++i)
+	  {
+	    const int ijk = CCTK_GFINDEX3D(cctkGH, i,j,k);
+	    // this is the product of the _coarse_ grid spacing: during redcution, Carpet will automatically rescale
+	    // the fine grids!
+	    volume_form[ijk] = cctk_delta_space[0]*cctk_delta_space[1]*cctk_delta_space[2];
+	  }
+        }
+      }
+   }
+   else
+   {
+      *volume_form_state = 0;
+   }
+}
+
+



Property changes on: CartesianCoordinates/src/init.c
___________________________________________________________________

File [added]: make.code.defn
Delta lines: +7 -0
===================================================================
--- CartesianCoordinates/src/make.code.defn	                        (rev 0)
+++ CartesianCoordinates/src/make.code.defn	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,7 @@
+# Main make.code.defn file for thorn CartesianCoordinates
+
+# Source files in this directory
+SRCS = init.c util.c
+
+# Subdirectories containing source files
+SUBDIRS = 

File [added]: util.c
Delta lines: +22 -0
===================================================================
--- CartesianCoordinates/src/util.c	                        (rev 0)
+++ CartesianCoordinates/src/util.c	2013-05-11 04:37:34 UTC (rev 80)
@@ -0,0 +1,22 @@
+#include "cctk.h"
+
+CCTK_INT
+CartesianCoordinates_GetBbox(CCTK_POINTER_TO_CONST const GH,
+                             CCTK_INT const size,
+                             CCTK_INT * const bbox)
+{
+  const cGH* const cctkGH = (const cGH* const) GH;  
+
+  for (int i=0; i<6; ++i)
+    bbox[i] = cctkGH->cctk_bbox[i];
+
+  return 0;
+}
+
+
+CCTK_INT
+CartesianCoordinates_GetMap(CCTK_POINTER_TO_CONST const GH)
+{
+  const cGH* const cctkGH = (const cGH* const) GH;  
+  return 0;
+}



Property changes on: CartesianCoordinates/src/util.c
___________________________________________________________________



More information about the Commits mailing list