![]() |
Bimetric 3+1 toolkit for spherical symmetry
|
Functions | |
BimetricEvolve::BimetricEvolve (Parameters ¶ms, UniformGrid &ug, GridOutputWriter &output, MoL &integ) | |
Creates and configures the bimetric solver from the given parameters. |
BimetricEvolve::BimetricEvolve | ( | Parameters & | params, |
UniformGrid & | ug, | ||
GridOutputWriter & | output, | ||
MoL & | integ | ||
) |
Creates and configures the bimetric solver from the given parameters.
Definition at line 591 of file bim-solver.cpp.
: BimetricModel( params ), GridUser( ug ) { static std::map<std::string,int> knownSlicings = { { "const", SLICE_CONSTG }, { "constg", SLICE_CONSTG }, { "constgf", SLICE_CONSTGF }, { "MS2OPT", SLICE_MS2OPT }, { "MS2", SLICE_MS2 }, { "MS4", SLICE_MS4 }, { "BM", SLICE_BM } }; std::string name = params.get( "slicing.method", slicing, 0, knownSlicings ); params.get( "slicing.lin2n", lin2n, nGhost ); params.get( "slicing.cub2n", cub2n, 5 * nGhost / 2 + 6 ); params.get( "slicing.smooth", smooth, 0 ); slog << "Bimetric Solver:" << std::endl << std::endl << " slicing = " << name << " (#" << slicing << ")" << ", lin2n = " << lin2n << ", cub2n = " << cub2n << ", smooth = " << smooth << std::endl << std::endl; if ( mpiSize() > 1 && ( slicing == SLICE_MS2 || slicing == SLICE_MS2OPT || slicing == SLICE_MS4 ) ) { slog << "*** Error: Maximal slicing is not compatible with MPI." << std::endl; gridDriver->quit( -1 ); } // Cached from the integrator // delta_t = integ.dt (); // Sign up for the integration // integ.addToEvolution( this ); // Add our grid functions to the evolution // integ.keepConstant( { fld::q } ); // GFs that are kept constant in time integ.keepEvolved( fld::bimEvolvedGF ); // GFs that are evolved by the integrator if( isGR () || slicing == SLICE_CONSTGF ) { integ.keepConstant( { fld::fAlp } ); } if ( slicing == SLICE_CONSTG || slicing == SLICE_CONSTGF ) { integ.keepConstant( { fld::gAlp, fld::gDAlp } ); } else if ( slicing == SLICE_BM ) { const static std::vector<fld::EvolvedBy> evolvedGaugeGF = { { fld::gAlp, fld::gAlp_t }, { fld::gDAlp, fld::gDAlp_t } }; integ.keepEvolved( evolvedGaugeGF ); } // The list of the grid functions to be written to the output. // output.gridFunctions( fld::bimOutput ); bool showDiagnostics = false; params.get( "out.diagnostics", showDiagnostics, false ); if( showDiagnostics ) { output.gridFunctions( fld::bimShowDiagnostics ); } }