Skip to content

WIP: ODE solution in c++

Santiago Ospina De Los Ríos requested to merge feature/ode-in-c++ into master

What does this MR do?

This MR creates another launcher for dorie, dorie run_richards_ode config.ini. Specifically, this executable solves the stationary Richards equation in vertical tubes with the Runge-Kutta method of order 4 and maps the solution to the given grid in the inifile. Since solutions are solved in vertical tubes, they are only comparable to the DG solution if the medium is homogeneous or horizontally layered and if the DG solution has reached its equilibrium point.

  • The grid does not take part in the computation of the ODE solution.
  • Size of the tubes can be controlled with the keywords [_ode.dx] and [_ode.dy].
  • Vertical discretization can be controlled with the keyword [_ode.dz].
  • THe default resolution [dx,dy,dz] is grid.extension[i]/50.
  • This launcher is done so that dorie run can be interchanged for dorie run_richards_ode using the same inifile.
  • This MR is not important by itself since this job can be achieved by the current ode.py. However, it's important in order to test the transport solver !73 (closed) with a cheap and continuous solution.
  • The matric head and the fluxed are provided in form of a grid function so that they can mimic solutions of PDELab results.
  • To test this MR, it is enough to compare the current ode mini files with respect to the current ode.py solver.

Is there something that needs to be double checked?

  • The keyword _test_command = run_richards_ode in tests seems to be testing dorie run instead of dorie run_richards_ode. I tried to replicate what I did in !73 (closed), but is not working and I have no clue why.
  • Where is a good place to document this feature, and following which style?

Can this MR be accepted?

  • Implemented
  • Added test
  • Pipeline passing
  • Documented
  • Added entry to CHANGELOG.md

Related issues

!73 (closed)

Edited by Santiago Ospina De Los Ríos

Merge request reports