# Delft3D FM idealized delta model — Q1 static vegetation and Q1 no vegetation

D-Flow FM (DIMR) input decks for two of the nine scenarios in:

> Jean Louis, M., Dijkstra, J., Quirk, T., Rovai, A., Willemsen, P., Hiatt, M.
> (2026). The role of seasonal vegetation dynamics in shaping river delta
> channel networks and morphodynamics. \\\*Geomorphology\\\* \\\*\\\*506\\\*\\\*, 110327.
> https://doi.org/10.1016/j.geomorph.2026.110327

Specifically the **Q1 – static vegetation** and **Q1 – No vegetation** rows of
Table 3, at a constant upstream discharge of 1500 m³/s.

Both decks are complete and self-contained. Each runs from its own folder with
no external dependencies and no absolute paths.

**The two decks share one base setup.** Grid, bathymetry, boundary conditions,
sediment, morphology and every numerical setting are byte-identical between
them. The only difference is a single switch in the MDU:

```
$ diff Q1\\\_static\\\_vegetation/dflowfm/FlowFM.mdu Q1\\\_no\\\_vegetation/dflowfm/FlowFM.mdu
244c244
< Vegetationmodelnr                 = 1    # Vegetation model nr, (0=no, 1=Baptist DFM)
---
> Vegetationmodelnr                 = 0    # Vegetation model nr, (0=no, 1=Baptist DFM)
```

\---

## 1\. Contents

```
.
├── README.md                          this file
├── scenarios/
│   ├── Q1\\\_static\\\_vegetation/          Vegetationmodelnr = 1
│   │   ├── dimr\\\_config.xml            run this
│   │   └── dflowfm/                   complete D-Flow FM input deck
│   └── Q1\\\_no\\\_vegetation/              Vegetationmodelnr = 0, otherwise identical
│       ├── dimr\\\_config.xml
│       └── dflowfm/
├── vegetation\\\_parameters/
│   ├── README.md                      how the vegetation traits were set
│   ├── veg\\\_constants.json             species trait database (4 species)
│   └── veg\\\_constants.py               loader (NBSDynamics VegetationConstants)
├── provenance/
│   └── dimr\\\_redirected.log            DIMR log of the production run
└── postprocessing/
    ├── Animations\\\_Matt.m              MATLAB visualization of map output
    └── Wind\\\_Wave.m                    MATLAB wind/wave forcing utility
```

Model output (map/his/rst NetCDF) is not included; see §6.

\---

## 2\. How the static vegetation is implemented

Two ingredients only. No coupled vegetation model, no growth, colonization or
mortality — the vegetation fields are fixed in space and constant in time.

**(a) Turn Baptist on in the MDU.** In `dflowfm/FlowFM.mdu`:

```
\\\[veg]
Vegetationmodelnr = 1     # 0 = no vegetation, 1 = Baptist DFM
Clveg             = 0.8   # stem distance factor
Cdveg             = 0.7   # stem drag coefficient
```

This activates the Baptist et al. (2007) roughness formulation, Eq. (1) of the
article.

**(b) Link the external vegetation file.** Also in the MDU:

```
ExtForceFile = veg\\\_wld.ext
```

`dflowfm/veg\\\_wld.ext` supplies the three fields Baptist needs, at the values
given in §2.5 of the article:

|QUANTITY|FILENAME|FILETYPE|METHOD|OPERAND|VALUE|
|-|-|-:|-:|-|-:|
|`stemdensity`|`veg\\\_wld.pol`|10|4|`O`|40|
|`stemdiameter`|`veg\\\_wld.pol`|10|4|`O`|0.01|
|`stemheight`|`veg\\\_wld.pol`|10|4|`O`|0.3|

`FILETYPE = 10` (`inside\\\_polygon`) with `METHOD = 4` (spatial only, inside
polygon) assigns each field a spatially uniform, temporally constant value
everywhere inside `veg\\\_wld.pol` and zero outside. `dflowfm/veg\\\_wld.pol` is a
single closed polygon of 339 vertices covering the vegetated marsh platform,
spanning x = 850–6150 m, y = 1900–5050 m.

Units follow the D-Flow FM convention: stem density in stems m⁻², stem diameter
and stem height in m.

**In the no-vegetation deck, `Vegetationmodelnr = 0` and nothing else changes.**
`ExtForceFile = veg\\\_wld.ext` is still set and `veg\\\_wld.ext` and `veg\\\_wld.pol`
are still present, byte-identical to the static deck. With the model number at 0
the three fields are not applied, so the run is hydrodynamically and
morphodynamically vegetation-free. Keeping the files in place is deliberate: it
makes the one-line diff above the complete and auditable description of the
difference between the two scenarios. `Clveg` and `Cdveg` likewise remain in the
MDU and are inert.

### Relationship to the dynamic (NBSDynamics) scenarios

The article's Q1-NBSDynamics scenario uses **the same MDU settings shown above** —
`Vegetationmodelnr = 1` is required there too, because DFM still evaluates the
Baptist formulation. The difference is not in the MDU but in how the run is
launched:

* **Static** (this archive): DFM runs standalone under DIMR. `veg\\\_wld.ext`
supplies the three fields once, and they never change.
* **Dynamic**: the same MDU is launched from the NBSDynamics Python driver,
which overwrites stem density, diameter and height through BMI memory
pointers at the end of every ecological time step (1.5 hydrodynamic days = 15
morphological days, 24 ETS per morphological year). The `veg\\\_wld.ext` values
serve only as the initial condition.

The dynamic scenarios therefore require the NBSDynamics driver configuration in
addition to these files. This archive covers the static and no-vegetation cases.

\---

## 3\. Model setup

Common to both scenarios, cross-referenced to the article.

|||Article|
|-|-|-|
|Grid|`updated\\\_grid\\\_10\\\_07\\\_24\\\_v3\\\_net.nc` — 35,733 nodes, 35,628 faces, 71,360 edges|cell size 25–50 m, Table 1|
|Domain|idealized Cartesian, x 0–7000 m, y 50–7000 m; not geo-referenced|Fig. 1c|
|Bathymetry|`bathymetry\\\_cadwell\\\_v3.xyz` — 35,733 points, z −4.535 to 7.125 m|§2.2|
|Reference date|2001-01-01||
|`TStart` / `TStop`|0 / 31 536 000 s = 365 days|Table 2|
|`DtMax`|6 s|Table 2, hydrodynamic time step|
|`DtUser`|600 s|see note (b)|
|Upstream discharge|1500 m³/s, constant|Q1, §2.3, Fig. 3|
|Downstream water level|constant 0 m|§2.3, Table 1|
|Tides / waves|none|Table 3|
|Other boundaries|two Neumann (east, west), two tracers (`cTR1`, `dTR1`)||
|Suspended sediment at river boundary|none prescribed|§2.2|
|Bed friction|Manning, n = 0.023|Table 1|
|`Vicouv`|0.0001 m² s⁻¹|Table 1, background horizontal eddy viscosity|
|`Dicouv`|0.1 m² s⁻¹|Table 1, horizontal eddy diffusivity|
|`Smagorinsky`|0.2||
|Sand fraction|D50 250 µm, `RhoSol` 2650, `CDryB` 1600, `IniSedThick` 14 m|Table 1, §2.2|
|Mud fraction|`RhoSol` 2650, `CDryB` 500, `WS0`/`WSM` 0.001, `TcrEro` 2, `TcrSed` 1500, `EroPar` 5e-6, `IniSedThick` 6 m|Table 1|
|Erodible bed|20 m total, mud:sand 0.30:0.70|§2.2|
|`Cref`|1600 kg m⁻³|Table 1, reference density for hindered settling|
|`MorFac`|10|Table 1, Table 3|
|`SedThr`|0.1 m|Table 1, minimum depth for morphological calculations|
|`SecondaryFlow`|1||
|Age tracer|`age.sub`||
|Monitoring|8 observation points, 1 cross-section||

Morphological time span: 3650 days = 10 morphological years at `MorFac = 10`,
matching the article's 10-year analysis window.

Notes:

* **(a)** Table 1 gives the basin as 7500 × 7500 m. The mesh spans 0–7000 m in x
and 50–7000 m in y; the table figure is rounded to the nominal basin size.
* **(b)** `DtUser` is 600 s, the value the production runs used. Table 2 of the
article lists the morphodynamic time step as 1 min.
* **(c)** `Thresh` in `FlowFM.mor` is 0.01. It is a threshold sediment
*thickness* and is distinct from `SedThr`, the minimum water depth of Table 1.
* **(d)** `bathymetry\\\_cadwell\\\_v3.xyz` gives bed level at the 35,733 grid nodes,
while `BedlevType = 1` specifies bed level at cell centres, so D-Flow FM
interpolates on read.

\---

## 4\. How to run

Delft3D FM Suite / DIMR, D-Flow FM kernel **1.2.104.67016M** or compatible. The
MDU header records suite version 4.3.0.0 / kernel 1.2.110.67911M.

Windows:

```
cd scenarios\\\\Q1\\\_static\\\_vegetation
path\\\\to\\\\delft3d\\\\x64\\\\dimr\\\\scripts\\\\run\\\_dimr.bat dimr\\\_config.xml
```

Linux:

```
cd scenarios/Q1\\\_static\\\_vegetation
/path/to/delft3d/lnx64/bin/run\\\_dimr.sh -m dimr\\\_config.xml
```

Results are written to `dflowfm/output/`. The scenario folders are separate, so
the two runs do not collide. The static-vegetation run took roughly 30 hours
single-core on the original machine.

`dimr\\\_config.xml` carries no `processlibrary` setting, because the water-quality
process library is not used by these runs. Add one pointing at your own
`proc\\\_def.dat` if your installation requires it.

\---

## 5\. How this archive was assembled

The decks were extracted from the working model directories and normalized for
distribution. The changes:

1. **`dimr\\\_config.xml` rewritten.** The originals contained absolute Windows
paths pointing at working directories that did not match the folders they
shipped in. The replacements use relative paths (`workingDir = dflowfm`).
2. **Case fix in `FlowFM\\\_bnd.ext`.** It referenced `forcingFile=WaterLevel.bc`
while the file on disk is `Waterlevel.bc`. Harmless on Windows, fatal on
Linux.
3. **`OutputDir`** set to `output` in both scenarios, replacing a name left over
from a different run.
4. **Stale values corrected to the article.** Several working files carried
superseded values. These now match Tables 1–3 and §2.2–2.5: the downstream
boundary is constant zero rather than a leftover tidal timeseries;
`stemheight` is 0.3 m; `Dicouv` is 0.1; `Vicouv` is 0.0001; `SedThr` is 0.1;
mud `TcrEro` is 2 and `EroPar` is 5e-6; and the erodible bed is 14 m sand
plus 6 m mud, giving 20 m at 0.30:0.70.
**`Waterlevel.bc` written as two constant-zero forcing blocks**, named to
match the two points in `Waterlevel\\\_ds(ocean).pli`.
5. **`Vegetationmodelnr` set to 0** in `Q1\\\_no\\\_vegetation`. This is the
experimental variable and the only difference between the two decks.



## 6\. Not included

* Model output (`output/`, map/his/rst NetCDF).
* The seven other scenarios of Table 3: Q0 and Q2 at all three vegetation
conditions, and Q1-NBSDynamics.
* The NBSDynamics driver configuration for the dynamic scenarios.
* The Delft3D FM executables and the `proc\\\_def.dat` process library.

\---

## 7\. HydroShare metadata

* **Resource type:** Composite Resource, or Model Instance if linked to a Model
Program resource for Delft3D FM.
* **Subject keywords:** Delft3D FM, D-Flow FM, DIMR, Baptist, vegetation
roughness, nature-based solutions, morphodynamics, sediment transport, river
delta, Wax Lake Delta, geometric efficiency, idealized model.
* **Spatial coverage:** none. The domain is an idealized Cartesian basin and is
not geo-referenced, so no bounding box applies.
* **Temporal coverage:** 2001-01-01 to 2001-12-31 model time (365 days;
10 morphological years at `MorFac = 10`).
* **License:** CC-BY-NC 4.0, matching the article.
* **Related resources:** the article, DOI 10.1016/j.geomorph.2026.110327; the
Delft3D FM source, https://oss.deltares.nl/web/delft3dfm; and NBSDynamics,
https://github.com/Deltares-research/NBSDynamics.

