Skip to content
Snippets Groups Projects
  1. Oct 01, 2024
  2. Sep 25, 2024
    • Florian Atteneder's avatar
      GRHD: More parameters for convex hull limiter... · 41df2865
      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
      41df2865
  3. Sep 13, 2024
  4. Sep 10, 2024
  5. Sep 09, 2024
  6. Sep 06, 2024
    • Florian Atteneder's avatar
      dg1d: Add limiters.jl (!221) · eeaf318b
      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
      eeaf318b
  7. Aug 29, 2024
  8. Aug 23, 2024
    • Florian Atteneder's avatar
      ScalarEq: Implement modal Bspline1 DG evolution... · 6c126e8f
      Florian Atteneder authored
      ScalarEq: Implement modal Bspline1 DG evolution (!216)
      
      Similar to !213
      
      Same caveats apply, e.g. no HRSC working etc.
      6c126e8f
    • Florian Atteneder's avatar
      dg1d: Add Bsplines1 (!215) · cb7c756e
      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.
      cb7c756e
  9. Aug 20, 2024
    • Florian Atteneder's avatar
      IntegrationTests: compactify test results summary... · 0ff6f2b0
      Florian Atteneder authored
      IntegrationTests: compactify test results summary (!214)
      0ff6f2b0
    • Florian Atteneder's avatar
      ScalarEq: Implement modal Bspline2 DG evolution... · 8cf7196c
      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!
      8cf7196c
  10. Aug 19, 2024
    • Florian Atteneder's avatar
      dg1d: Add Bsplines (!210) · 909e3d50
      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.
      909e3d50
    • Florian Atteneder's avatar
      CI: try to reuse precompilation cache at least for IntegrationTests... · 4abcff88
      Florian Atteneder authored
      CI: try to reuse precompilation cache at least for IntegrationTests (!212)
      4abcff88
    • Florian Atteneder's avatar
      dg1d: Fix convention for Bernstein polynomials... · cd4a82d6
      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.
      cd4a82d6
  11. Aug 14, 2024
  12. Aug 13, 2024
  13. Aug 12, 2024
    • Florian Atteneder's avatar
      dg1d: substep callbacks have to be evolved after updating the solution... · e13a40a8
      Florian Atteneder authored
      dg1d: substep callbacks have to be evolved after updating the solution (!202)
      e13a40a8
    • Florian Atteneder's avatar
      dg1d: update `lgl` and `glgl` integration methods... · 1d78c8f6
      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
      1d78c8f6
    • Florian Atteneder's avatar
      GRHD: fix atmosphere freezing and evolution logic... · e2b1a670
      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
      e2b1a670
  14. Aug 08, 2024
  15. Aug 07, 2024
    • Florian Atteneder's avatar
      dg1d: add lazy integrator (!198) · 6fe04532
      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.
      6fe04532
  16. Aug 06, 2024
  17. Aug 05, 2024
  18. Jul 25, 2024
    • Florian Atteneder's avatar
      GRHD: add toggle to allow AV to sense based on the log10 of the variable... · 54071f65
      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).
      54071f65
    • Florian Atteneder's avatar
      Evolve: align stepper logic between all ERK implementations... · 22ea568b
      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.
      22ea568b
  19. Jul 22, 2024
Loading