COSMOS
|
Base class for Finite Mesh Variables version 0. More...
#include <cosmos_d.h>
Public Member Functions | |
Fmv0 (int tabs, int jupper, int jlower, int kupper, int klower, int lupper, int llower, double xupper, double xlower, double yupper, double ylower, double zupper, double zlower, double cfl_in, double etaa_in, double etab_in, double etabb_in, double KOep_in, int exg_in, double Hb_in, double fluidw_in, double kap_MUSCL_in, double b_minmod_in, double amp_in) | |
Constructor for the Fmv0 class. | |
virtual | ~Fmv0 () |
Destructor for the Fmv0 class. Frees allocated memory. | |
virtual void | rhs (double dt, double t) |
Calculates the right-hand sides (RHS) of the BSSN evolution equations. | |
void | KOdiss (double ***q, double ***f) |
Applies Kreiss-Oliger numerical dissipation to evolved variables. | |
double | funcf (double x) |
Coordinate mapping function from logical coordinate (e.g., j*dx) to physical coordinate. | |
double | df (double x) |
First derivative of the coordinate mapping function funcf. | |
double | ddf (double x) |
Second derivative of the coordinate mapping function funcf. | |
double | dddf (double x) |
Third derivative of the coordinate mapping function funcf. | |
int | get_tab () const |
Get the number of buffer zones. | |
double | get_cfl () const |
Get the CFL factor. | |
bool | get_fluidevo () const |
Check if fluid evolution is enabled (based on fluidw perhaps). | |
int & | set_bflag (int l, int k, int j) |
Set the boundary flag at a specific grid point. Returns a reference. | |
int | get_bflag (int l, int k, int j) const |
Get the boundary flag at a specific grid point. | |
double *** | matrix (long nrl, long nrh, long ncl, long nch, long ndl, long ndh) |
Allocates memory for a 3D grid function array. | |
void | free_matrix (double ***m, long nrl, long nrh, long ncl, long nch, long ndl, long ndh) |
Frees memory allocated by matrix(). | |
Public Attributes | |
int | tab |
Number of buffer/ghost zones. | |
int | jmin |
Minimum physical grid index in x. | |
int | jmax |
Maximum physical grid index in x. | |
double | xmin |
Minimum coordinate value in x. | |
double | xmax |
Maximum coordinate value in x. | |
double | dx |
Grid spacing in x (uniform logical grid). | |
double | cfl |
CFL factor for time step calculation. | |
double | etaa |
Gauge parameter eta for 1+log lapse. | |
double | etab |
Gauge parameter eta for Gamma-driver shift. | |
double | etabb |
Gauge parameter eta_b (or similar) for Gamma-driver shift. | |
double | KOep |
Kreiss-Oliger dissipation coefficient epsilon. | |
double | Hb |
Initial Hubble parameter. | |
double | fluidw |
Fluid equation of state parameter w (if fluid enabled). | |
double | kap_MUSCL |
MUSCL reconstruction parameter kappa (if fluid enabled). | |
double | b_minmod |
Minmod limiter parameter b (if fluid enabled). | |
int | exg |
Grid size for excision region (if enabled). | |
double | tmax |
Maximum simulation time. | |
double | amp |
Grid stretching parameter for coordinate mapping. | |
double *** | alp |
Pointer to the lapse function grid data. | |
double *** | betax |
Pointer to the shift vector component beta^x grid data. | |
Protected Member Functions | |
double | D1x (double ***f, int l, int k, int j) |
Calculates spatial derivatives (e.g., first derivative in x). | |
void | calculate_christoffel (int l, int k, int j) |
Calculates Christoffel symbols or connection functions. | |
void | calculate_ricci (int l, int k, int j) |
Calculates Ricci tensor components. | |
void | calculate_matter_sources (int l, int k, int j) |
Calculates matter source terms (Stress-Energy Tensor T_munu). | |
Base class for Finite Mesh Variables version 0.
Handles the fundamental grid structure, memory allocation, coordinate mapping, basic BSSN evolution steps (RHS calculation), and Kreiss-Oliger dissipation. Does not implement specific boundary conditions or mesh refinement.
Fmv0::Fmv0 | ( | int | tabs, |
int | jupper, | ||
int | jlower, | ||
int | kupper, | ||
int | klower, | ||
int | lupper, | ||
int | llower, | ||
double | xupper, | ||
double | xlower, | ||
double | yupper, | ||
double | ylower, | ||
double | zupper, | ||
double | zlower, | ||
double | cfl_in, | ||
double | etaa_in, | ||
double | etab_in, | ||
double | etabb_in, | ||
double | KOep_in, | ||
int | exg_in, | ||
double | Hb_in, | ||
double | fluidw_in, | ||
double | kap_MUSCL_in, | ||
double | b_minmod_in, | ||
double | amp_in ) |
Constructor for the Fmv0 class.
tabs | Number of buffer zones (ghost zones). |
jupper | Upper index boundary in x for the physical domain. |
jlower | Lower index boundary in x for the physical domain. |
kupper | Upper index boundary in y. |
klower | Lower index boundary in y. |
lupper | Upper index boundary in z. |
llower | Lower index boundary in z. |
xupper | Upper coordinate boundary in x. |
xlower | Lower coordinate boundary in x. |
yupper | Upper coordinate boundary in y. |
ylower | Lower coordinate boundary in y. |
zupper | Upper coordinate boundary in z. |
zlower | Lower coordinate boundary in z. |
cfl_in | CFL factor. |
etaa_in | Gauge parameter eta for lapse. |
etab_in | Gauge parameter eta for shift damping (B^i). |
etabb_in | Gauge parameter eta_b for shift evolution. |
KOep_in | Kreiss-Oliger dissipation coefficient. |
exg_in | Excision region grid size. |
Hb_in | Initial Hubble parameter. |
fluidw_in | Fluid equation of state parameter w. |
kap_MUSCL_in | MUSCL kappa parameter. |
b_minmod_in | Minmod b parameter. |
amp_in | Grid stretching parameter. |
|
virtual |
Destructor for the Fmv0 class. Frees allocated memory.
|
protected |
Calculates Christoffel symbols or connection functions.
|
protected |
Calculates matter source terms (Stress-Energy Tensor T_munu).
|
protected |
Calculates Ricci tensor components.
|
protected |
Calculates spatial derivatives (e.g., first derivative in x).
double Fmv0::dddf | ( | double | x | ) |
Third derivative of the coordinate mapping function funcf.
double Fmv0::ddf | ( | double | x | ) |
Second derivative of the coordinate mapping function funcf.
double Fmv0::df | ( | double | x | ) |
First derivative of the coordinate mapping function funcf.
void Fmv0::free_matrix | ( | double *** | m, |
long | nrl, | ||
long | nrh, | ||
long | ncl, | ||
long | nch, | ||
long | ndl, | ||
long | ndh ) |
Frees memory allocated by matrix().
double Fmv0::funcf | ( | double | x | ) |
Coordinate mapping function from logical coordinate (e.g., j*dx) to physical coordinate.
x | Logical coordinate. |
int Fmv0::get_bflag | ( | int | l, |
int | k, | ||
int | j ) const |
Get the boundary flag at a specific grid point.
l | z-index. |
k | y-index. |
j | x-index. |
double Fmv0::get_cfl | ( | ) | const |
Get the CFL factor.
bool Fmv0::get_fluidevo | ( | ) | const |
Check if fluid evolution is enabled (based on fluidw perhaps).
int Fmv0::get_tab | ( | ) | const |
Get the number of buffer zones.
void Fmv0::KOdiss | ( | double *** | q, |
double *** | f ) |
Applies Kreiss-Oliger numerical dissipation to evolved variables.
q | Pointer to the grid function data array to apply dissipation to. |
f | Pointer to the RHS array corresponding to q (dissipation added here). |
double *** Fmv0::matrix | ( | long | nrl, |
long | nrh, | ||
long | ncl, | ||
long | nch, | ||
long | ndl, | ||
long | ndh ) |
Allocates memory for a 3D grid function array.
|
virtual |
Calculates the right-hand sides (RHS) of the BSSN evolution equations.
dt | Current time step size (may be needed for some terms). |
t | Current simulation time. |
int & Fmv0::set_bflag | ( | int | l, |
int | k, | ||
int | j ) |
Set the boundary flag at a specific grid point. Returns a reference.
l | z-index. |
k | y-index. |
j | x-index. |
double*** Fmv0::alp |
Pointer to the lapse function grid data.
double Fmv0::amp |
Grid stretching parameter for coordinate mapping.
double Fmv0::b_minmod |
Minmod limiter parameter b (if fluid enabled).
double*** Fmv0::betax |
Pointer to the shift vector component beta^x grid data.
double Fmv0::cfl |
CFL factor for time step calculation.
double Fmv0::dx |
Grid spacing in x (uniform logical grid).
double Fmv0::etaa |
Gauge parameter eta for 1+log lapse.
double Fmv0::etab |
Gauge parameter eta for Gamma-driver shift.
double Fmv0::etabb |
Gauge parameter eta_b (or similar) for Gamma-driver shift.
int Fmv0::exg |
Grid size for excision region (if enabled).
double Fmv0::fluidw |
Fluid equation of state parameter w (if fluid enabled).
double Fmv0::Hb |
Initial Hubble parameter.
int Fmv0::jmax |
Maximum physical grid index in x.
int Fmv0::jmin |
Minimum physical grid index in x.
double Fmv0::kap_MUSCL |
MUSCL reconstruction parameter kappa (if fluid enabled).
double Fmv0::KOep |
Kreiss-Oliger dissipation coefficient epsilon.
int Fmv0::tab |
Number of buffer/ghost zones.
double Fmv0::tmax |
Maximum simulation time.
double Fmv0::xmax |
Maximum coordinate value in x.
double Fmv0::xmin |
Minimum coordinate value in x.