Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
beb9f1a
- Initial commit, working on make a generic read_netcdf_quadtree_gene…
Leynse Feb 4, 2026
68e1493
- Working version for storage volume nc with fixed mapping to SFINCS …
Leynse Feb 4, 2026
245c1a1
- Add error when wanted variable was not found in file and directly stop
Leynse Feb 4, 2026
d3db40e
- Add netinfiltrationfile, netinftype variables
Leynse Feb 4, 2026
4353274
- Implement netcdf reader option for all infiltration options
Leynse Feb 4, 2026
378e27e
- Add stop_sfincs check on combination check of infiltration input ty…
Leynse Feb 4, 2026
a2f67b4
- Constant uniform infiltration is allowed for both grid types
Leynse Feb 4, 2026
c654c00
- Edit check - still possible that precip is forced but qinf=0
Leynse Feb 4, 2026
36a5aa8
- Change names to infiltrationfile and infiltrationtype
Leynse Feb 12, 2026
30a0cb6
- Move whole subroutine 'initialize_infiltration' from sfincs_domain.…
Leynse Feb 12, 2026
0dc0720
- Add check whether specified infiltrationtype is correct
Leynse Feb 12, 2026
2a1a974
- Added version for reading in netcdf quadtree manningfile (#271)
Leynse Mar 6, 2026
29a145c
Merge branch '268-make-generic-quadtree-nc-input-reader' of https://g…
Leynse Mar 6, 2026
167387b
- Bump date
Leynse Mar 6, 2026
a0ed4a0
Progress with redoing continuity logic, adding new infiltration flavo…
keesnederhoff Mar 18, 2026
cf6a78d
Included more output options
keesnederhoff Mar 20, 2026
3300914
- clean repo
Leynse Mar 24, 2026
fe8cf95
Merge branch 'redo_infiltration' of https://github.com/Deltares/SFINC…
Leynse Mar 24, 2026
bb61661
submit progress
keesnederhoff Mar 26, 2026
8c91945
Merge branch 'redo_infiltration' of https://github.com/Deltares/SFINC…
keesnederhoff Mar 26, 2026
f1c425b
included loss function in bucket model
keesnederhoff Mar 31, 2026
2a07fe8
ongoing progress
keesnederhoff Apr 15, 2026
a5a25df
Merge branch 'main' into redo_infiltration
maartenvanormondt Apr 15, 2026
462dfd1
Merge branch 'redo_infiltration' of https://github.com/Deltares/SFINC…
maartenvanormondt Apr 15, 2026
a7dde24
Split src-point structures into new module
maartenvanormondt Apr 16, 2026
1831c3c
Add optional river discharge output and interpolation
maartenvanormondt Apr 16, 2026
d5abd82
Add toml-f and TOML src_structure parsing
maartenvanormondt Apr 16, 2026
ba0ee38
Move src-structure state into sfincs_src_structures
maartenvanormondt Apr 17, 2026
5bfd430
Add rule-expression module and integrate structures
maartenvanormondt Apr 17, 2026
0413dbb
Support TOML structures, gate state & legacy conversion
maartenvanormondt Apr 18, 2026
2472672
Refactor river discharge and source-structure state
maartenvanormondt Apr 18, 2026
29937f2
Implement TOML drainage structures and gates
maartenvanormondt Apr 18, 2026
098a2cc
Clarify structure state machine and rule syntax
maartenvanormondt Apr 18, 2026
5b582ab
Clarify discharge argument for drainage structures
maartenvanormondt Apr 18, 2026
1e62ee0
Merge branch 'redo_infiltration' into urban_drainage
maartenvanormondt Apr 19, 2026
a99fd78
refactor(timers): extract wall-clock timing into sfincs_timers module
maartenvanormondt Apr 19, 2026
3352f36
Extract screen output into sfincs_screendump
maartenvanormondt Apr 19, 2026
5f6f986
Merge branch 'timers' into timers_screendump
maartenvanormondt Apr 19, 2026
8e6aa1e
Merge branch 'screendump' into timers_screendump
maartenvanormondt Apr 19, 2026
95cb125
refactor(screendump): move progress and run-finished blocks to sfincs…
maartenvanormondt Apr 19, 2026
5a0dbb6
chore: ignore docs/_build sphinx output
maartenvanormondt Apr 19, 2026
95dc9b4
Relocate SnapWave timing and update build info
maartenvanormondt Apr 19, 2026
91b2443
Merge branch 'timers_screendump' into urban_drainage
maartenvanormondt Apr 19, 2026
c079620
Refactor continuity: accumulate qsrc and add structures
maartenvanormondt Apr 19, 2026
5e9b65a
refactor(log): fold sfincs_screendump into sfincs_log
maartenvanormondt Apr 19, 2026
5151a69
refactor(log,timers): break circular dep + earlier session formatting…
maartenvanormondt Apr 19, 2026
3b2c040
fix(timers): adopt omp_get_wtime(); widen legacy 32-bit timer helpers
maartenvanormondt Apr 19, 2026
e11f6c0
Refactor sfincs_continuity; improved timers (thanks Ocean Ledger!)
maartenvanormondt Apr 19, 2026
d3c5723
Add urban drainage module and integrate
maartenvanormondt Apr 19, 2026
10cf009
Add urban drainage docs and docs cleanup
maartenvanormondt Apr 19, 2026
7304f49
Refactor discharges/drainage and normalize timers
maartenvanormondt Apr 19, 2026
04edc98
Refactor sfincs_input parser and docs
maartenvanormondt Apr 19, 2026
56b59f7
Add generic get_keyword API and legacy aliases
maartenvanormondt Apr 19, 2026
0bf44f2
Add store_maximum_waterlevel keyword
maartenvanormondt Apr 19, 2026
0b7b94e
Add injection-well support to urban drainage
maartenvanormondt Apr 19, 2026
68193cf
Use coordinate-pair arrays for structures
maartenvanormondt Apr 20, 2026
db16b66
Support outfall=[x,y] and add fmt_real logging
maartenvanormondt Apr 20, 2026
d0a8c3e
Rename input keyword to output_on_quadtree_mesh
maartenvanormondt Apr 20, 2026
b775dfe
Refactor source-structure names & logic
maartenvanormondt Apr 21, 2026
6b52759
Add comparison ops and whitespace handling
maartenvanormondt Apr 21, 2026
9750ff0
make sure his file is updated correctly
vanasseltk Apr 22, 2026
ea901ab
Align structure log output formatting
maartenvanormondt Apr 23, 2026
0bd291e
Merge branch 'urban_drainage' of https://github.com/Deltares/SFINCS i…
maartenvanormondt Apr 23, 2026
642b1fc
Dike breaching module in urban drainage
vanasseltk Apr 28, 2026
a87a934
Support external dzbext and dynamic zb output
maartenvanormondt Apr 29, 2026
ccacf95
do not allow for dike breach widening in opposite direction
vanasseltk Apr 29, 2026
287675c
more descriptive variables
vanasseltk Apr 30, 2026
f5215d3
Delete source/sfincs/sfincs.vfproj.asselt.user
Leynse May 6, 2026
7da7f54
Delete source/sfincs_lib/sfincs_lib.vfproj.asselt.user
Leynse May 6, 2026
f82897e
Delete source/sfincs/sfincs.log
Leynse May 6, 2026
66ec2f9
Delete source/sfincs/sfincs.vfproj.keesn.user
Leynse May 6, 2026
5013af3
Delete source/sfincs_lib/sfincs_lib.vfproj.keesn.user
Leynse May 6, 2026
e304ba1
Merge branch 'urban_drainage' of https://github.com/Deltares/SFINCS i…
vanasseltk May 26, 2026
6d2e16c
Add ifx Dockerfile and z1-z2 atom support
maartenvanormondt May 26, 2026
ee41c34
Interruptible transitions and gate-fraction output
maartenvanormondt May 27, 2026
d4ac3aa
commits file changes
vanasseltk Jun 3, 2026
a553310
Merge branch 'urban_drainage' of https://github.com/Deltares/SFINCS i…
vanasseltk Jun 3, 2026
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
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,16 @@ source/third_party_open/netcdf/x64
source/sfincs/sfincs.opt.yaml
/source/sfincs_lib/*.yaml
/source/third_party_open/netcdf/netcdf-fortran-4.6.1/Debug

# Local Claude Code agents / settings (not shared with co-developers)
.claude/
# Sphinx build output
/docs/_build
/source/build_nvfortran_gpu_h7.sh
/source/build_nvfortran_gpu.sh
/source/Singularityfile-gpu.def
/source/Dockerfile.xpu
/source/Dockerfile.gpu.update01
/source/Dockerfile.gpu.test
/source/Dockerfile.gpu.25.5.ccall
/source/Dockerfile.gpu
5 changes: 3 additions & 2 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,11 @@ The SFINCS team also includes Koen van Asselt, Tycho Bovenschen, Ap van Dongeren
:maxdepth: 3
:hidden:
:caption: User manual:

input
input_forcing
input_structures
input_structures
input_urban_drainage

.. toctree::
:maxdepth: 3
Expand Down
70 changes: 62 additions & 8 deletions docs/input.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
User manual - general
=====
General
=======

Overview
-----
Expand Down Expand Up @@ -359,14 +359,37 @@ SFINCS allows the specification of the following options for accounting for infi
3. The Curve Number method: empirical rainfall-runoff model
4. The Green-Ampt method: empirical rainfall-runoff model
5. The Horton infiltration method
6. The bucket model: linear reservoir with losses

Infiltration is specified with either constant in time values in mm/hr (both uniform and spatially varying), or using more detailed parameters for the Curve Number method, The Green-Ampt method or Horton method.
Spatially uniform infiltration is still specified directly in sfincs.inp with ``qinf``. All modern spatially varying infiltration and bucket-model input should be provided through ``infiltrationfile`` together with ``infiltrationtype``. The older binary keywords (``qinffile``, ``scsfile``, ``smaxfile``, ``sefffile``, ``ksfile``, ``psifile``, ``sigmafile``, ``f0file``, ``fcfile`` and ``kdfile``) remain available for backward compatibility only and should be removed in a future cleanup.

**NOTE - Infiltration in SFINCS is only turned on when any rainfall is forced**

**NOTE - Infiltration methods in SFINCS are not designed to be stacked**


NetCDF infiltration input (recommended):
%%%%%

For all spatially varying infiltration methods the recommended interface is:

.. code-block:: text

infiltrationfile = sfincs.infiltration.nc
infiltrationtype = c2d | cna | cnb | gai | hor | bkt

The required variables in ``infiltrationfile`` depend on ``infiltrationtype``:

* ``c2d``: ``qinf``
* ``cna``: ``scs``
* ``cnb``: ``smax``, ``seff``, ``ks``
* ``gai``: ``psi``, ``sigma``, ``ks``
* ``hor``: ``f0``, ``fc``, ``kd``
* ``bkt``: ``bucket_smax``, ``bucket_k``, ``bucket_loss``

The older separate binary infiltration keywords are still supported for backward compatibility only. The former separate inputs ``bucketfile`` and ``bucket_loss_frac`` have been removed; for the bucket model, all required variables must now be present in ``infiltrationfile``.


Spatially uniform constant in time:
%%%%%

Expand All @@ -383,7 +406,7 @@ Specify the keyword:
Spatially varying constant in time:
%%%%%

For spatially varying infiltration values per cell use the qinffile option, with the same grid based input as the depfile using a binary file.
For spatially varying infiltration values per cell use ``infiltrationfile`` with ``infiltrationtype = c2d``. The ``qinffile`` option below is kept for backward compatibility only and should be removed in a future cleanup.

**qinffile = sfincs.qinf**

Expand Down Expand Up @@ -426,7 +449,7 @@ where Smax = the soil's maximum moisture storage capacity. Smax typically derive

**Without recovery**

For spatially varying infiltration values per cell using the Curve Number method without recovery use the scsfile option, with the same grid based input as the depfile using a binary file. Note here that in pre-processing the wanted CN values should be converted to S values following:
For spatially varying infiltration values per cell using the Curve Number method without recovery use ``infiltrationfile`` with ``infiltrationtype = cna``. The ``scsfile`` option below is kept for backward compatibility only and should be removed in a future cleanup. Note here that in pre-processing the wanted CN values should be converted to S values following:
* scsfile: maximum soil moisture storage capacity in inches

.. code-block:: text
Expand Down Expand Up @@ -458,7 +481,7 @@ This option doesn't support restart functionality.

**With recovery**

Within SFINCS, the Curve number method with recovery can be used as follows. The user needs to provide the following variables. For all variables, one needs to specify these values per cell with the same grid based input as the depfile using a binary file:
Within SFINCS, the Curve number method with recovery is preferably supplied through ``infiltrationfile`` with ``infiltrationtype = cnb``. The separate binary files listed below are kept for backward compatibility only. For all variables, one needs to specify these values per cell with the same grid based input as the depfile using a binary file:

* smaxfile: maximum soil moisture storage capacity in m
* sefffile: soil moisture storage capacity at the start in m
Expand Down Expand Up @@ -498,7 +521,7 @@ The basic form of the Green-Ampt equation is expressed as follows:

In which t is time, K is the saturated hydraulic conductivity, delta_theta is defined as the soil capacity (the difference between the saturated and initial moisture content) and sigma is the soil suction head.

Within SFINCS, the Green-Ampt method can be used as follows. The user needs to provide the following variables. For a range of typical values see Table 1. For all variables, one needs to specify these values per cell with the same grid based input as the depfile using a binary file:
Within SFINCS, the Green-Ampt method is preferably supplied through ``infiltrationfile`` with ``infiltrationtype = gai``. The separate binary files listed below are kept for backward compatibility only. For a range of typically values see Table 1. For all variables, one needs to specify these values per cell with the same grid based input as the depfile using a binary file:

* ksfile: saturated hydraulic conductivity in mm/hr
* sigmafile: soil moisture deficit in [-]
Expand All @@ -522,7 +545,7 @@ The basic form of the Horton equation is expressed as follows:

In which f_t is the infiltration rate at time, f_c is the final, constant infiltration rate, f_0 is the initial infiltration rate, k is a decay constant and t is the time since the start of infiltration.

Within SFINCS, the Horton method can be used as follows. The user needs to provide the following variables. For all variables, one needs to specify these values per cell with the same grid based input as the depfile using a binary file:
Within SFINCS, the Horton method is preferably supplied through ``infiltrationfile`` with ``infiltrationtype = hor``. The separate binary files listed below are kept for backward compatibility only. For all variables, one needs to specify these values per cell with the same grid based input as the depfile using a binary file:

* f0file: maximum (Initial) Infiltration Capacity in mm/hr
* fcfile: Minimum (Asymptotic) Infiltration Rate in mm/hr
Expand All @@ -533,6 +556,37 @@ The recovery of the infiltration rate during dry weather (kr) is calculated as f
This option also supports restart functionality.


The bucket model:
%%%%%

The bucket model is a linear-reservoir representation of infiltration and losses. It is configured with:

.. code-block:: text

infiltrationfile = sfincs.infiltration.nc
infiltrationtype = bkt

The ``infiltrationfile`` must contain the following variables:

* ``bucket_smax``: maximum bucket storage in mm
* ``bucket_k``: drainage coefficient in 1/hr
* ``bucket_loss``: loss fraction in the range 0-1

The former separate inputs ``bucketfile`` and ``bucket_loss_frac`` are no longer supported.


Drainage mimic:
%%%%%

Drainage mimic is configured separately from infiltration and now only supports ``drainagefile``:

.. code-block:: text

drainagefile = sfincs.drainage

This file may be a binary map or a NetCDF file containing ``drainage_rate`` in mm/hr. The former uniform ``qdrain`` keyword has been removed.


Storage volume
^^^^^

Expand Down
2 changes: 1 addition & 1 deletion docs/input_forcing.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
User manual - forcing
Forcing
=======

Overview
Expand Down
Loading