GKKJ75HX2ERLVBZVE2CUB6T3J2SUT7R3UKEKTEYNOG43ZKX6X5MQC 4YEITIZWMO2BGSPSNR2XMDAZPPSRHTLHBNZ7KUN7KE37LOSUUW2AC JUGWBCFMHWBYSJZSPDF7S3KTXCNT5PRBAHTBTMVSGSPFBNIOP37AC 3WWWPWVBCW32VGLULWLPZTTBGVTPQVJJT25ZE2VRZZMQB5YD4KWQC IUOMKBDRBJNMDE7ZO2XXIGWD7GLQVAJI4I37K5IONSQVNV4HTF2QC 6RX5CW4XFL4SJVSVJIM4EWT5RQJS6FWAWLXU7PRT5ZDFYK4QRGZQC BJDGFYBMECTJG7BHLNHLSCUCBVYHAY6OGY37FIJP6JDGNDXQNQVAC CWJH5G6QYZQWEZNSL6PGAMA6XAZHMXLNQCMKQ4HLUDVYKEERN2WAC M5R6KQLXLGYSVKHVAX5AJKD6NYE6IM5Z6WVTR3BTKPJDNNKF3ARAC USTERO3AEVALHM74N4357AK3M3XMPYX524E3BHG4NCRMKL3L3DSAC NKZ62JLSJQ7WH6ERIPBWSU63CAP4H3GHYCUL6JKQELBY7V33HGOAC JYHNXXG3OJTYBJ2U3WMKUS6N5WHXO773WXVRNSJLBC5FGEYLJP2AC BEVN3UJ3EJJNK52M2VAT33FV5RWW6IPNGDLPA6TNKLGJ5OCKJ76AC 722HZ7UFINNE3YKSYKP2NHZ5XEG5QQLQHSKC7PREJZR3EX6RDYUAC 4UAVM7QNVW2KOPZCOWOCKMBIPDNDDIUOLNO5EFIWWHKKJ53ALSDAC FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC 7Y37CMWGUQY3IOMFZW46UINY2W5DIEE3TXGN7RDKYZO6FHCLHDBQC 33IC3UHCEPZLGS5ACS2JXHGT6CRU5LXU6PM6RDHCERPOIELVRVXQC 5IAXY3XZJTRMMVT2OVIJ6OXQJI6OJPTPCHHA4IVLVMHANCCC5NKAC M6DALF7V7J377IXGE5ABJRJ25PMBDOBGQX5ZXTQZHTGOHQSUSZKAC ULG227G2VMOOSDSKHY36QQQGEABGXZIX2B3JA4YIBS6HCVDVJ7IAC 2DKSL6DKZAIYQUJGDULORCKU5K4Z5Z3W4RIKQYDSLKMCNQNDZFBAC 6JG4USUIDVMK7A4VPF5DA3VMYFALQXDRRUDF7FJQ5FZ3VCGGINIQC UUGQGVC4WEKN64WAP7F5QPS2UHGQB5ZLMFRIYNWKMIEBDO3QRX4AC ORAAQXS3UNKXYDJBCTHNEIDJIZDHWMM5EVCZKVMFRKQK2NIQNJGAC NGD6QWRDHWBMQXL2YXZVF3BFQALSII3LH6BMIOFL7VFMGPLHCZEQC ULVYXPG2IOJ724MTFVKJLQMPMVL5VAJUOFH7BIXPXVJ2SUGOFRFAC GSGI6HIWST43XFEORCMKH6VPEGXHEZG5EK4JUUNWP3XFYUKGNA3AC E3MBKFT4GEFDAGZQQW4OROY5F6FWC46G6MRH54GDYTGO7O5YSRIAC AW3GEKCXENPOTX6J57FBCK3IOKNGROONVUI52AGVDKFB7GASXWMAC YIQN7NJTGEVKW7JZHL6CTH6EPCIXCNBYNURIGXPYZAOUX3VAJQMAC MSBBCXVGD3GRLE5KAI6BKAFRV7SQUWI2SNN43AJAUD3ISRCEXY6QC RTNZAS3UPI6GG3KY4Z5WVXJ4R2YF5427BB6WAV3GHRS5W7XPOSUQC BPRNUTY7MHK7LK4EY5MY5OFFG3ABOL7LWXD574L35M74YSQPULFAC V6A2UBM4TJJ34KDEKXSR2C5NSDL53P6AHPEARIU5RMPAWFS35PTQC TVBD244E7Q7WV44CRBTFST535NUP3JAZH6OLL4IKDR3OWEXSU7HAC PQB3EKQ6MBCXPTW4HB7SGMSTOTYMB3EFZX2573OFCQI6PSOEKCSQC BVR7DVINVPQG7PA6Z7QYVYNQ43YZL7XCC6AOMSMWMGAAB2Q43STAC U77PE56ICORZNQW33NXGSEMW7GDHCSSZ4EXB6OHBJSHEG6WHYSSQC IVHURSHY4636OGIF3PNDO5CWOVRLJ75M4LP65J6I2E6KAM4QKF4AC UZAKARMGORRQG733ZUPJOEGL5FG243I32NCC2SRSFDCZKUQ5A52QC VAF66DTVLDWNG7N2PEQYEH4OH5SPSMFBXKPR2PU67IIM6CVPCJ7AC RCLGQ2LZMFVPBPTU2G55DJ6HZPOGGTPZRZCY54VGP6YLHANJ2LAQC DGEGTDYVGRHEGNFDHCCVTD6AVLRJ2XHDXQPWR5MMR62V5NU2XGIQC DQZRKU4B6C3WWWXFMBBSVKYD5AXDGUMHHPACVWKERGKB5WLHZGYAC 5XGIB7XMEZNBLA5ZLQTXRTC3AZ5CTRGMXWBPVMWXG4DPHKWDF4ZAC TOBGHRPKEPSXDN56WGSZNWOMCBVJ4KUSLWYWI56MC2RR3MM3KLZAC WSU4HII7H3ZB4AKK2I3KF4ENG3M4N5CSVZVDWKG7CRLMC6CTS45QC 7XUTAB76BF7WTONVKH2Y7WLIYHOSAPSCIVRU7Y7SKZWPITWOS2TAC WJFK2JGGVKQN4LVHZNB4SOKH2GAE5BODBU2D6Y4CO76EIHSW6EVAC B2MBQPT3B3N2EVCTHX34PKGIQSLUU622HEEVZNHQFL2PAJFFX3SQC NE2O3IMQBR3OAPLJC22SPJ7AX2ABULA7XNSIZYFHCQLWC45T6GJAC UD2O4RHXGNMJII7BYM75WDELMJFIAEJMMZM72VJMY34FGAB2DT4AC 2V4VNNOWTOFSM22PBTFKP73NMTFDYCHFKWTMD4BJVSXA3DGI33KAC BZIXJKSVJVIFMYLNKQMNCCOEAEF44CJHCBRD6FYYQGFODQYINIRQC VWANG2UUPKW6YVZ5CGFXSTLQYQPINOA24M3BEITIZGIX6H3WNRHQC FIZ4UQEPE2TMH2KR47KKJS2B24LRHZPB7M6MCEI4RUCOBV56JU5QC XIVFKBY3NZR3BGMKVLIW7GYHDAEN27DM75YPVMOOQGK2F5N4A6KQC 3HOGAA6NFEOTDI6JWZK6YXA4VQUTHJYEW4VFGJEVQJE457RZPJXAC IIDW4VXRBD7WM6WBZ7JNZ4GMGCIWF2NMYM2W75SYV5XFLRTV63RAC KCIWCVZOHG44WBOLKI2XK33WPHPRI5FWCETF4AOGTPZISKCW3CLQC KQNKYNRSWOY2K7M5PY362RJT4CRUJVECVSCNGKSJJBPYI3NU4GDQC KG47IF4CPCUT3BHS34WDRHTH5HYMBTY4OSTB3X7APR2E5ZJ32IYQC OJZWEAJRLOA5FZAC6FMGBQ6XFQFDNO55IRWLFWDAYWM54MUIU5LAC HNQLJR6ZWME6VBJ2Y7PSENLJPXC7INSS7NC2CKIWQAC776CQ74TQC PVQ5HIOWTC6JLTGLL5F6HQTMZYNNSMSG7HHH2OFLNZGJXS7B4X4QC 6ZC47LQWQW6Z5NFJYGFMYN4WH3MNB26GHS76VRSW4CVKXVJS7AZQC MZUT4VQLHUNTM6EKXC2RFPBJABQCVUVZZBZQTGIWHSREH2VJG7LAC WKFYNYHZIPPSDL7K35JYHUFT7KPHDBPXCDYAM3LYKI45Y43KEQGAC BAHRTQSATLMCS3GRVHSU6JECLCKPGU5EL5ROV5CJMKUOL7WKKEGAC ActiveThorns = "AMReXIOUtilWaveToyAMReX"$nlevels = 7$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 64 #TODO 0Cactus::terminate = "time"Cactus::cctk_final_time = 50.0# AMReX::verbose = yesAMReX::xmin = -100.0AMReX::ymin = -100.0AMReX::zmin = -100.0AMReX::xmax = +100.0AMReX::ymax = +100.0AMReX::zmax = +100.0AMReX::ncells_x = $ncellsAMReX::ncells_y = $ncellsAMReX::ncells_z = $ncells# AMReX::periodic_x = no# AMReX::periodic_y = no# AMReX::periodic_z = noAMReX::max_num_levels = $nlevelsAMReX::regrid_every = 16AMReX::regrid_error_threshold = 0.1AMReX::dtfac = 0.5WaveToyAMReX::initial_condition = "central potential"WaveToyAMReX::boundary_condition = "initial"WaveToyAMReX::central_point_charge = 1.0WaveToyAMReX::central_point_radius = 1.0IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32Formaline
ActiveThorns = "AMReXIOUtilWaveToyAMReX"$nlevels = 6$ncells = 16Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($nlevels - 1) * 2# AMReX::verbose = yesAMReX::ncells_x = $ncellsAMReX::ncells_y = $ncellsAMReX::ncells_z = $ncellsAMReX::max_num_levels = $nlevelsAMReX::regrid_every = 16AMReX::regrid_error_threshold = 0.01AMReX::dtfac = 0.5WaveToyAMReX::initial_condition = "periodic Gaussian"# WaveToyAMReX::spatial_frequency_x = 0.5# WaveToyAMReX::spatial_frequency_y = 0.0# WaveToyAMReX::spatial_frequency_z = 0.0IO::out_dir = $parfileIO::out_every = 16 #TODO $ncells * 2 ** ($nlevels - 1) / 2Formaline
ActiveThorns = "AMReXIOUtilWaveToyAMReX"$nlevels = 7$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 64 #TODO 0Cactus::terminate = "time"Cactus::cctk_final_time = 50.0# AMReX::verbose = yesAMReX::xmin = -100.0AMReX::ymin = -100.0AMReX::zmin = -100.0AMReX::xmax = +100.0AMReX::ymax = +100.0AMReX::zmax = +100.0AMReX::ncells_x = $ncellsAMReX::ncells_y = $ncellsAMReX::ncells_z = $ncells# AMReX::periodic_x = no# AMReX::periodic_y = no# AMReX::periodic_z = noAMReX::max_num_levels = $nlevelsAMReX::regrid_every = 16AMReX::regrid_error_threshold = 0.1AMReX::dtfac = 0.5WaveToyAMReX::initial_condition = "central potential"WaveToyAMReX::boundary_condition = "initial"WaveToyAMReX::central_point_charge = 1.0WaveToyAMReX::central_point_radius = 1.0WaveToyAMReX::particle_charge = 1.0IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32Formaline
ActiveThorns = "AMReXIOUtilWaveToyAMReX"$nlevels = 5$ncells = 32Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($nlevels - 1) / 2# AMReX::verbose = yesAMReX::ncells_x = $ncellsAMReX::ncells_y = $ncellsAMReX::ncells_z = $ncellsAMReX::max_num_levels = $nlevelsAMReX::regrid_every = 16AMReX::regrid_error_threshold = 0.01AMReX::dtfac = 0.5WaveToyAMReX::initial_condition = "Gaussian"IO::out_dir = $parfileIO::out_every = 2 #TODO $ncells * 2 ** ($nlevels - 1) / 32Formaline
% *======================================================================*% 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@gmail.com\textgreater}% The title of the document (not necessarily the name of the Thorn)\title{WaveToyAMReX}% the date your document was last changed, if your document is in CVS,% please use:% \date{$ $Date$ $}\date{July 10 2019}\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}
ActiveThorns = "AMReXIOUtilWaveToyAMReX"$maxlev = 3$ncells = 128Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($maxlev - 1) * 2AMReX::ncells_x = $ncellsAMReX::ncells_y = 1AMReX::ncells_z = 1AMReX::blocking_factor_x = 1AMReX::blocking_factor_y = 1AMReX::blocking_factor_z = 1AMReX::max_grid_size_x = 1048576AMReX::max_grid_size_y = 1048576AMReX::max_grid_size_z = 1048576AMReX::max_num_levels = $maxlevAMReX::dtfac = 0.5IO::out_dir = "wavetoy-3"IO::out_every = $ncells * 2 ** ($maxlev - 1) / 2
ActiveThorns = "AMReXIOUtilWaveToyAMReX"$maxlev = 2$ncells = 128Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($maxlev - 1) * 2AMReX::ncells_x = $ncellsAMReX::ncells_y = 1AMReX::ncells_z = 1AMReX::blocking_factor_x = 1AMReX::blocking_factor_y = 1AMReX::blocking_factor_z = 1AMReX::max_grid_size_x = 1048576AMReX::max_grid_size_y = 1048576AMReX::max_grid_size_z = 1048576AMReX::max_num_levels = $maxlevAMReX::dtfac = 0.5 / 2IO::out_dir = "wavetoy-2"IO::out_every = $ncells * 2 ** ($maxlev - 1) / 2
ActiveThorns = "AMReXIOUtilWaveToyAMReX"$maxlev = 1$ncells = 128Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($maxlev - 1) * 2AMReX::ncells_x = $ncellsAMReX::ncells_y = 1AMReX::ncells_z = 1AMReX::blocking_factor_x = 1AMReX::blocking_factor_y = 1AMReX::blocking_factor_z = 1AMReX::max_grid_size_x = 1048576AMReX::max_grid_size_y = 1048576AMReX::max_grid_size_z = 1048576AMReX::max_num_levels = $maxlevAMReX::dtfac = 0.5 / 4IO::out_dir = "wavetoy-1"IO::out_every = $ncells * 2 ** ($maxlev - 1) / 2
#include <AMReX.hxx>using namespace AMReX;#include <cctk.h>#include <cctk_Arguments.h>#include <cctk_Parameters.h>#include <atomic>using namespace std;namespace AMReXTest {extern "C" void AMReXTest_CheckLoops(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS;DECLARE_CCTK_PARAMETERS;CCTK_VINFO("Check loop iterators");// Set all grid points to zero: Loop over the interior, then// synchronize{int count = 0;for (MFIter mfi(ghext->mfab); mfi.isValid(); ++mfi) {const Box &fbx = mfi.fabbox();const Box &bx = mfi.validbox();const Dim3 amin = lbound(fbx);const Dim3 amax = ubound(fbx);const Dim3 imin = lbound(bx);const Dim3 imax = ubound(bx);constexpr int di = 1;const int dj = di * (amax.x - amin.x + 1);const int dk = dj * (amax.y - amin.y + 1);const Array4<CCTK_REAL> &vars = ghext->mfab.array(mfi);CCTK_REAL *restrict const check = vars.ptr(0, 0, 0, 0);for (int k = imin.z; k <= imax.z; ++k)for (int j = imin.y; j <= imax.y; ++j)for (int i = imin.x; i <= imax.x; ++i) {const int idx = i * di + j * dj + k * dk;check[idx] = 0;++count;}}ParallelDescriptor::ReduceIntSum(count);assert(count == ghext->ncells * ghext->ncells * ghext->ncells);}ghext->mfab.FillBoundary(ghext->geom.periodicity());// Increase each grid point (both interior and ghost zones) by one// using atomic operations. This will catch cases where we either// omit points or traverse points twice.#pragma omp parallelfor (MFIter mfi(ghext->mfab,MFItInfo().SetDynamic(true).EnableTiling({1024000, 16, 32}));mfi.isValid(); ++mfi) {const Box &fbx = mfi.fabbox();const Box &bx = mfi.growntilebox();const Dim3 amin = lbound(fbx);const Dim3 amax = ubound(fbx);const Dim3 imin = lbound(bx);const Dim3 imax = ubound(bx);constexpr int di = 1;const int dj = di * (amax.x - amin.x + 1);const int dk = dj * (amax.y - amin.y + 1);const Array4<CCTK_REAL> &vars = ghext->mfab.array(mfi);atomic<CCTK_REAL> *restrict const check =(atomic<CCTK_REAL> *)vars.ptr(0, 0, 0, 0);for (int k = imin.z; k <= imax.z; ++k)for (int j = imin.y; j <= imax.y; ++j)#pragma omp simdfor (int i = imin.x; i <= imax.x; ++i) {const int idx = i * di + j * dj + k * dk;// check[idx] += 1.0;CCTK_REAL expected = 0.0;/*bool success = */ check[idx].compare_exchange_strong(expected, 1.0);// assert(success);}}// Check all grid points whether they are set to onefor (MFIter mfi(ghext->mfab); mfi.isValid(); ++mfi) {const Box &fbx = mfi.fabbox();const Box &bx = mfi.fabbox();const Dim3 amin = lbound(fbx);const Dim3 amax = ubound(fbx);const Dim3 imin = lbound(bx);const Dim3 imax = ubound(bx);constexpr int di = 1;const int dj = di * (amax.x - amin.x + 1);const int dk = dj * (amax.y - amin.y + 1);const Array4<CCTK_REAL> &vars = ghext->mfab.array(mfi);CCTK_REAL *restrict const check = vars.ptr(0, 0, 0, 0);for (int k = imin.z; k <= imax.z; ++k)for (int j = imin.y; j <= imax.y; ++j)for (int i = imin.x; i <= imax.x; ++i) {const int idx = i * di + j * dj + k * dk;assert(check[idx] == 1);}}}} // namespace AMReXTest
# Schedule definitions for thorn AMReXTestSCHEDULE AMReXTest_CheckLoops AT basegrid{LANG: C} "Check looping constructs"OPTIONS: level
Cactus Code Thorn AMReXTestAuthor(s) : Erik Schnetter <schnetter@gmail.com>Maintainer(s): Erik Schnetter <schnetter@gmail.com>Licence : LGPL--------------------------------------------------------------------------1. PurposeVarious self-tests of the AMReX driver
ActiveThorns = "AMReXFormalineIOUtilHydroToyAMReXSystemTopologyTimerReport"$nlevels = 3$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 0Cactus::terminate = "time"Cactus::cctk_final_time = 1.0AMReX::verbose = noAMReX::xmin = -1.0AMReX::ymin = -1.0AMReX::zmin = -1.0AMReX::xmax = +1.0AMReX::ymax = +1.0AMReX::zmax = +1.0AMReX::ncells_x = $ncellsAMReX::ncells_y = $ncellsAMReX::ncells_z = $ncellsAMReX::max_num_levels = $nlevelsAMReX::regrid_every = 16AMReX::regrid_error_threshold = 0.01AMReX::do_reflux = yesAMReX::dtfac = 0.25HydroToyAMReX::setup = "spherical shock"IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32# AMReX::out_tsv = yesTimerReport::out_every = $ncells * 2 ** ($nlevels - 1) / 32TimerReport::out_filename = "TimerReport"TimerReport::output_all_timers_together = yesTimerReport::output_all_timers_readable = yesTimerReport::n_top_timers = 50HydroToyAMReX::output_every = 1AMReX::prolongation_type = "conservative"
ActiveThorns = "AMReXIOUtilMaxwellToyAMReX"$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 0Cactus::terminate = "time"Cactus::cctk_final_time = 2.0# AMReX::verbose = yesAMReX::xmin = -1.0AMReX::ymin = -1.0AMReX::zmin = -1.0AMReX::xmax = +1.0AMReX::ymax = +1.0AMReX::zmax = +1.0AMReX::ncells_x = $ncellsAMReX::ncells_y = $ncellsAMReX::ncells_z = $ncellsAMReX::prolongation_type = "ddf"AMReX::max_num_levels = $nlevelsAMReX::regrid_every = 16AMReX::regrid_error_threshold = 0.1AMReX::dtfac = 0.5MaxwellToyAMReX::spatial_frequency_x = 0.5MaxwellToyAMReX::spatial_frequency_y = 0.0MaxwellToyAMReX::spatial_frequency_z = 0.0IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32# AMReX::out_tsv = yes$nlevels = 2Formaline
ActiveThorns = "CarpetXIOUtilWaveToyCarpetX"$maxlev = 1$ncells = 128Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($maxlev - 1) * 2CarpetX::ncells_x = $ncellsCarpetX::ncells_y = 1CarpetX::ncells_z = 1CarpetX::blocking_factor_x = 1CarpetX::blocking_factor_y = 1CarpetX::blocking_factor_z = 1CarpetX::max_grid_size_x = 1048576CarpetX::max_grid_size_y = 1048576CarpetX::max_grid_size_z = 1048576CarpetX::max_num_levels = $maxlevCarpetX::dtfac = 0.5 / 4IO::out_dir = "wavetoy-1"IO::out_every = $ncells * 2 ** ($maxlev - 1) / 2
ActiveThorns = "CarpetXIOUtilWaveToyCarpetX"$maxlev = 2$ncells = 128Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($maxlev - 1) * 2CarpetX::ncells_x = $ncellsCarpetX::ncells_y = 1CarpetX::ncells_z = 1CarpetX::blocking_factor_x = 1CarpetX::blocking_factor_y = 1CarpetX::blocking_factor_z = 1CarpetX::max_grid_size_x = 1048576CarpetX::max_grid_size_y = 1048576CarpetX::max_grid_size_z = 1048576CarpetX::max_num_levels = $maxlevCarpetX::dtfac = 0.5 / 2IO::out_dir = "wavetoy-2"IO::out_every = $ncells * 2 ** ($maxlev - 1) / 2
ActiveThorns = "CarpetXIOUtilWaveToyCarpetX"$maxlev = 3$ncells = 128Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($maxlev - 1) * 2CarpetX::ncells_x = $ncellsCarpetX::ncells_y = 1CarpetX::ncells_z = 1CarpetX::blocking_factor_x = 1CarpetX::blocking_factor_y = 1CarpetX::blocking_factor_z = 1CarpetX::max_grid_size_x = 1048576CarpetX::max_grid_size_y = 1048576CarpetX::max_grid_size_z = 1048576CarpetX::max_num_levels = $maxlevCarpetX::dtfac = 0.5IO::out_dir = "wavetoy-3"IO::out_every = $ncells * 2 ** ($maxlev - 1) / 2
extern "C" void AMReX_GetTileExtent(const void *restrict cctkGH_,CCTK_INT *restrict tile_min,CCTK_INT *restrict tile_max) {
extern "C" void CarpetX_GetTileExtent(const void *restrict cctkGH_,CCTK_INT *restrict tile_min,CCTK_INT *restrict tile_max) {
# Configuration definitions for thorn HydroToyCarpetX
CCTK_REAL conserved TYPE=gf TIMELEVELS=2 TAGS='index={1 1 1} fluxes="HydroToyAMReX::flux_x HydroToyAMReX::flux_y HydroToyAMReX::flux_z"'
CCTK_REAL conserved TYPE=gf TIMELEVELS=2 TAGS='index={1 1 1} fluxes="HydroToyCarpetX::flux_x HydroToyCarpetX::flux_y HydroToyCarpetX::flux_z"'
ActiveThorns = "CarpetXFormalineIOUtilHydroToyCarpetXSystemTopologyTimerReport"$nlevels = 3$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 0Cactus::terminate = "time"Cactus::cctk_final_time = 1.0CarpetX::verbose = noCarpetX::xmin = -1.0CarpetX::ymin = -1.0CarpetX::zmin = -1.0CarpetX::xmax = +1.0CarpetX::ymax = +1.0CarpetX::zmax = +1.0CarpetX::ncells_x = $ncellsCarpetX::ncells_y = $ncellsCarpetX::ncells_z = $ncellsCarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 16CarpetX::regrid_error_threshold = 0.01CarpetX::prolongation_type = "conservative"CarpetX::do_reflux = yesCarpetX::dtfac = 0.25HydroToyCarpetX::setup = "spherical shock"HydroToyCarpetX::output_every = 1IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32# CarpetX::out_tsv = yesTimerReport::out_every = $ncells * 2 ** ($nlevels - 1) / 32TimerReport::out_filename = "TimerReport"TimerReport::output_all_timers_together = yesTimerReport::output_all_timers_readable = yesTimerReport::n_top_timers = 50
extern "C" void HydroToyAMReX_Initialize(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyAMReX_Initialize;
extern "C" void HydroToyCarpetX_Initialize(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyCarpetX_Initialize;
extern "C" void HydroToyAMReX_Pressure(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyAMReX_Pressure;
extern "C" void HydroToyCarpetX_Pressure(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyCarpetX_Pressure;
extern "C" void HydroToyAMReX_EstimateError(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyAMReX_EstimateError;
extern "C" void HydroToyCarpetX_EstimateError(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyCarpetX_EstimateError;
extern "C" void HydroToyAMReX_Output(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyAMReX_Output;
extern "C" void HydroToyCarpetX_Output(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_HydroToyCarpetX_Output;
# Configuration definitions for thorn MaxwellToyCarpetX
ActiveThorns = "CarpetXFormalineIOUtilMaxwellToyCarpetXSystemTopology# TerminationTriggerTimerReport"$nlevels = 5$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 0Cactus::terminate = "time"Cactus::cctk_final_time = 1.0CarpetX::verbose = noCarpetX::poison_undefined_values = noCarpetX::xmin = -1.0CarpetX::ymin = -1.0CarpetX::zmin = -1.0CarpetX::xmax = +1.0CarpetX::ymax = +1.0CarpetX::zmax = +1.0CarpetX::ncells_x = $ncellsCarpetX::ncells_y = $ncellsCarpetX::ncells_z = $ncellsCarpetX::prolongation_type = "ddf"CarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 16CarpetX::regrid_error_threshold = 0.01CarpetX::dtfac = 0.5MaxwellToyCarpetX::evolve_b = yesMaxwellToyCarpetX::initial_condition = "Gaussian wave"MaxwellToyCarpetX::spatial_frequency_x = 0.5MaxwellToyCarpetX::spatial_frequency_y = 0.0MaxwellToyCarpetX::spatial_frequency_z = 0.0MaxwellToyCarpetX::analyse_every = 0IO::out_dir = $parfileIO::out_every = 0TimerReport::out_every = $ncells * 2 ** ($nlevels - 1) / 32TimerReport::out_filename = "TimerReport"TimerReport::output_all_timers_together = yesTimerReport::output_all_timers_readable = yesTimerReport::n_top_timers = 50# TerminationTrigger::termination_from_file = yes# TerminationTrigger::create_termination_file = yes# TerminationTrigger::termination_file = "../TERMINATE"
MaxwellToyAMReX::spatial_frequency_x = 0.5MaxwellToyAMReX::spatial_frequency_y = 0.0MaxwellToyAMReX::spatial_frequency_z = 0.0
MaxwellToyCarpetX::spatial_frequency_x = 0.5MaxwellToyCarpetX::spatial_frequency_y = 0.0MaxwellToyCarpetX::spatial_frequency_z = 0.0
ActiveThorns = "CarpetXFormalineIOUtilMaxwellToyCarpetX"$nlevels = 2$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 0Cactus::terminate = "time"Cactus::cctk_final_time = 2.0# CarpetX::verbose = yesCarpetX::xmin = -1.0CarpetX::ymin = -1.0CarpetX::zmin = -1.0CarpetX::xmax = +1.0CarpetX::ymax = +1.0CarpetX::zmax = +1.0CarpetX::ncells_x = $ncellsCarpetX::ncells_y = $ncellsCarpetX::ncells_z = $ncellsCarpetX::prolongation_type = "ddf"CarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 16CarpetX::regrid_error_threshold = 0.1CarpetX::dtfac = 0.5MaxwellToyCarpetX::spatial_frequency_x = 0.5MaxwellToyCarpetX::spatial_frequency_y = 0.0MaxwellToyCarpetX::spatial_frequency_z = 0.0IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32# CarpetX::out_tsv = yes
extern "C" void MaxwellToyAMReX_Initialize(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_MaxwellToyAMReX_Initialize;
extern "C" void MaxwellToyCarpetX_Initialize(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_MaxwellToyCarpetX_Initialize;
extern "C" void MaxwellToyAMReX_Dependents1(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_MaxwellToyAMReX_Dependents1;
extern "C" void MaxwellToyCarpetX_Dependents1(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_MaxwellToyCarpetX_Dependents1;
extern "C" void MaxwellToyAMReX_Evolve1(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_MaxwellToyAMReX_Evolve1;
extern "C" void MaxwellToyCarpetX_Evolve1(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_MaxwellToyCarpetX_Evolve1;
AMReX::ghost_size = 3AMReX::prolongation_type = "conservative"AMReX::prolongation_order = 1AMReX::verbose = yes
CarpetX::ghost_size = 3CarpetX::prolongation_type = "conservative"CarpetX::prolongation_order = 1CarpetX::verbose = yes
AMReX::blocking_factor_x = $blocking_factorAMReX::blocking_factor_y = 1 # $blocking_factorAMReX::blocking_factor_z = 1 # $blocking_factor
CarpetX::blocking_factor_x = $blocking_factorCarpetX::blocking_factor_y = 1 # $blocking_factorCarpetX::blocking_factor_z = 1 # $blocking_factor
AMReX::blocking_factor_x = $blocking_factorAMReX::blocking_factor_y = 1 # $blocking_factorAMReX::blocking_factor_z = 1 # $blocking_factor
CarpetX::blocking_factor_x = $blocking_factorCarpetX::blocking_factor_y = 1 # $blocking_factorCarpetX::blocking_factor_z = 1 # $blocking_factor
AMReX::max_num_levels = $nlevelsAMReX::regrid_every = 1AMReX::regrid_error_threshold = 0.01
CarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 1CarpetX::regrid_error_threshold = 0.01
AMReX::blocking_factor_x = $blocking_factorAMReX::blocking_factor_y = 1 # $blocking_factorAMReX::blocking_factor_z = 1 # $blocking_factor
CarpetX::blocking_factor_x = $blocking_factorCarpetX::blocking_factor_y = 1 # $blocking_factorCarpetX::blocking_factor_z = 1 # $blocking_factor
# Configuration definitions for thorn WaveToyCarpetX
ActiveThorns = "CarpetXFormalineIOUtilWaveToyCarpetX"$nlevels = 5$ncells = 32Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($nlevels - 1) / 2# CarpetX::verbose = yesCarpetX::ncells_x = $ncellsCarpetX::ncells_y = $ncellsCarpetX::ncells_z = $ncellsCarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 16CarpetX::regrid_error_threshold = 0.01CarpetX::dtfac = 0.5WaveToyCarpetX::initial_condition = "Gaussian"IO::out_dir = $parfileIO::out_every = 2 #TODO $ncells * 2 ** ($nlevels - 1) / 32
ActiveThorns = "CarpetXFormalineIOUtilWaveToyCarpetX"$nlevels = 7$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 64 #TODO 0Cactus::terminate = "time"Cactus::cctk_final_time = 50.0# CarpetX::verbose = yesCarpetX::xmin = -100.0CarpetX::ymin = -100.0CarpetX::zmin = -100.0CarpetX::xmax = +100.0CarpetX::ymax = +100.0CarpetX::zmax = +100.0CarpetX::ncells_x = $ncellsCarpetX::ncells_y = $ncellsCarpetX::ncells_z = $ncells# CarpetX::periodic_x = no# CarpetX::periodic_y = no# CarpetX::periodic_z = noCarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 16CarpetX::regrid_error_threshold = 0.1CarpetX::dtfac = 0.5WaveToyCarpetX::initial_condition = "central potential"WaveToyCarpetX::boundary_condition = "initial"WaveToyCarpetX::central_point_charge = 1.0WaveToyCarpetX::central_point_radius = 1.0WaveToyCarpetX::particle_charge = 1.0IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32
ActiveThorns = "CarpetXFormalineIOUtilWaveToyCarpetX"$nlevels = 6$ncells = 16Cactus::cctk_show_schedule = noCactus::cctk_itlast = $ncells * 2 ** ($nlevels - 1) * 2# CarpetX::verbose = yesCarpetX::ncells_x = $ncellsCarpetX::ncells_y = $ncellsCarpetX::ncells_z = $ncellsCarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 16CarpetX::regrid_error_threshold = 0.01CarpetX::dtfac = 0.5WaveToyCarpetX::initial_condition = "periodic Gaussian"# WaveToyCarpetX::spatial_frequency_x = 0.5# WaveToyCarpetX::spatial_frequency_y = 0.0# WaveToyCarpetX::spatial_frequency_z = 0.0IO::out_dir = $parfileIO::out_every = 16 #TODO $ncells * 2 ** ($nlevels - 1) / 2
ActiveThorns = "CarpetXFormalineIOUtilWaveToyCarpetX"$nlevels = 7$ncells = 32Cactus::cctk_show_schedule = no# Cactus::terminate = "iteration"# Cactus::cctk_itlast = 64 #TODO 0Cactus::terminate = "time"Cactus::cctk_final_time = 50.0# CarpetX::verbose = yesCarpetX::xmin = -100.0CarpetX::ymin = -100.0CarpetX::zmin = -100.0CarpetX::xmax = +100.0CarpetX::ymax = +100.0CarpetX::zmax = +100.0CarpetX::ncells_x = $ncellsCarpetX::ncells_y = $ncellsCarpetX::ncells_z = $ncells# CarpetX::periodic_x = no# CarpetX::periodic_y = no# CarpetX::periodic_z = noCarpetX::max_num_levels = $nlevelsCarpetX::regrid_every = 16CarpetX::regrid_error_threshold = 0.1CarpetX::dtfac = 0.5WaveToyCarpetX::initial_condition = "central potential"WaveToyCarpetX::boundary_condition = "initial"WaveToyCarpetX::central_point_charge = 1.0WaveToyCarpetX::central_point_radius = 1.0IO::out_dir = $parfileIO::out_every = $ncells * 2 ** ($nlevels - 1) / 32
extern "C" void WaveToyAMReX_Initialize(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyAMReX_Initialize;
extern "C" void WaveToyCarpetX_Initialize(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyCarpetX_Initialize;
extern "C" void WaveToyAMReX_InitializeParticle(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyAMReX_InitializeParticle;
extern "C" void WaveToyCarpetX_InitializeParticle(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyCarpetX_InitializeParticle;
extern "C" void WaveToyAMReX_EstimateError(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyAMReX_EstimateError;
extern "C" void WaveToyCarpetX_EstimateError(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyCarpetX_EstimateError;
extern "C" void WaveToyAMReX_EvolveParticle(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyAMReX_EvolveParticle;
extern "C" void WaveToyCarpetX_EvolveParticle(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyCarpetX_EvolveParticle;
extern "C" void WaveToyAMReX_NaNCheck_past(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyAMReX_NaNCheck_past;
extern "C" void WaveToyCarpetX_NaNCheck_past(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyCarpetX_NaNCheck_past;
extern "C" void WaveToyAMReX_NaNCheck_current(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyAMReX_NaNCheck_current;
extern "C" void WaveToyCarpetX_NaNCheck_current(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyCarpetX_NaNCheck_current;
extern "C" void WaveToyAMReX_OutputParticle(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyAMReX_OutputParticle;
extern "C" void WaveToyCarpetX_OutputParticle(CCTK_ARGUMENTS) {DECLARE_CCTK_ARGUMENTS_WaveToyCarpetX_OutputParticle;
AMReX/AMReX# AMReX/AMReXTestAMReX/HydroToyAMReXAMReX/MaxwellToyAMReXAMReX/TestProlongateAMReX/WaveToyAMReX
CarpetX/CarpetXCarpetX/HydroToyCarpetXCarpetX/MaxwellToyCarpetXCarpetX/TestProlongateCarpetX/WaveToyCarpetX