ner_tags: O O O O O O O O O B-Software I-Software O B-Citation I-Citation I-Citation I-Citation O O O O O O O O O B-Software O O O O O O O O B-Software O O O O O B-Software I-Software I-Software I-Software O O O O O B-Software O O O O O O O O O O B-Software O O O O O O O B-Formula I-Formula I-Formula I-Formula I-Formula O O O O O O O O O O O O O O B-Software I-Software O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B-Citation I-Citation I-Citation I-Citation I-Citation I-Citation O O O O O O O O O O O O O O O O O O O O O O O O O O O O B-Citation I-Citation I-Citation I-Citation O O O O O O O O O O O O O O O O O O O O O O O O B-Citation I-Citation I-Citation I-Citation I-Citation I-Citation O O O O O O O O O O O O B-Citation I-Citation I-Citation O O O O O B-Citation I-Citation I-Citation I-Citation O O O O O O O O O O O B-Model I-Model I-Model I-Model O O B-Citation I-Citation I-Citation I-Citation I-Citation I-Citation O O O O O O O O O O O O O O O O B-Formula I-Formula I-Formula I-Formula I-Formula I-Formula O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B-Citation I-Citation I-Citation I-Citation I-Citation I-Citation O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B-Model I-Model I-Model O O O O O O O O O O O O O O O O O O O O O O O O O O O O B-Software O O O O O O O O O O O O B-Model O O O O O O O O
tokens: variables to their conservative form and back (using the Newton–Raphson-based root-finder of Noble et al. 2006 for the conservatives-to-primitives step, as described next). The detailed Jupyter notebook used to generate needed GRHD equations in MANGA may be found in the NRPy+ github repo 4 or be viewed directly via nbviewer . 5 Before proceeding, we note two important points. Previously, MANGA used only cgs units, but for GR, G = c = 1 units are superior so the code was extended to support them. Second, although our MM code is limited to periodic boundary conditions, no boundary conditions are applied to the metric (as it is static and known), so there is no ‘periodic gravity.’ We simply ensure that the outer boundaries of our numerical domain are sufficiently far away from regions of interest, so that as outer (periodic) boundary conditions are applied to the hydrodynamic variables, they have little to no effect on the simulation. In future work, we may as needed adopt radiation inflow and outflow boundary conditions as described in Chang et al. ( 2020 ) to the hydrodynamic variables on the boundary, to produce arbitrary boundary conditions. We note that this implementation would be similar to the boundary conditions for a ‘sphered cube’ (Burns et al. 2020 ). 3.1 Time-stepping We time integrate equation ( 9 ) as follows: Estimate the Courant-limited time-step Δ t for each cell, as described in Chang et al. ( 2017 ). The time-step can either be an individual time-step in a multistep algorithm (Prust Chang 2019 ) or a global time-step (Chang et al. 2017 ). Estimate the half time-step state of the cell using the second-order van Leer scheme described in Chang et al. ( 2020 ). In brief, we solve the RHS of equation ( 9 ), but with the replacement of Δ t → Δ t /2 and use piecewise continuous reconstruction to get face values. We then solve for the fluxes following the methodology described next and include the source terms on a half-time-step. Drift the mesh generating points by a half-time-step and recompute the half-time-step tessellation to provide second order convergence in time (e.g. provide an estimate for ). Use the half-time-step states and use full linear reconstruction to derive face values to compute the half-time-step fluxes, (described next). Then, apply the full step including the source terms (using the half-step values), e.g. . Update the state of the cell to the full step. As stated in Chang et al. ( 2020 ), the use of the van Leer half-step prediction allows the source terms to be automatically included at second order. It also simplifies the code as the equations are only written once. Moreover, the van Leer method can be easily adapted to multistepping schemes as we have done here. The only change is that the half-time-step estimate must be taken from the cell’s initial state. MANGA was originally designed to reconstruct the conserved values at cell faces. For Newtonian codes, this is a reasonable choice, but modelling