From 95ce90a0da71248228a5c27584b7910f9bc47a65 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 4 Nov 2010 10:57:26 -0400 Subject: CarpetProlongateTest: New thorn to test prolongation operators --- CarpetExtra/CarpetProlongateTest/README | 13 ++ .../CarpetProlongateTest/doc/documentation.tex | 144 +++++++++++++++++++++ CarpetExtra/CarpetProlongateTest/interface.ccl | 17 +++ CarpetExtra/CarpetProlongateTest/param.ccl | 16 +++ CarpetExtra/CarpetProlongateTest/schedule.ccl | 14 ++ CarpetExtra/CarpetProlongateTest/src/init.F90 | 19 +++ .../CarpetProlongateTest/src/make.code.defn | 7 + CarpetExtra/CarpetProlongateTest/test/test_o3.par | 96 ++++++++++++++ CarpetExtra/CarpetProlongateTest/test/test_o5.par | 96 ++++++++++++++ CarpetExtra/CarpetProlongateTest/test/test_o7.par | 96 ++++++++++++++ CarpetExtra/CarpetProlongateTest/test/test_o9.par | 96 ++++++++++++++ 11 files changed, 614 insertions(+) create mode 100644 CarpetExtra/CarpetProlongateTest/README create mode 100644 CarpetExtra/CarpetProlongateTest/doc/documentation.tex create mode 100644 CarpetExtra/CarpetProlongateTest/interface.ccl create mode 100644 CarpetExtra/CarpetProlongateTest/param.ccl create mode 100644 CarpetExtra/CarpetProlongateTest/schedule.ccl create mode 100644 CarpetExtra/CarpetProlongateTest/src/init.F90 create mode 100644 CarpetExtra/CarpetProlongateTest/src/make.code.defn create mode 100644 CarpetExtra/CarpetProlongateTest/test/test_o3.par create mode 100644 CarpetExtra/CarpetProlongateTest/test/test_o5.par create mode 100644 CarpetExtra/CarpetProlongateTest/test/test_o7.par create mode 100644 CarpetExtra/CarpetProlongateTest/test/test_o9.par (limited to 'CarpetExtra') diff --git a/CarpetExtra/CarpetProlongateTest/README b/CarpetExtra/CarpetProlongateTest/README new file mode 100644 index 000000000..8e722e428 --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/README @@ -0,0 +1,13 @@ +Cactus Code Thorn CarpetProlongateTest +Author(s) : Erik Schnetter +Maintainer(s): Erik Schnetter +Licence : GPL +-------------------------------------------------------------------------- + +1. Purpose + +Test prolongation in Carpet. + +The basic idea is to set up a grid function containing a polynomial of +a certain order of the coordinates. Prolongatin (interpolation) with +sufficiently high order must preserve these polynomials exactly. diff --git a/CarpetExtra/CarpetProlongateTest/doc/documentation.tex b/CarpetExtra/CarpetProlongateTest/doc/documentation.tex new file mode 100644 index 000000000..70f3eb870 --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/doc/documentation.tex @@ -0,0 +1,144 @@ +% *======================================================================* +% Cactus Thorn template for ThornGuide documentation +% Author: Ian Kelley +% Date: Sun Jun 02, 2002 +% $Header$ +% +% 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$ + +\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{Erik Schnetter \textless schnetter@cct.lsu.edu\textgreater} + +% The title of the document (not necessarily the name of the Thorn) +\title{CarpetProlongateTest} + +% the date your document was last changed, if your document is in CVS, +% please use: +% \date{$ $Date: 2004-01-07 14:12:39 -0600 (Wed, 07 Jan 2004) $ $} +\date{July 10 2010} + +\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} diff --git a/CarpetExtra/CarpetProlongateTest/interface.ccl b/CarpetExtra/CarpetProlongateTest/interface.ccl new file mode 100644 index 000000000..c709a48b3 --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/interface.ccl @@ -0,0 +1,17 @@ +# Interface definition for thorn CarpetProlongateTest + +IMPLEMENTS: CarpetProlongateTest + +INHERITS: grid + + + +CCTK_REAL scalar TYPE=gf TIMELEVELS=3 +{ + u +} "Grid function" + +CCTK_REAL difference TYPE=gf TIMELEVELS=3 +{ + du +} "Error in grid function" diff --git a/CarpetExtra/CarpetProlongateTest/param.ccl b/CarpetExtra/CarpetProlongateTest/param.ccl new file mode 100644 index 000000000..e2c1c801d --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/param.ccl @@ -0,0 +1,16 @@ +# Parameter definitions for thorn CarpetProlongateTest + +CCTK_INT power_x "Polynomial power of x coordinate" +{ + *:* :: "" +} 0 + +CCTK_INT power_y "Polynomial power of y coordinate" +{ + *:* :: "" +} 0 + +CCTK_INT power_z "Polynomial power of z coordinate" +{ + *:* :: "" +} 0 diff --git a/CarpetExtra/CarpetProlongateTest/schedule.ccl b/CarpetExtra/CarpetProlongateTest/schedule.ccl new file mode 100644 index 000000000..46ffb08a0 --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/schedule.ccl @@ -0,0 +1,14 @@ +# Schedule definitions for thorn CarpetProlongateTest + +STORAGE: scalar[3] difference[3] + +SCHEDULE CarpetProlongateTest_Init AT initial +{ + LANG: Fortran + SYNC: scalar +} "Set up initial data" + +SCHEDULE CarpetProlongateTest_Diff IN MoL_PostStep +{ + LANG: Fortran +} "Test data" diff --git a/CarpetExtra/CarpetProlongateTest/src/init.F90 b/CarpetExtra/CarpetProlongateTest/src/init.F90 new file mode 100644 index 000000000..f57353572 --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/src/init.F90 @@ -0,0 +1,19 @@ +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" + +subroutine CarpetProlongateTest_Init (CCTK_ARGUMENTS) + implicit none + DECLARE_CCTK_ARGUMENTS + DECLARE_CCTK_PARAMETERS + + u = x**power_x + y**power_y + z**power_z +end subroutine CarpetProlongateTest_Init + +subroutine CarpetProlongateTest_Diff (CCTK_ARGUMENTS) + implicit none + DECLARE_CCTK_ARGUMENTS + DECLARE_CCTK_PARAMETERS + + du = u - (x**power_x + y**power_y + z**power_z) +end subroutine CarpetProlongateTest_Diff diff --git a/CarpetExtra/CarpetProlongateTest/src/make.code.defn b/CarpetExtra/CarpetProlongateTest/src/make.code.defn new file mode 100644 index 000000000..029039c78 --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/src/make.code.defn @@ -0,0 +1,7 @@ +# Main make.code.defn file for thorn CarpetProlongateTest + +# Source files in this directory +SRCS = init.F90 + +# Subdirectories containing source files +SUBDIRS = diff --git a/CarpetExtra/CarpetProlongateTest/test/test_o3.par b/CarpetExtra/CarpetProlongateTest/test/test_o3.par new file mode 100644 index 000000000..581a4e85a --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/test/test_o3.par @@ -0,0 +1,96 @@ +Cactus::cctk_itlast = 0 + + + +ActiveThorns = "IOUtil" + +IO::out_dir = $parfile + + + +ActiveThorns = "InitBase" + +ActiveThorns = "LoopControl" + + + +ActiveThorns = "Carpet CarpetLib CarpetReduce" + +Carpet::domain_from_coordbase = yes +Carpet::max_refinement_levels = 10 + +driver::ghost_size = 2 +Carpet::use_buffer_zones = yes + +Carpet::prolongation_order_space = 3 +Carpet::prolongation_order_time = 2 + +Carpet::init_fill_timelevels = yes + +Carpet::poison_new_timelevels = yes +CarpetLib::poison_new_memory = yes + + + +ActiveThorns = "Boundary CartGrid3D CoordBase SymBase" + +CoordBase::domainsize = "minmax" + +CoordBase::xmin = -1.0 +CoordBase::ymin = -1.0 +CoordBase::zmin = -1.0 +CoordBase::xmax = +1.0 +CoordBase::ymax = +1.0 +CoordBase::zmax = +1.0 +CoordBase::dx = 0.02 +CoordBase::dy = 0.02 +CoordBase::dz = 0.02 + +CoordBase::boundary_size_x_lower = 2 +CoordBase::boundary_size_y_lower = 2 +CoordBase::boundary_size_z_lower = 2 +CoordBase::boundary_size_x_upper = 2 +CoordBase::boundary_size_y_upper = 2 +CoordBase::boundary_size_z_upper = 2 + +CartGrid3D::type = "coordbase" + + + +ActiveThorns = "SphericalSurface" + + + +ActiveThorns = "CarpetRegrid2 CarpetTracker" + +CarpetRegrid2::regrid_every = 0 +CarpetRegrid2::verbose = yes + +CarpetRegrid2::num_centres = 1 + +CarpetRegrid2::num_levels_1 = 2 +CarpetRegrid2::radius_1[1] = 0.2 + + + +ActiveThorns = "MoL" + + + +ActiveThorns = "CarpetProlongateTest" + +CarpetProlongateTest::power_x = 3 +CarpetProlongateTest::power_y = 3 +CarpetProlongateTest::power_z = 3 + + + +ActiveThorns = "CarpetIOASCII" + +IOASCII::one_file_per_group = yes + +IOASCII::out1D_every = 1 +IOASCII::out1D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" + +IOASCII::out3D_every = 1 +IOASCII::out3D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" diff --git a/CarpetExtra/CarpetProlongateTest/test/test_o5.par b/CarpetExtra/CarpetProlongateTest/test/test_o5.par new file mode 100644 index 000000000..2217452e1 --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/test/test_o5.par @@ -0,0 +1,96 @@ +Cactus::cctk_itlast = 0 + + + +ActiveThorns = "IOUtil" + +IO::out_dir = $parfile + + + +ActiveThorns = "InitBase" + +ActiveThorns = "LoopControl" + + + +ActiveThorns = "Carpet CarpetLib CarpetReduce" + +Carpet::domain_from_coordbase = yes +Carpet::max_refinement_levels = 10 + +driver::ghost_size = 3 +Carpet::use_buffer_zones = yes + +Carpet::prolongation_order_space = 5 +Carpet::prolongation_order_time = 2 + +Carpet::init_fill_timelevels = yes + +Carpet::poison_new_timelevels = yes +CarpetLib::poison_new_memory = yes + + + +ActiveThorns = "Boundary CartGrid3D CoordBase SymBase" + +CoordBase::domainsize = "minmax" + +CoordBase::xmin = -1.0 +CoordBase::ymin = -1.0 +CoordBase::zmin = -1.0 +CoordBase::xmax = +1.0 +CoordBase::ymax = +1.0 +CoordBase::zmax = +1.0 +CoordBase::dx = 0.02 +CoordBase::dy = 0.02 +CoordBase::dz = 0.02 + +CoordBase::boundary_size_x_lower = 3 +CoordBase::boundary_size_y_lower = 3 +CoordBase::boundary_size_z_lower = 3 +CoordBase::boundary_size_x_upper = 3 +CoordBase::boundary_size_y_upper = 3 +CoordBase::boundary_size_z_upper = 3 + +CartGrid3D::type = "coordbase" + + + +ActiveThorns = "SphericalSurface" + + + +ActiveThorns = "CarpetRegrid2 CarpetTracker" + +CarpetRegrid2::regrid_every = 0 +CarpetRegrid2::verbose = yes + +CarpetRegrid2::num_centres = 1 + +CarpetRegrid2::num_levels_1 = 2 +CarpetRegrid2::radius_1[1] = 0.2 + + + +ActiveThorns = "MoL" + + + +ActiveThorns = "CarpetProlongateTest" + +CarpetProlongateTest::power_x = 5 +CarpetProlongateTest::power_y = 5 +CarpetProlongateTest::power_z = 5 + + + +ActiveThorns = "CarpetIOASCII" + +IOASCII::one_file_per_group = yes + +IOASCII::out1D_every = 1 +IOASCII::out1D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" + +IOASCII::out3D_every = 1 +IOASCII::out3D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" diff --git a/CarpetExtra/CarpetProlongateTest/test/test_o7.par b/CarpetExtra/CarpetProlongateTest/test/test_o7.par new file mode 100644 index 000000000..8962aeb9c --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/test/test_o7.par @@ -0,0 +1,96 @@ +Cactus::cctk_itlast = 0 + + + +ActiveThorns = "IOUtil" + +IO::out_dir = $parfile + + + +ActiveThorns = "InitBase" + +ActiveThorns = "LoopControl" + + + +ActiveThorns = "Carpet CarpetLib CarpetReduce" + +Carpet::domain_from_coordbase = yes +Carpet::max_refinement_levels = 10 + +driver::ghost_size = 4 +Carpet::use_buffer_zones = yes + +Carpet::prolongation_order_space = 7 +Carpet::prolongation_order_time = 2 + +Carpet::init_fill_timelevels = yes + +Carpet::poison_new_timelevels = yes +CarpetLib::poison_new_memory = yes + + + +ActiveThorns = "Boundary CartGrid3D CoordBase SymBase" + +CoordBase::domainsize = "minmax" + +CoordBase::xmin = -1.0 +CoordBase::ymin = -1.0 +CoordBase::zmin = -1.0 +CoordBase::xmax = +1.0 +CoordBase::ymax = +1.0 +CoordBase::zmax = +1.0 +CoordBase::dx = 0.02 +CoordBase::dy = 0.02 +CoordBase::dz = 0.02 + +CoordBase::boundary_size_x_lower = 4 +CoordBase::boundary_size_y_lower = 4 +CoordBase::boundary_size_z_lower = 4 +CoordBase::boundary_size_x_upper = 4 +CoordBase::boundary_size_y_upper = 4 +CoordBase::boundary_size_z_upper = 4 + +CartGrid3D::type = "coordbase" + + + +ActiveThorns = "SphericalSurface" + + + +ActiveThorns = "CarpetRegrid2 CarpetTracker" + +CarpetRegrid2::regrid_every = 0 +CarpetRegrid2::verbose = yes + +CarpetRegrid2::num_centres = 1 + +CarpetRegrid2::num_levels_1 = 2 +CarpetRegrid2::radius_1[1] = 0.2 + + + +ActiveThorns = "MoL" + + + +ActiveThorns = "CarpetProlongateTest" + +CarpetProlongateTest::power_x = 7 +CarpetProlongateTest::power_y = 7 +CarpetProlongateTest::power_z = 7 + + + +ActiveThorns = "CarpetIOASCII" + +IOASCII::one_file_per_group = yes + +IOASCII::out1D_every = 1 +IOASCII::out1D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" + +IOASCII::out3D_every = 1 +IOASCII::out3D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" diff --git a/CarpetExtra/CarpetProlongateTest/test/test_o9.par b/CarpetExtra/CarpetProlongateTest/test/test_o9.par new file mode 100644 index 000000000..e3f32acea --- /dev/null +++ b/CarpetExtra/CarpetProlongateTest/test/test_o9.par @@ -0,0 +1,96 @@ +Cactus::cctk_itlast = 0 + + + +ActiveThorns = "IOUtil" + +IO::out_dir = $parfile + + + +ActiveThorns = "InitBase" + +ActiveThorns = "LoopControl" + + + +ActiveThorns = "Carpet CarpetLib CarpetReduce" + +Carpet::domain_from_coordbase = yes +Carpet::max_refinement_levels = 10 + +driver::ghost_size = 5 +Carpet::use_buffer_zones = yes + +Carpet::prolongation_order_space = 9 +Carpet::prolongation_order_time = 2 + +Carpet::init_fill_timelevels = yes + +Carpet::poison_new_timelevels = yes +CarpetLib::poison_new_memory = yes + + + +ActiveThorns = "Boundary CartGrid3D CoordBase SymBase" + +CoordBase::domainsize = "minmax" + +CoordBase::xmin = -1.0 +CoordBase::ymin = -1.0 +CoordBase::zmin = -1.0 +CoordBase::xmax = +1.0 +CoordBase::ymax = +1.0 +CoordBase::zmax = +1.0 +CoordBase::dx = 0.02 +CoordBase::dy = 0.02 +CoordBase::dz = 0.02 + +CoordBase::boundary_size_x_lower = 5 +CoordBase::boundary_size_y_lower = 5 +CoordBase::boundary_size_z_lower = 5 +CoordBase::boundary_size_x_upper = 5 +CoordBase::boundary_size_y_upper = 5 +CoordBase::boundary_size_z_upper = 5 + +CartGrid3D::type = "coordbase" + + + +ActiveThorns = "SphericalSurface" + + + +ActiveThorns = "CarpetRegrid2 CarpetTracker" + +CarpetRegrid2::regrid_every = 0 +CarpetRegrid2::verbose = yes + +CarpetRegrid2::num_centres = 1 + +CarpetRegrid2::num_levels_1 = 2 +CarpetRegrid2::radius_1[1] = 0.2 + + + +ActiveThorns = "MoL" + + + +ActiveThorns = "CarpetProlongateTest" + +CarpetProlongateTest::power_x = 9 +CarpetProlongateTest::power_y = 9 +CarpetProlongateTest::power_z = 9 + + + +ActiveThorns = "CarpetIOASCII" + +IOASCII::one_file_per_group = yes + +IOASCII::out1D_every = 1 +IOASCII::out1D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" + +IOASCII::out3D_every = 1 +IOASCII::out3D_vars = "CarpetProlongateTest::scalar CarpetProlongateTest::difference" -- cgit v1.2.3