Gowdy solver
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
gowdy-solver.cpp File Reference

IVP solver for Gowdy spacetimes that uses bimetric-solver framework. More...

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

Go to the source code of this file.

Data Structures

class  GowdyEvolve
 GowdyEvolve encapsulates the IVP solver for Gowdy spacetime. More...

Namespaces

namespace  fld
 Definitions of grid functions are here.

Defines

#define GFCNT   fld::gowdyLast
 Set the number of grid functions on a grid point.
#define emitField(gf)   inline Real& gf( Int m, Int n ) { return grid[m][n][fld::gf]; }
 emitField is a macro that emits a method encapsulating a grid function that access data in a grid at a point given by m (discretized t-coordinate) and n (discretized r-coordinate).

Enumerations

enum  fld::Index {
  fld::P = GFCNT, fld::Q, fld::R, fld::S,
  fld::L, fld::P_t, fld::Q_t, fld::R_t,
  fld::S_t, fld::L_t, fld::C, fld::gowdyLast
}
 Identifiers of all known grid functions (the variables or fields on a grid). More...

Functions

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

Variables

static const std::vector< Intfld::gowdyInput
 The fields that will be read from the initial data.
static const std::vector< Intfld::gowdyOutput
 The fields which will be written to the output.
static const std::vector
< EvolvedBy > 
fld::gowdyEvolved
 The grid functions that are evolved in time.

Detailed Description

IVP solver for Gowdy spacetimes that uses bimetric-solver framework.

Author:
Mikica Kocic

Definition in file gowdy-solver.cpp.


Define Documentation

#define emitField (   gf)    inline Real& gf( Int m, Int n ) { return grid[m][n][fld::gf]; }

emitField is a macro that emits a method encapsulating a grid function that access data in a grid at a point given by m (discretized t-coordinate) and n (discretized r-coordinate).

For example, emitField(r) defines r(m,n).

Definition at line 105 of file gowdy-solver.cpp.

#define GFCNT   fld::gowdyLast

Set the number of grid functions on a grid point.

Definition at line 57 of file gowdy-solver.cpp.

Referenced by UniformGrid::createGrid(), and UniformGrid::exchangeBoundaries().


Function Documentation

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

Definition at line 272 of file gowdy-solver.cpp.

References MoLIntegrator::evolveEquations(), fld::gowdyOutput, GridOutputWriter::gridFunctions(), GridOutputWriter::open(), and GowdyEvolve::setupInitialData().

{
    TrackUsedTime timer;

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

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

    // Create the output sync
    //
    GridOutputWriter output ( params, ugrid );
    output.gridFunctions( fld::gowdyOutput );
    if ( ! output.open () ) return -1;

    // Evolve the equations from the manually setup ID
    //
    MoLIntegrator integ( params, ugrid, output );
    GowdyEvolve gowdy( params, ugrid, integ );
    gowdy.setupInitialData ();

    return integ.evolveEquations () ? 0 : -1;
}