Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
bc20708
Beginning an (attempted) implementation at a full 3+1D solver for the…
JonathanGorard Aug 13, 2025
a91c0a7
Adding initial implementation of a Lax-Friedrichs solver (including n…
JonathanGorard Aug 14, 2025
732224a
As expected, an attempt to evolve an isolated Schwarzschild black hol…
JonathanGorard Aug 14, 2025
57cabe2
Implemented the Bona-Masso source terms. Corrected bug in the flux co…
JonathanGorard Aug 15, 2025
6f0ffbc
Completed implementation of the source term integrator for the spatia…
JonathanGorard Aug 16, 2025
59487de
Beginning the process of implementing black hole metrics in the quasi…
JonathanGorard Aug 18, 2025
0fe189d
Mostly completed implementation of quasi-isotropic gauge, although an…
JonathanGorard Aug 18, 2025
19e53eb
Fixing the definition of the radial coordinate in (quasi)-isotropic g…
JonathanGorard Aug 18, 2025
094e16d
Fixing isotropic coordinate transformations to use eta rather than rh…
JonathanGorard Aug 19, 2025
d166266
Partial working commit: rewriting the quasi-isotropic gauge to use di…
JonathanGorard Aug 20, 2025
04e6ede
Completed rewrite of quasi-isotropic gauge (including spacetime and i…
JonathanGorard Aug 20, 2025
6139269
Fixing the rank-3 tensor transformation law for the derivatives of th…
JonathanGorard Sep 12, 2025
9864621
Adding in the linearized gravitational wave test from Babiuc et al.'s…
JonathanGorard Oct 2, 2025
54c61b9
Implemented a (default) HLLE solver for the vacuum Bona-Masso equatio…
JonathanGorard Oct 2, 2025
b05748b
Added the (expanding form of the) Gowdy wave test from Alcubierre et …
JonathanGorard Oct 3, 2025
544eddb
Switched consistently to the use of HLL fluxes and 1+log slicing cond…
JonathanGorard Oct 3, 2025
c427e2e
Merge branch 'main' into vacuum_einstein_prototyping
JonathanGorard Oct 3, 2025
2e61a5f
Implemented variable excision threshold (lapse function only, for now…
JonathanGorard Oct 3, 2025
a0d4451
Linked up new variable excision threshold capabilities to the source …
JonathanGorard Oct 3, 2025
e390286
Adding some initial infrastructure for handling more general conforma…
JonathanGorard Oct 9, 2025
7ddf01e
Adding Riemann solver, coordinate transformation, etc. infrastructure…
JonathanGorard Oct 9, 2025
31b3bf2
Added initial implementation of conformal source terms for the confor…
JonathanGorard Oct 9, 2025
0fda97f
Added a new integrator that respects the conformal decomposition of t…
JonathanGorard Oct 9, 2025
2467ff4
Implemented the BSSN form of the evolution equation for the conformal…
JonathanGorard Oct 9, 2025
1c64f4d
Turns out that I'm dumb and apparently can't use the product rule pro…
JonathanGorard Oct 10, 2025
6e2d30d
Adding new capabilities to the gkyl_gr_spacetime struct (though only …
JonathanGorard Oct 12, 2025
ffb1acb
Added a proper implementation of first conformal derivatives to the g…
JonathanGorard Oct 12, 2025
68dc167
Indeed, as one would hope, adding in the second conformal derivatives…
JonathanGorard Oct 13, 2025
f09884d
Extended the conformal factor and conformal derivative infrastructure…
JonathanGorard Oct 13, 2025
07a3713
Implemented HLL-type Riemann solver for the conformal Bona-Masso equa…
JonathanGorard Oct 13, 2025
0dfc254
Added conformal variant of the linearized gravitational wave test, an…
JonathanGorard Oct 14, 2025
2d28a28
Merge branch 'main' into vacuum_einstein_prototyping
JonathanGorard Oct 19, 2025
e2d5387
Adding in an initial Lua wrapper for the vacuum Einstein field equati…
JonathanGorard Oct 20, 2025
2ece698
Added in new Lua types for spacetime slicing conditions (geodesic, ha…
JonathanGorard Oct 20, 2025
28b6a71
Added inverse spatial metric tensor function for Minkowski space too,…
JonathanGorard Oct 20, 2025
9ec8629
Added new Lua wrappers for the Brill-Lindquist metric for binary blac…
JonathanGorard Oct 20, 2025
4227d0a
Implemented wrappers to facilitate the computation of conformal facto…
JonathanGorard Oct 22, 2025
dbfca9c
Extended wrappers for computing BSSN and Bona-Masso conformal factors…
JonathanGorard Oct 22, 2025
79ec86b
BSSN and Bona-Masso conformal factor and conformal derivative wrapper…
JonathanGorard Oct 22, 2025
0a4e77b
Fixed major memory leak in the HLL(E) solver for the vacuum Einstein …
JonathanGorard Oct 28, 2025
357ffe5
Updated vacuum Einstein and conformal vacuum Einstein function signat…
JonathanGorard Oct 29, 2025
3c08178
Added basic unit tests for the conformal vacuum Einstein equations (c…
JonathanGorard Oct 29, 2025
acc86fb
Adding wave propagation unit tests for the vacuum Einstein field equa…
JonathanGorard Oct 30, 2025
f53e190
Updated wave propagation unit tests for the vacuum Einstein field equ…
JonathanGorard Oct 30, 2025
a572236
Merge branch 'main' into vacuum_einstein_production
JonathanGorard Oct 30, 2025
ef75fbe
Updated all C and Lua regression test parameters for the conformal an…
JonathanGorard Oct 30, 2025
3f33418
Merge branch 'main' into vacuum_einstein_production
JonathanGorard Dec 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions core/zero/gkyl_eqn_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ enum gkyl_eqn_type {
GKYL_EQN_GR_MAXWELL_TETRAD, // General relativistic Maxwell equations in the tetrad basis.
GKYL_EQN_GR_MEDIUM, // Coupled fluid-Einstein equations in plane-symmetric spacetimes.
GKYL_EQN_GR_TWOFLUID, // General relativistic two-fluid equations.
GKYL_EQN_VACUUM_EINSTEIN, // Vacuum Einstein equations using the Bona-Masso formalism.
GKYL_EQN_VACUUM_EINSTEIN_CONFORMAL, // Vacuum Einstein equations using the conformal Bona-Masso formalism.
GKYL_EQN_GR_TWOFLUID_TETRAD, // General relativistic two-fluid equations in the tetrad basis.
GKYL_EQN_GR_MHD, // General relativistic magnetohydrodynamics equations.
GKYL_EQN_GR_MHD_TETRAD, // General relativistic magnetohydrodynamics equations in the tetrad basis.
Expand Down
11 changes: 11 additions & 0 deletions moments/apps/gkyl_moment.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <gkyl_util.h>
#include <gkyl_wave_prop.h>
#include <gkyl_wv_eqn.h>
#include <gkyl_gr_spacetime.h>
#include <gkyl_wv_embed_geo.h>

#include <time.h>
Expand Down Expand Up @@ -62,6 +63,16 @@ struct gkyl_moment_species {
double gr_twofluid_gas_gamma_ion; // Adiabatic index for ions in general relativistic two-fluid equations.
double gr_twofluid_e_fact; // Electric field divergence error propagation speed for general relativistic two-fluid equations.

bool has_vacuum_einstein; // Run with vacuum Einstein sources using the Bona-Masso formalism.
double vacuum_einstein_excision_threshold; // Excision threshold (lapse) for vacuum Einstein equations using the Bona-Masso formalism.
enum gkyl_spacetime_slicing vacuum_einstein_spacetime_slicing; // Spacetime slicing condition for vacuum Einstein equations using the Bona-Masso formalism.
enum gkyl_spacetime_evolution vacuum_einstein_spacetime_evolution; // Spacetime evolution system for vacuum Einstein equations using the Bona-Masso formalism.

bool has_vacuum_einstein_conformal; // Run with vacuum Einstein sources using the conformal Bona-Masso formalism.
double vacuum_einstein_conformal_excision_threshold; // Excision threshold (lapse) for vacuum Einstein equations using the conformal Bona-Masso formalism.
enum gkyl_spacetime_slicing vacuum_einstein_conformal_spacetime_slicing; // Spacetime slicing condition for vacuum Einstein equations using the conformal Bona-Masso formalism.
enum gkyl_spacetime_evolution vacuum_einstein_conformal_spacetime_evolution; // Spacetime evolution system for vacuum Einstein equations using the conformal Bona-Masso formalism.

bool has_gr_mhd; // Run with general relativistic source terms (general relativistic magnetohydrodynamics equations).
double gr_mhd_gas_gamma; // Adiabatic index for general relativistic magnetohydrodynamics equations.

Expand Down
16 changes: 16 additions & 0 deletions moments/apps/gkyl_moment_lw.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,20 @@ gkyl_register_braginskii_types(lua_State *L);
void
gkyl_register_spacetime_gauge_types(lua_State *L);

/**
* Add spacetime slicing type flags for Einstein equations into Lua interpreter.
*
* @param L Lua state to use.
*/
void
gkyl_register_spacetime_slicing_types(lua_State *L);

/**
* Add spacetime evolution type flags for Einstein equations into Lua interpreter.
*
* @param L Lua state to use.
*/
void
gkyl_register_spacetime_evolution_types(lua_State *L);

#endif
11 changes: 11 additions & 0 deletions moments/apps/gkyl_moment_priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include <gkyl_wv_maxwell.h>
#include <gkyl_wv_mhd.h>
#include <gkyl_wv_ten_moment.h>
#include <gkyl_gr_spacetime.h>

// number of components that various applied functions should return
enum {
Expand Down Expand Up @@ -112,6 +113,16 @@ struct moment_species {
double gr_twofluid_gas_gamma_ion; // Adiabatic index for ions in general relativistic two-fluid equations.
double gr_twofluid_e_fact; // Electric field divergence error propagation speed for general relativistic two-fluid equations.

bool has_vacuum_einstein; // Run with vacuum Einstein sources using the Bona-Masso formalism.
double vacuum_einstein_excision_threshold; // Excision threshold (lapse) for vacuum Einstein equations using the Bona-Masso formalism.
enum gkyl_spacetime_slicing vacuum_einstein_spacetime_slicing; // Spacetime slicing condition for vacuum Einstein equations using the Bona-Masso formalism.
enum gkyl_spacetime_evolution vacuum_einstein_spacetime_evolution; // Spacetime evolution system for vacuum Einstein equations using the Bona-Masso formalism.

bool has_vacuum_einstein_conformal; // Run with vacuum Einstein sources using the conformal Bona-Masso formalism.
double vacuum_einstein_conformal_excision_threshold; // Excision threshold (lapse) for vacuum Einstein equations using the conformal Bona-Masso formalism.
enum gkyl_spacetime_slicing vacuum_einstein_conformal_spacetime_slicing; // Spacetime slicing condition for vacuum Einstein equations using the conformal Bona-Masso formalism.
enum gkyl_spacetime_evolution vacuum_einstein_conformal_spacetime_evolution; // Spacetime evolution system for vacuum Einstein equations using the conformal Bona-Masso formalism.

bool has_gr_mhd; // Run with general relativistic source terms (general relativistic magnetohydrodynamics equations).
double gr_mhd_gas_gamma; // Adiabatic index for general relativistic magnetohydrodynamics equations.

Expand Down
22 changes: 22 additions & 0 deletions moments/apps/mom_coupling.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,28 @@ moment_coupling_init(const struct gkyl_moment_app *app, struct moment_coupling *
}
}

src_inp.has_vacuum_einstein_sources = false;
for (int i = 0; i < app->num_species; i++) {
if (app->species[i].has_vacuum_einstein) {
src_inp.has_vacuum_einstein_sources = true;

src_inp.vacuum_einstein_excision_threshold = app->species[i].vacuum_einstein_excision_threshold;
src_inp.vacuum_einstein_spacetime_slicing = app->species[i].vacuum_einstein_spacetime_slicing;
src_inp.vacuum_einstein_spacetime_evolution = app->species[i].vacuum_einstein_spacetime_evolution;
}
}

src_inp.has_vacuum_einstein_conformal_sources = false;
for (int i = 0; i < app->num_species; i++) {
if (app->species[i].has_vacuum_einstein_conformal) {
src_inp.has_vacuum_einstein_conformal_sources = true;

src_inp.vacuum_einstein_conformal_excision_threshold = app->species[i].vacuum_einstein_conformal_excision_threshold;
src_inp.vacuum_einstein_conformal_spacetime_slicing = app->species[i].vacuum_einstein_conformal_spacetime_slicing;
src_inp.vacuum_einstein_conformal_spacetime_evolution = app->species[i].vacuum_einstein_conformal_spacetime_evolution;
}
}

// save the use-rel bool
src_inp.use_rel = use_rel;

Expand Down
20 changes: 20 additions & 0 deletions moments/apps/mom_species.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,26 @@ moment_species_init(const struct gkyl_moment *mom, const struct gkyl_moment_spec
sp->gr_twofluid_e_fact = mom_sp->gr_twofluid_e_fact;
}

sp->has_vacuum_einstein = false;
if (mom_sp->has_vacuum_einstein) {
sp->update_sources = true;
sp->has_vacuum_einstein = true;

sp->vacuum_einstein_excision_threshold = mom_sp->vacuum_einstein_excision_threshold;
sp->vacuum_einstein_spacetime_slicing = mom_sp->vacuum_einstein_spacetime_slicing;
sp->vacuum_einstein_spacetime_evolution = mom_sp->vacuum_einstein_spacetime_evolution;
}

sp->has_vacuum_einstein_conformal = false;
if (mom_sp->has_vacuum_einstein_conformal) {
sp->update_sources = true;
sp->has_vacuum_einstein_conformal = true;

sp->vacuum_einstein_conformal_excision_threshold = mom_sp->vacuum_einstein_conformal_excision_threshold;
sp->vacuum_einstein_conformal_spacetime_slicing = mom_sp->vacuum_einstein_conformal_spacetime_slicing;
sp->vacuum_einstein_conformal_spacetime_evolution = mom_sp->vacuum_einstein_conformal_spacetime_evolution;
}

sp->has_gr_mhd = false;
if (mom_sp->has_gr_mhd) {
sp->update_sources = true;
Expand Down
Loading
Loading