COSMOS
|
Derived class from Fmv0, implementing specific boundary conditions and initial data routines for the COSMOS simulation. More...
#include <cosmos_d.h>
Public Member Functions | |
Fmv () | |
Constructor for the Fmv class. | |
virtual | ~Fmv () |
Destructor for the Fmv class. | |
virtual void | set_boundary () |
Sets the boundary conditions for all evolved grid functions. | |
void | initial_data (double t, double mu, double kk, double xi2, double xi3, double w3) |
Sets up the initial data for the simulation. | |
void | initial_nonsph (double t, double mu, double kk, double xi2, double xi3, double w3) |
Sets the initial data for the geometric (BSSN) variables with non-spherical perturbations. | |
void | set_initial_scalar (double mus, double kks, double xi2s, double xi3s) |
Sets the initial data for the scalar field variables. | |
void | set_initial_fluid (double t) |
Sets the initial data for the fluid variables (if enabled). | |
![]() | |
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(). | |
Additional Inherited Members | |
![]() | |
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. | |
![]() | |
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). | |
Derived class from Fmv0, implementing specific boundary conditions and initial data routines for the COSMOS simulation.
Overrides virtual functions like set_boundary
and provides methods like initial_data
or initial_nonsph
.
Fmv::Fmv | ( | ) |
|
virtual |
Destructor for the Fmv class.
void Fmv::initial_data | ( | double | t, |
double | mu, | ||
double | kk, | ||
double | xi2, | ||
double | xi3, | ||
double | w3 ) |
Sets up the initial data for the simulation.
t | Initial time (usually 0). |
mu | Initial geometric perturbation amplitude. |
kk | Initial geometric perturbation scale/wavenumber. |
xi2 | Initial geometric perturbation non-spherical parameter. |
xi3 | Initial geometric perturbation non-spherical parameter. |
w3 | Initial geometric perturbation additional parameter. |
void Fmv::initial_nonsph | ( | double | t, |
double | mu, | ||
double | kk, | ||
double | xi2, | ||
double | xi3, | ||
double | w3 ) |
Sets the initial data for the geometric (BSSN) variables with non-spherical perturbations.
t | Initial time. |
mu | Amplitude parameter. |
kk | Scale/wavenumber parameter. |
xi2 | Non-spherical parameter. |
xi3 | Non-spherical parameter. |
w3 | Additional parameter. |
|
virtual |
Sets the boundary conditions for all evolved grid functions.
Implements the specific boundary logic (e.g., periodic, reflection, outflow) for the COSMOS simulation setup. Called typically after each RK step.
void Fmv::set_initial_fluid | ( | double | t | ) |
Sets the initial data for the fluid variables (if enabled).
t | Initial time. // Add parameters relevant to fluid initial data if needed |
void Fmv::set_initial_scalar | ( | double | mus, |
double | kks, | ||
double | xi2s, | ||
double | xi3s ) |
Sets the initial data for the scalar field variables.
mus | Amplitude parameter for scalar field perturbation. |
kks | Scale/wavenumber parameter for scalar field perturbation. |
xi2s | Non-spherical parameter for scalar field perturbation. |
xi3s | Non-spherical parameter for scalar field perturbation. |