Bimetric 3+1 toolkit for spherical symmetry
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bim-solver.cpp File Reference

Standard 3+1 evolution for spherically symmetric bimetric spacetimes. More...

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cmath>
#include <cstdio>
#include <chrono>
#include "numMethods.h"
#include "sys/slog.h"
#include "sys/trackUsedTime.h"
#include "sys/paramsHolder.h"
#include "sys/hpc.h"
#include "grid/gridFunctions.h"
#include "grid/gridDriver.h"
#include "grid/gridInitialData.h"
#include "grid/gridOutput.h"
#include "grid/integrator.h"
#include "bimetricModel.h"
#include "eom-std.h"
#include "maximalSlice.h"
Include dependency graph for bim-solver.cpp:

Go to the source code of this file.

Data Structures

class  BimetricEvolve
 BimetricEvolve encapsulates a 3+1 evolution solver for bimetric spacetimes. More...

Namespaces

namespace  fld
 Contains the localized variable names for all known grid functions.

Defines

#define GFCNT   fld::bimLast
#define gBet(m, n)   eq_gBet(m,n)
#define fBet(m, n)   eq_fBet(m,n)
#define gBet_r(m, n)   eq_gBet_r(m,n)
#define fBet_r(m, n)   eq_fBet_r(m,n)
#define eq_pr(m, n)   (p(m,n)/r(m,n))
#define eq_qr(m, n)   (q(m,n)/r(m,n))
#define KDT

Enumerations

enum  fld::bimIndex {
  fld::bimFirst = GFCNT - 1, fld::gA, fld::gB, fld::gK,
  fld::gKD, fld::gDA, fld::gDB, fld::gSig,
  fld::fA, fld::fB, fld::fK, fld::fKD,
  fld::fDA, fld::fDB, fld::fSig, fld::pfD,
  fld::pfS, fld::pftau, fld::p, fld::q,
  fld::gAlp, fld::gDAlp, fld::fAlp, fld::fDAlp,
  fld::Lt, fld::R, fld::pfv, fld::mpiBoundary = pfv,
  fld::g_rho, fld::g_JK1, fld::g_JK2, fld::f_rho,
  fld::f_JK1, fld::f_JK2, fld::gW, fld::fW,
  fld::cW, fld::C_1, fld::C_2, fld::C_3,
  fld::C_4, fld::gHorz, fld::fHorz, fld::p_g,
  fld::p_f, fld::gA_t, fld::gB_t, fld::gK_t,
  fld::gKD_t, fld::gDA_t, fld::gDB_t, fld::gSig_t,
  fld::fA_t, fld::fB_t, fld::fK_t, fld::fKD_t,
  fld::fDA_t, fld::fDB_t, fld::fSig_t, fld::pfD_t,
  fld::pfS_t, fld::pftau_t, fld::p_t, fld::gAlp_t,
  fld::gDAlp_t, fld::gA_r, fld::gB_r, fld::gK_r,
  fld::gKD_r, fld::gDA_r, fld::gDB_r, fld::fA_r,
  fld::fB_r, fld::fK_r, fld::fKD_r, fld::fDA_r,
  fld::fDB_r, fld::pfD_r, fld::pfS_r, fld::pftau_r,
  fld::pfv_r, fld::p_r, fld::p_rr, fld::q_r,
  fld::q_rr, fld::eq_pr_r, fld::eq_qr_r, fld::gAlp_r,
  fld::gDAlp_r, fld::fAlp_r, fld::fAlp_rr, fld::fDAlp_r,
  fld::tmp, fld::gdbg, fld::fdbg, fld::bimLast
}
 The bimetric grid functions (indices on the grid). More...

Functions

int main (int argc, char *argv[])
 The main entry point of bim-solver.

Variables

static const std::vector< Intfld::bimInput
 The grid functions that will be read from the initial data.
static const std::vector
< EvolvedBy > 
fld::bimEvolvedGF
 The grid functions that are involved in time.
static const std::vector
< GF_Descriptor
fld::bimOutput
 The grid functions which will be written to the output.
static const std::vector
< GF_Descriptor
fld::bimShowDiagnostics
 Additional output diagnostics (e.g., with spatial derivatives).

Detailed Description

Standard 3+1 evolution for spherically symmetric bimetric spacetimes.

Author:
Mikica Kocic

Definition in file bim-solver.cpp.


Define Documentation

#define GFCNT   fld::bimLast

Definition at line 82 of file bim-solver.cpp.

#define KDT

Function Documentation

int main ( int  argc,
char *  argv[] 
)

The main entry point of bim-solver.

  • Read the run-time configuration parameters
  • Create the grid driver
  • Read the initial data (populating the grid slice at t_0)
  • Create the output sink (for storing the results)
  • Setup the MoL integrator on the grid (whose results will go to the output sink)
  • Create the bimetric model and define the equations of motion (to be integrated)
  • Evolve the equations of motion

Definition at line 1089 of file bim-solver.cpp.

{
    TrackUsedTime timer;

    /// - Read the run-time configuration parameters
    ///
    Parameters params( argc >= 2 ? argv[1] : "config.ini" );

    /// - Create the grid driver
    ///
    UniformGrid ugrid( params );

    /// - Read the initial data (populating the grid slice at t_0)
    ///
    if( ! GridInitialData( params, ugrid ).addGFs( fld::bimInput ).load () ) {
        return -1;
    }

    /// - Create the output sink (for storing the results)
    ///
    GridOutputWriter output ( params, ugrid );
    if ( ! output.open () ) {
        return -1;
    }

    /// - Setup the MoL integrator on the grid (whose results will go to the output sink)
    ///
    MoL integrator( params, ugrid, output );

    /// - Create the bimetric model and define the equations of motion (to be integrated)
    ///
    BimetricEvolve bim( params, ugrid, output, integrator );

    /// - Evolve the equations of motion
    ///
    return integrator.evolveEquations () ? 0 : -1;
}