- Oct 01, 2024
-
-
Florian Atteneder authored
dg1d: make time step choices consistent across projects (!228) Update time step computations in `ScalarEq, EulerEq, SRHD, GRHD` to match the one given in the thesis.
-
- Sep 25, 2024
-
-
Florian Atteneder authored
GRHD: More parameters for convex hull limiter (!227) Follow up to !225 This adds two more parameters to the `GRHD` section: - `limiter_tci_method`: the `TCI` method with which we sense smoothness of the conserved variables - `limiter_tci_threshold`: the threshold value above an indicator value of the `TCI` triggers the limiter
-
- Sep 13, 2024
-
-
Florian Atteneder authored
dg1d: use separate CallbackTimings for separate callbacks (!226) Our CallbackTimings ensure that only forward progress is made. When the same timing is shared by multiple callbacks, e.g. one for 0d and one for 1d output, then firing for 0d prevents firing for 1d.
-
- Sep 10, 2024
-
-
Florian Atteneder authored
Limiter: factor out convex hull limiter logic (!225) for convenience for making plots
-
Florian Atteneder authored
GRHD: impose atmosphere when momentum admissibility condition is violated (!224) The condition is from arXiv:1306.4953 where they suggest to rescale the momemtum to fix this. I think that rescaling is as ambiguous as resetting to atmosphere. I decided to to the latter now as this is how I wrote it up in the thesis.
-
Florian Atteneder authored
Only implemented for `spherical1d`. Works somehow, but results are not comparable to FV+TVB method.
-
- Sep 09, 2024
-
-
Florian Atteneder authored
CallbacksTiming: add `always_on` option (!222) If `always_on=true` then this always fires, but the timer's internal state is no longer updated!
-
- Sep 06, 2024
-
-
Florian Atteneder authored
- Collect most of the limiter implementations into `limiters.jl` (there still remain bits in `ScalarEq`) - Add new limiter `limit_slope_preserve_continuity!` that is tailored towards the Bspline approximation (although its not working well) - Add new limiter `limit_slope_convex_hull!` that is tailored towards the Bspline approximation - Add new reftests `burgers_sine_bspline1_limit_slope_convex_hull` and ``burgers_sine_bspline2_limit_slope_convex_hull` - Fix Bspline integration
-
- Aug 29, 2024
-
-
Florian Atteneder authored
dg1d: Teach `MeshInterpolator` how to deal with different DG kinds (!220)
-
Florian Atteneder authored
This is a new caching mechanism which should be used for small temporary arrays.
-
Florian Atteneder authored
The only notable change is the use use of the Lagrange derivative matrix for all DG kinds. That's done because not all DG kinds have the derivative defined on their nodal points (`:modal_bspline1`).
-
Florian Atteneder authored
TCI: tci's should setup their own vandermonde matrices (!217)
-
- Aug 23, 2024
-
-
Florian Atteneder authored
ScalarEq: Implement modal Bspline1 DG evolution (!216) Similar to !213 Same caveats apply, e.g. no HRSC working etc.
-
Florian Atteneder authored
Continuation of !210 This adds a dispatch type `Bspline1` similar to `Bspline2`. Based on this we implement the necessary method to be able to use it in `DGElement`. I also fixed a subtle bug in the quadrature rules I used in some of the `Bspline` methods. That is, I accidentally used a LG rule with `Npts=2`, which corresponds to a `N=Npts-1=1` order rule that is exact for polynomials up to `2*N=2` order. But for `Bspline2` we encounter fourth order polynomials, so we should be using `Npts=3`. Also adds a new option to the `Mesh` parameters section: * `kind = "modal_bspline1"`: Utilize a 1st order modal Bspline Ansatz for the DG evolution.
-
- Aug 20, 2024
-
-
Florian Atteneder authored
IntegrationTests: compactify test results summary (!214)
-
Florian Atteneder authored
ScalarEq: Implement modal Bspline2 DG evolution (!213) Similar to !207, but using the new 2nd order Bspline basis. Currently supports only bare evolutions and no HRSC etc. Also: This is a quasi-nodal Ansatz similar to the Bernstein Ansatz, i.e. it is not interpolating, but the modal coefficients are related to some sampling of the data on the grid. This means that one has to sum the modal coefficients onto the grid to obtain the nodal values, which can be done with `interpolate` or a Vandermonde matrix. Atm this is not consistently done in the ScalarEq project, hence, care needs to be examined when interpreting results!
-
- Aug 19, 2024
-
-
Florian Atteneder authored
This adds multiple things: - A `Bspline` module for working with 2nd order Bsplines. - Extends `DGElement` with the `kind=:modal_bspline2` option. - Updates docstrings and refactors some tests. - Adds a `LG` module for Legendre-Gauss quadrature. - Adds a plotting script `plot/bspline.jl` to tinker with the `Bspline2` approximation. Also adds a new option to the `Mesh` parameters section: - `kind = "modal_bspline2"`: Utilize a 2nd order modal Bspline Ansatz for the DG evolution.
-
Florian Atteneder authored
CI: try to reuse precompilation cache at least for IntegrationTests (!212)
-
Florian Atteneder authored
dg1d: Fix convention for Bernstein polynomials (!211) We now establish the convention that all basis functions are indexed by one. Also had to update the `modal_bernstein_advection_sine` reftest data, because !201 skipped running CI on main and me cancelling some other CI runs.
-
- Aug 14, 2024
-
-
Florian Atteneder authored
We require that all PRs are rebased before merging, so running them twice does not help anything. This should free up the CI queue.
-
Florian Atteneder authored
ScalarEq: Implement modal Bernstein DG evolution (!207) MWE to check consistency of operators. This is not intended to work with any HRSC schemes or 2d etc.
-
Florian Atteneder authored
dg1d: Rename `SpectralElement` to `DGElement` and generalize its purpose (!206) Generalization should allow it represent DG operators that are not necessarily based on nodal approximations via Lagrange polynomials. Atm we implement the `nodal_bernstein` version, which is actually pseudo-nodal and not yet tested. Will be done in a follow-up PR. Along the way we also implement some operators for Bernstein and Legendre bases.
-
- Aug 13, 2024
-
-
Florian Atteneder authored
tests: add kw only_failed to `runtests` command (!205)
-
Florian Atteneder authored
Unify interface for LGL and GLGL rules and update `SpectralElement` accordingly: - most routine should just work with one argument `Npts` - add more doc strings - remove unused methods `linear_dependency_matrix` and `expansion_matrix` - remove unused fields of `SpectralElement`
-
Florian Atteneder authored
GRHD: fix another edge case where c2p_set_atmosphere_on_failure should overrule (!203)
-
- Aug 12, 2024
-
-
Florian Atteneder authored
dg1d: substep callbacks have to be evolved after updating the solution (!202)
-
Florian Atteneder authored
dg1d: update `lgl` and `glgl` integration methods (!201) - put the integrand as the first argument - add integration methods that can work with a function argument - add doc strings - update usage of `integrate` functions in rest of code
-
Florian Atteneder authored
GRHD: fix atmosphere freezing and evolution logic (!199) Fixes the following issues with the current implementation: - `update_atm_domain_of_dependence!` did not distinguish between points 1. whose neighbors are also in the bulk, 2. where one neighbor is on an interface, 3. where the point itself is on an interface. These cases are already properly handled in 2d. - `stop_atmosphere_evolution_*` methods did not account for the `c2p_freeze_atm` flag, which essentially prevented the atmosphere to ever evolve. - `update_atm_domain_of_dependence!` was activated by setting `c2p_dynamical_atm`, but it should be controlled by `c2p_enforce_causal_atm` --- Additional fixes with less impact: - remove unused parameter `id_atmosphere_density` from `GRHD` section - `c2p_set_atmosphere_on_failure` should really suppress any errors appearing in the cons2prim
-
- Aug 08, 2024
-
-
Florian Atteneder authored
-
- Aug 07, 2024
-
-
Florian Atteneder authored
I am surprised that I did not need this before. This is intentionally a hacky implementation as I just need that for the thesis right now. --- This also implements - the total rest-mass computation for the GRHD project as a first application, - adds helper functions for the `Output` struct to read all data at once.
-
- Aug 06, 2024
-
-
Florian Atteneder authored
Fixup to !193
-
Florian Atteneder authored
GRHD: add tov symmetrization for all DG rhs' that use the spherical1d (!195)
-
Florian Atteneder authored
dg1d: make `main` accept paths to output directories (!196)
-
- Aug 05, 2024
-
-
Florian Atteneder authored
dg1d: do not strip trailing newline chars as this might corrupt git patches (!194)
-
Florian Atteneder authored
dg1d: allow parameter overriding on cmd line (!193) Allows to use `main(parfile, "Mesh.n" => "1")` to override the value given in the parfile. --- To do this we - parse the TOML file - flatten the dict-of-dicts to a single dict with the keys joined by a `.` - insert the parameters - unflatten the dict to a dict-of-dicts - write this to the output directory Unfortunately, `TOML.jl` does not allow to parse into `OrderedDict`. This causes the newly written parfiles to be messed up. Furthermore, by manually re-writing the parfiles we also do not preserve any comments or formatting.
-
Florian Atteneder authored
dg1d: Avoid generating nested output folders in case parameter file comes from inside an output folder (!192)
-
Florian Atteneder authored
-
- Jul 25, 2024
-
-
Florian Atteneder authored
GRHD: add toggle to allow AV to sense based on the log10 of the variable (!190) Adds a new parameter to the `GRHD` section: - `av_sensor_logabs_D`: If `true` apply the AV sensor to `log(|D|)`, otherwise use `D`, where `D` is the state variable for the rest-mass density (including the volume factor).
-
Florian Atteneder authored
Evolve: align stepper logic between all ERK implementations (!189) This assumes that the first row in the `a` matrix of the Butcher tableau for ERK methods has only zeros, which seems to be the case for the all the methods have atm. --- Problem explanation: So far the LSERK4 and the remaining ERK steppers worked slightly different. The former used for the first substep the initial data array `u0`, and `u!` for the remaining steps. That shortcut avoids a copy and appears natural for the LSERK4 algorithm. OTOH, in the ERK stepper we first copy `u0` into `u!`, then accumulate some substep `k`s into `u!`, and then call the RHS with `u!`. (the reason we always copied `u0` over was that we did not account for the above assumption on `a` before) The problem was now that in the GRHD evolutions we sometimes alter the state vector in the RHS computation. This influenced the results to the extent that we could not run the (newly added) reftest only with the LSERK4 method. What was happening was that when using the ERK method we never altered `u0` directly, only `u!`, whereas `u0` was altered in case the GRHD RHS decided to do so on the first step. Subsequent substeps of the ERK method depend upon `u0`, and so this broke things.
-
- Jul 22, 2024
-
-
Florian Atteneder authored
GRHD: ban `ParameterDB` usage from `rhs` due to type instabilities (!188)
-