aboutsummaryrefslogtreecommitdiff
path: root/par/convert-pars.pl
diff options
context:
space:
mode:
authorjthorn <jthorn@e296648e-0e4f-0410-bd07-d597d9acff87>2002-06-16 17:58:09 +0000
committerjthorn <jthorn@e296648e-0e4f-0410-bd07-d597d9acff87>2002-06-16 17:58:09 +0000
commitc0b11054a5500186eb015971db54b30b048bdd56 (patch)
tree24c155b1eac274b01047c5773a5499f84d9aae95 /par/convert-pars.pl
parent2f8a29f0758a940ed2f332d99a42d62610a327d5 (diff)
[[This is a redo of my "cvs import" of 2002/06/11, this time using proper
cvs operations (commit/delete/add) to preserve the full CVS history of this thorn.]] This is a major cleanup/revision of AEIThorns/Exact. Major user-visible changes: * major expansion of doc/documentation.tex * major expansion of documentation in param.ccl file * rename all parameters, systematize spacetime/coordinate/parameter names (there is a perl script in par/convert-pars.pl to convert old parameter files to the new names) * [from Mitica Vulcanov] many additions and fixes to cosmological solutions and Schwarzschild-Lemaitre * fix stress-energy tensor computations so they work -- before they were all disabled in CVS (INCLUDES lines were commented out in interface.ccl) due to requiring excessive friendship with evolution thorns and/or public parameters; new code copies parameters to restricted grid scalars, which Cactus automagically "pushes" to friends * added some more tests to testsuite, though these don't yet work fully Additional internal changes: * rename many Fortran subroutines (and a few C ones too) so their names start with the thorn name to reduce the chances of name collisions with other thorns * move all metrics to subdirectory so the main source directory isn't so cluttered * move two files containing subroutines which were never called (they didn't belong in this thorn, but somehow got into cvs by accident) into new archive/ directory * some (small) improvements in efficiency -- the exact_model parameter is now decoded from a keyword (string) to an integer once at INITIAL, and that integer tested by the stress-energy tensor code, rather than requiring a separate series of string tests at each grid point (!) like the old stress-energy tensor code did Added Files: convert-pars.pl perl script to convert old --> new parameter files Removed Files: boostrot.par converted to ../test/boost_rotation_symmetric.par bowl.par converted to ../test/bowl-init.par and ../test/bowl-evolution.par git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@96 e296648e-0e4f-0410-bd07-d597d9acff87
Diffstat (limited to 'par/convert-pars.pl')
-rwxr-xr-xpar/convert-pars.pl253
1 files changed, 253 insertions, 0 deletions
diff --git a/par/convert-pars.pl b/par/convert-pars.pl
new file mode 100755
index 0000000..c6783c2
--- /dev/null
+++ b/par/convert-pars.pl
@@ -0,0 +1,253 @@
+#! /usr/bin/perl -i.bak
+# $Header$
+
+#
+# This perl script converts old parameter files for this thorn to use
+# the new (June 2002) parameter names.
+#
+# Usage:
+# convert-pars.pl myrun.par myrun2.par ...
+#
+# This will rename the original files to myrun.par.bak, myrun2.par.bak, ...,
+# and write new parameter files myrun.par, myrun2.par, ... .
+#
+# This script can be fooled by \-line-continues in strange places or
+# other lexical wierdness, but in practice it should work for almost all
+# "reasonable" parameter files.
+#
+# Assumptions:
+# - We assume that the exactmodel/exact_model parameter is specified
+# *before* any of the parameters for the individual model.
+# - We assume that all keywords/strings are in "double quotes".
+#
+
+################################################################################
+
+my $exact_model;
+
+ while (<>)
+ {
+ # we only want to convert these strings if they're Exact:: parameters!
+ # n.b. we *do* convert inside comments
+ if (/Exact\s*::/i)
+ {
+ # thorn name
+ s/^\s*exact\s*::/Exact::/gi;
+
+ # exact_model
+ s/exactmodel/exact_model/gi;
+ if (/exact_model/)
+ {
+ s/minkowski/Minkowski/gi;
+ s/flatshift/Minkowski\/shift/gi;
+ s/flatfunny/Minkowski\/funny/gi;
+ s/gauge_wave/Minkowski\/gauge wave/gi;
+ s/finkelstein/Schwarzschild\/EF/gi;
+ s/flatschwarz/Schwarzschild\/PG/gi;
+ s/novikov/Schwarzschild\/Novikov/gi;
+ s/kerr/Kerr\/Boyer-Lindquist/gi;
+ s/kerrschild/Kerr\/Kerr-Schild/gi;
+ s/cosschwarz/Schwarzschild-Lemaitre/gi;
+ s/multiBH/multi-BH/gi;
+ s/alvi/Alvi/gi;
+ s/fakebinary/Thorne-fakebinary/gi;
+ s/lemaitre/Lemaitre/gi;
+ s/rob-wal/Robertson-Walker/gi;
+ s/desitter/de Sitter/gi;
+ s/cosdesitter/de Sitter+Lambda/gi;
+ s/cosadesitter/anti-de Sitter+Lambda/gi;
+ s/bianchiI/Bianchi I/gi;
+ s/godel/Goedel/gi;
+ s/cosbertotti/Bertotti/gi;
+ s/kasner/Kasner-like/gi;
+ s/kasner_axi/Kasner-axisymmetric/gi;
+ s/kasner_gen/Kasner-generalized/gi;
+ s/milne/Milne/gi;
+ s/boostrot/boost-rotation symmetric/gi;
+ s/bowl/bowl/gi;
+ s/starschwarz/constant density star/gi;
+ $exact_model = $_;
+ }
+
+ # parameters for Minkowski spacetime
+ # with time-dependent shift vector
+ s/flatshift_a/Minkowski_shift__amplitude/gi;
+ s/flatshift_s/Minkowski_shift__sigma/gi;
+
+ # parameters for Minkowski spacetime
+ # with non-trivial spatial coordinates
+ s/flatfunny_a/Minkowski_funny__amplitude/gi;
+ s/flatfunny_s/Minkowski_funny__sigma/gi;
+
+ # parameters for Minkowski spacetime in gauge-wave coordinates
+ s/GW_H/Minkowski_gauge_wave__what_fn/gi;
+ if (/Minkowski_gauge_wave__what_fn/i)
+ {
+ s/"gau"/"Gaussian"/gi;
+ }
+ s/GW_a/Minkowski_gauge_wave__amplitude/gi;
+ s/GW_omega/Minkowski_gauge_wave__omega/gi;
+ s/GW_diagonal/Minkowski_gauge_wave__diagonal/gi;
+ s/GW_del/Minkowski_gauge_wave__lambda/gi;
+ s/GW_phase_shift/Minkowski_gauge_wave__phase/gi;
+
+ # parameters for Schwarzschild metric
+ # in Eddington-Finkelstein coordinates
+ if ($exact_model =~ /"Schwarzschild\/EF"/)
+ {
+ s/kerrschild_m/Schwarzschild_EF__mass/gi;
+ s/kerrschild_eps/Schwarzschild_EF__epsilon/gi;
+ }
+
+ # parameters for Schwarzschild metric
+ # in Painleve-Gustrand coordinates
+ if ($exact_model =~ /"Schwarzschild\/PG"/)
+ {
+ s/kerrschild_m/Schwarzschild_PG__mass/gi;
+ s/kerrschild_eps/Schwarzschild_PG__epsilon/gi;
+ }
+
+ # parameters for Schwarzschild metric in Novikov coordinates
+ # there were no old parameters for this model
+
+ # parameters for Schwarzschild-Lemaitre metric
+ # (Schwarzschild black hole with cosmological constant)
+ s/schwarz_lam/Schwarzschild_Lemaitre__Lambda/gi;
+ s/schwarz_mas/Schwarzschild_Lemaitre__mass/gi;
+
+ # parameters for Kerr metric in Boyer-Lindquist coordinates
+ s/kerrc_m/Kerr_BoyerLindquist__mass/gi;
+ s/kerrc_a/Kerr_BoyerLindquist__spin/gi;
+
+ # parameters for Kerr metric in Kerr-Schild coordinates
+ if ($exact_model =~ /"Kerr\/Kerr-Schild"/)
+ {
+ s/kerrschild_boostv/Kerr_KerrSchild__boost_v/gi;
+ s/kerrschild_eps/Kerr_KerrSchild__epsilon/gi;
+ s/kerrschild_m/Kerr_KerrSchild__mass/gi;
+ s/kerrschild_a/Kerr_KerrSchild__spin/gi;
+ }
+
+ # parameters for Majumdar-Papapetrou or Kastor-Traschen
+ # maximally-charged multiple black hole solution
+ s/kt_nBH/multi_BH__nBH/gi;
+ s/kt_hubble/multi_BH__Hubble/gi;
+ s/m_bh1/multi_BH__mass1/gi;
+ s/co_bh1x/multi_BH__x1/gi;
+ s/co_bh1y/multi_BH__y1/gi;
+ s/co_bh1z/multi_BH__z1/gi;
+ s/m_bh2/multi_BH__mass2/gi;
+ s/co_bh2x/multi_BH__x2/gi;
+ s/co_bh2y/multi_BH__y2/gi;
+ s/co_bh2z/multi_BH__z2/gi;
+ s/m_bh3/multi_BH__mass3/gi;
+ s/co_bh3x/multi_BH__x3/gi;
+ s/co_bh3y/multi_BH__y3/gi;
+ s/co_bh3z/multi_BH__z3/gi;
+ s/m_bh4/multi_BH__mass4/gi;
+ s/co_bh4x/multi_BH__x4/gi;
+ s/co_bh4y/multi_BH__y4/gi;
+ s/co_bh4z/multi_BH__z4/gi;
+
+ # parameters for Alvi spacetime
+ s/alvi_m1/Alvi__mass1/gi;
+ s/alvi_m2/Alvi__mass2/gi;
+ s/alvi_bb/Alvi__separation/gi;
+
+ # parameters for Thorne's fake binary solution
+ s/fakebinary_atype/Thorne_fakebinary__atype/gi;
+ s/fakebinary_retarded/Thorne_fakebinary__retarded/gi;
+ s/fakebinary_eps/Thorne_fakebinary__epsilon/gi;
+ s/fakebinary_a0/Thorne_fakebinary__separation/gi;
+ s/fakebinary_omega0/Thorne_fakebinary__Omega0/gi;
+ s/fakebinary_m/Thorne_fakebinary__mass/gi;
+ s/fakebinary_bround/Thorne_fakebinary__smoothing/gi;
+
+ # parameters for Lemaitre-type spacetime
+ s/lemaitre_k/Lemaitre__kappa/gi;
+ s/lemaitre_l/Lemaitre__Lambda/gi;
+ s/lemaitre_e/Lemaitre__epsilon0/gi;
+ s/lemaitre_r/Lemaitre__R0/gi;
+
+ # parameters for Robertson-Walker spacetime
+ s/robson_a/Robertson_Walker__R0/gi;
+ s/robson_b/Robertson_Walker__rho/gi;
+ s/robson_k/Robertson_Walker__k/gi;
+ s/robson_model/Robertson_Walker__pressure/gi;
+ if (/Robertson_Walker__pressure/)
+ {
+ s/"pressure"/"true"/gi;
+ s/"no_pressure"/"false"/gi;
+ }
+
+ # parameters for de Sitter spacetime
+ if ($exact_model =~ /"de Sitter"/)
+ {
+ s/desitt_a/de_Sitter__scale/gi;
+ }
+
+ # parameters for de Sitter spacetime with cosmological constant
+ if ($exact_model =~ /"de Sitter\+Lambda"/)
+ {
+ s/desitt_a/de_Sitter_Lambda__scale/gi;
+ }
+
+ if ($exact_model =~ /"anti\-de Sitter\+Lambda"/)
+ {
+ s/desitt_a/anti_de_Sitter_Lambda__scale/gi;
+ }
+
+ # parameters for Bianchi type I cosmology
+ s/bia/Bianchi_I__scale/gi;
+
+ # parameters for Goedel spacetime
+ s/godel_a/Goedel__scale/gi;
+
+ # parameters for Bertotti spacetime
+ s/bertotti_lam/Bertotti__Lambda/gi;
+
+ # parameters for Kasner-like spacetime
+ s/kasner_q/Kasner_like__q/gi;
+
+ # parameters for axisymmetric Kasner spacetime
+ # there are no parameters
+
+ # parameters for generalized Kasner spacetime
+ s/kasner_p1/Kasner_generalized__p1/gi;
+ s/kasner_p2/Kasner_generalized__p2/gi;
+
+ # parameters for Milne spacetime
+ # there are no parameters
+
+ # parameters for boost-rotation symmetricmetric spacetime
+ s/boostrotscale/boost_rotation_symmetric__scale/gi;
+ s/boostrotstrength/boost_rotation_symmetric__amp/gi;
+ s/boostrotsafedistance/boost_rotation_symmetric__min_d/gi;
+
+ # parameters for bowl (bag-of-gold) spacetime (non-Einstein)
+ s/bowl_type/bowl__shape/gi;
+ if (/bowl__shape/)
+ {
+ s/"gauss"/"Gaussian"/gi;
+ s/"fermi"/"Fermi"/gi;
+ }
+ s/bowl_evolve/bowl__evolve/gi;
+ s/bowl_a/bowl__strength/gi;
+ s/bowl_c/bowl__center/gi;
+ s/bowl_s/bowl__sigma/gi;
+ s/bowl_dx/bowl__x_scale/gi;
+ s/bowl_dy/bowl__y_scale/gi;
+ s/bowl_dz/bowl__z_scale/gi;
+ s/bowl_t0/bowl__t0/gi;
+ s/bowl_st/bowl__sigma_t/gi;
+
+ # parameters for constant density (Schwarzschild) star
+ s/starschwarz_m/constant_density_star__mass/gi;
+ s/starschwarz_r/constant_density_star__radius/gi;
+ }
+
+ print;
+
+ # don't want $exact_model to carry over from one par file to another
+ if (eof) { $exact_model = undef(); }
+ }