Using Boundary condition in Delft3d model - Delwaq - Delft3D
- Home Page: Activity map.
intro story DELWAQ
DELWAQ is the engine of the D-Water Quality and D-Ecology programmes of the Delft3D suite. It is based on a rich library from which relevant substances and processes can be selected to quickly put water and sediment quality models together.
The processes library covers many aspects of water quality and ecology, from basic tracers, dissolved oxygen, nutrients, organic matter, inorganic suspended matter, heavy metals, bacteria and organic micro-pollutants, to complex algae and macrophyte dynamics. High performance solvers enable the simulation of long periods, often required to capture the full cycles of the processes being modelled.
The finite volume approach underlying DELWAQ allows it to be coupled to both the structured grid hydrodynamics of the current Delft3D-FLOW engine and the upcoming D-Flow Flexible Mesh engine (1D-2D-3D) of the Delft3D Flexible Mesh Suite (or even other models such as TELEMAC).
'DELWAQ in open source' is our invitation to all leading experts to collaborate in further development and research in the field of water quality, ecology and morphology using Delft3D. Feel free to post your DELWAQ related questions or comments in this dedicated forum space. If you are new to DELWAQ, the tutorial (in the user manual) is a good place to start. A list of DELWAQ related publications is available here.
** PLEASE TAG YOUR POST! **
Using Boundary condition in Delft3d model
I am a new user of Delft3D flow. I am using Delft3d model to simulate salinity, temperature and flow in an estuary. I have created a grid for delft3d and assigned bathymetry. However, I have problem with boundary conditions. For the river flows, I have time series of discharge and for the open boundaries i.e where the flow interaction takes place, I have time series of water surface elevation. It seems we can use harmonic and astronomic boundaries. I don't know how to use the harmonic boundary condition. Can anyone give me some directions from where I can start ?
What is the best boundary condition to use as open boundary especially at the locations where there is an interaction with sea/ocean. Right now I am using time series of water level. I don't know whether it is the best boundary to use. I have 3 open boundaries and in all of these boundaries I have used time series of water level. For the river flows, I have used time series of total discharge.
In total discharge, when I look at the boundary file in an editor I see there are three columns in all the boundary series. When I put some value from the GUI then only second column is filled. The third column is empty. How are we supposed to arrange the data ? Another confusion in my mind is how to assign boundary when we have 1 layer or 4 layers. Suppose I have 1 layer at first and then run the model. Then I want my model to have 4 layers. Then how does the boundary data change for 1 layer and 4 layers ? Do I have to divide the flow by 4 if I am using 4 layers ? It is little confusing.
Thank you so much.
The combination of upstream river discharge and downstream water level boundaries is a good combination to start with. You can indeed use harmonic and astronomic forcing at open boundaries, but you can also use time-series forcing matching the data that you have. The harmonic forcing is easier for schematic models with simple periodic forcing along the open boundaries; you can also obtain the harmonic coefficients for a real life application by doing a Fourier analysis of the measurement data. However, for real world applications it's often better to do a tidal analysis and use astronomic boundaries. When a tidal analysis is performed well using a long enough time series, this will exclude any sea level anomaly caused by regional or remote storms. If you don't have any measurement data, you may also be able to find online resources for astronomical constituents.
I'm somewhat confused by the fact that you state that you have 3 open boundaries (all of which are forced using water level time series) and one total discharge for the river. In general we would say that you have 4 open boundaries of which 1 represents the upstream river inflow (by means of a total discharge boundary) and 3 represent the downstream sea area (which you force now using water levels). I assume that the 3 downstream boundaries are forming one along-shore boundary and two cross-shore boundaries as indicated below.
Q -> | | WL2
The water level boundary condition is the most practical and is thus used often. However, in general the water level will vary spatially and if you don't include that variability, the prescribed water level boundary conditions may not match the characteristic dynamics of the system (e.g. time delays due to tidal wave propagation missing). Such deviations may result in spurious flows especially in the corners where the open boundaries meet. If you encounter such problems, you can try to solve them by replacing the boundary condition at WL1 and WL3 by Neumann boundaries, i.e. water level slope boundaries rather than absolute water level. You may try setting the water level slopes to 0 if there is not a significant along-shore current.
If you use time-series forcing for other types of boundary conditions (like the downstream water level boundaries), then you'll see that all three columns are filled representing time (1st column), value at first end of open boundary line (2nd column; referred to as BEGIN or A value) and value at second end of open boundary line (3rd column; referred to as END or B value). For water level, velocity, discharge, etc. boundaries it makes sense to distinguish between values at both ends of the open boundary (intermediate values will be obtained by linear interpolation). For a TOTAL discharge boundary, one cannot distinguish between the total discharge at the left bank and the right bank: there is only one total discharge. To avoid unnecessary code complexity we have kept the three column file format for total discharges as well; the values in the 3rd column are dummy values that will not be used in the simulation.
For water level (and Neumann water level slope) boundaries there is no difference between the 1 and 4 layer case; when changing the number of layers, the FLOW-GUI will keep the forcings of the water level boundaries. For the total discharge boundary there is also little difference: for a 3D model you still have to specify only one value, but you have to specify whether a uniform or logarithmic velocity profile should be imposed. For a regular discharge per cell or velocity boundary, you can decide for yourself whether you want to specify one value (at both BEGIN and END of boundary) and assume a uniform or logarithmic profile, or specify a separate value for each layer (at both BEGIN and END of boundary).
I hope this helps,
Thank you so much for your detailed explanation.
I have one question about boundaries WL1 and WL3 in the figure you created. I have the water surface elevation data for WL2 so I am planning to use time series of water level for WL2. I am not sure what do I put for WL1 and WL3. If I want to use the time series boundary condition on these also, what type of data do we use ? I have used EFDC before but haven't used this model. SO I am feeling little difficult.
Have you resolved this problem?? I have same problem as you though I am using a nested model thus the value of the time series on the boundary conditions came from the overall model.
Now I am confused what appropriate boundary type to be used if nested model is to be used, is it still Neuman for WL1 and WL3 and WL2 as absolute water level?
my detailed model is something like that drawn by Bert but instead of river its a land area.
I have used a neumann for WL1 and WL3 but the results are bit weird. Please guide me on what appropriate boundary condition I must use.
I have a similar case to this.
Well, I have a great area with 2 open boundaries (north and south). My boundary condition are water level in both (east and west are close boundaries).
I run the model and it works perfectly.
Now I change since a 2D model to a 3D model, and it keeps working.
But now I want to introduce salinity and temperature (.bcc). I introduce the condition by a vertical profile per layer specified but when I run this model it doesn't work.
Could your help me??
Thanks in advance.
I run your 3d case, and I only found one error, that is, the name of .dep file in mdf and in the exec directory is different. Another thing that you might change are the times in .bct and .bcc, they are different. Put then equal and starting in Tstart = 3.0000000e+001.
Sorry about that. I've done so many test that maybe I didn't send you the last test. I'm going to check it.
I'm going to try to do it again and if I have the same error I'll send you the last test.
Thanks in advance
I Know what happenes! I tried to run the model without salinity and temperature, only low condition and 3 layers, it didn't work.
I change the bathymetry and I forgot to send you the last one.
I attach 2 models:
- grosera_3layers (the model has only flow conditions and 3 layer)
- grosera_ST (the model has flow condition and transport condition)
Both models start to calculate without problems. During initialization, step "Part II - Creating intermediate files..." may take a few minutes(!) due to the large bct-file.