kasner example from ET paper cannot be reproduced

Create issue
Issue #2373 resolved
Roland Haas created an issue

Nisa Amir found that the current release version of the toolkit no longer reproduces the Kasner example from the ET paper.


The parfile is checked out by default and in par/arXiv-1111.3344/ .

Comments (7)

  1. Roland Haas reporter

    Running the kasner.par file from einsteeinexamples with a number of previous ET releases:

    • ET_2019_03 "Proca"
    • ET_2013_05 "Gauss"
    • ET_2011_10 "Maxwell": aborts with NaN found in step 0
    • ET_2011_05 "Curie"

    shows the same behaviour for all of them, namely exponential growth i n gxx.

    Note that Curie is the release before the parfile shows up and also the release before the ET paper showing the Kasner example, Maxwell is the release just after and the first one to contain the parfile.

    This turns out to be due to the fact that ML_BSSN, while it extends ADMBASE::lapse_evolution_method actually ignores that parameter and evolves the lapse with its default gauge condition. This is despite the parfile setting:

    ADMBase::lapse_evolution_method = "static"
    ADMBase::shift_evolution_method = "static"
    ADMBase::dtlapse_evolution_method = "static"
    ADMBase::dtshift_evolution_method = "static"

    It can be fixed by choosing gauge evolution parameters such that all RHS for the gauge quantities are zero:

    # ML_BSSN ignores gauge evolution method parameters, so manually force its RHS
    # to be all zero
    ML_BSSN::harmonicF = 0.
    ML_BSSN::LapseAdvectionCoeff = 0.
    ML_BSSN::ShiftGammaCoeff = 0.
    ML_BSSN::ShiftAdvectionCoeff = 0.

    The parfile is also misleading in that it uses

    Exact::exact_model      = "Kasner-like"
    Exact::Kasner_generalized__p1   = 0.666666666666666666666666666666666666666666666666666666666666
    Exact::Kasner_generalized__p2   = 0.666666666666666666666666666666666666666666666666666666666666

    since the “kasner-like” spacetime uses a (single) parameter Kasner_like__q which also defaults (and should be set to) 2/3.

    Commit 8ecec76 "arXiv-1111.3344: fix kasner examples to freeze gauge" of einsteinexamples adds these changes to the parfile and removes

    CarpetLib::max_allowed_memory_MB = 2048

    and changes the reduction used for screen output to average instead of norm2 so that negative values eg in kxx show up. Kasner spacetime is homogeneous so the average is identical to any pointwise value.

  2. Roland Haas reporter

    As far as I can tell the parfile in the examples repo, which matches the parfile in the paper repo, never worked as advertised. Certainly not with the Curie release (the release version at the time the paper was prepared) and given that Maxwell (the release just after the paper was published) fails with NaN I cannot say if it possibly ever worked with Maxwell.

    My own guess would be that when the data for the paper was produced, a modified version of McLachlan was used that had gauge evolution disabled. No version of McLachlan of any release has lapse_evolution_method appear anywhere other than in param.ccl so no version could have respected it being set to static. Since ML_BSSN e.g, has its own ML_lapse group, even having ADMBase reset alp to 1 after each step would not avoid the metric blowing up since alp is no used for input by ML_BSSN.

  3. Roland Haas reporter

    Hmm, I think my plot is wrong. The “Curie” plot accidentally used the fixed parameter file.

  4. Log in to comment