VFSMOD: Vegetative Filter Strip Modeling System
Frequently Asked Questions
Adobe Reader is needed to view .pdf documents.
- Problems opening VFSMOD W in Windows 10 - error message "Component "comdlg32.ocx" or one of its dependencies is not correctly registered: a file is missing or invalid" (Note: this also applies to other .ocx or dll files missing)
- I got a runtime error: "Component 'mschrt20.ocx' or one of its dependencies not correctly registered; a file is missing or invalid." when trying to graph the results? (Filter_Strip_(VFS) > Outputs > Graph Results > Hydrology/Sediment Balances).
- Some of my test-runs, especially those for short buffers (e.g. 1 m), produce ‘NaN’
in your output files. - Is Matlab needed to install VFSMOD-W?
- When optimizing particle size (or specific density) for predefined particle classes (NPART<7 in .isd file) with the inverse calibration component, the results don't seem to be right.
- When optimizing particle size (or specific density) for predefined particle classes (NPART<7 in .isd file) with the inverse calibration component, the results don't seem to be right.
- After VFSMOD-W installation, when I try to open the program I receive an error message saying "Component 'comdlg32.ocx' or one if its dependencies not correctly registered: a file is missing or invalid." I found the file in the directory, so I don't know what the problem is. I'll try re-downloading the program and see if that works. I am trying to operate in Vista, is there anything special I need to do?
- We are running VFSMOD-W using runoff data with sediment concentration and are getting this warning message that the Froude number >2. We have tried changing a lot of things, but can not seem to get this to go away. Is this a serious warning or not, and what is likely to be causing this problem?
- We are getting a warning about large Froude numbers during the simulation. What can cause this?
- We are getting a warning about the filter inundated during the simulation during the simulation. What can cause this?
- Are there any rules to set the beginning of the inflow and rainfall files (.iro and .irn)?
- How do I handle multiple storms?
- How do I select N, CR and MAXITER in the .ikw file?
- What is the H value (vegetation height) represent in the .igr file?
- Is there a way to vary the sediment concentration during the runoff event or are we forced to keep the concentration constant during a run?
- You mention sediment transport capacity (gsd) at the end of the filter; how do you calculate sediment transport capacity?
- The equations have a dp or median particle size, but it seems that some particle size distribution must be implicit in the equations. I am a bit confused how dp or d50 can simulate the deposition realistically if it is a single particle size. Clearly different sized particles settle at different rates and a single particle size specification must be implying some distribution.
- My problem here is that when I calculate a dp from the input sediment distribution that includes 5 classes like Foster does it (primary sand, silt and clay; small and large aggregates), I get pretty large dp values; like 100 um or more. The soil I am working with is a silty clay loam and the large aggregates contribute a lot to the dp (large aggregates assumed to be 500 um like Foster suggests). Can you tell me if some particle size distribution is assumed with the equations you use? The Hayes et al. 1984 paper discusses this, but I must confess to not fully understanding everything they did. The publications from Kentucky that deal with the theory are reports that I have not been able to find in our library. Can these still be obtained?
- Sediment trapping efficiencies simulated by VFSMOD-W seem to be much higher than we have measured (measured are 70-80%) in our farm-field buffers and I have to put in small dp values (seemingly too small for consistency with the Foster equations for aggregates) to get near to agreement with our measurements. Also I am surprised that trapping efficiencies can go to 99% when the incoming sediment is 10% primary clay particles, which I would not expect to settle out in a buffer of 15m length.
- If the soil characteristics are known - in other words the soil, silt, and clay balance of deposited sediments are known so that NPART=7, is it best to use a weighted average of the three to determine the values for sediment particle size, DP, and sediment particle density, SG, or do you have another suggestion?
- In the Infiltration-soil properties file there is the parameter "maximum surface storage" of which I don't really know how it is defined. Does this refer to ponding? How is it measured in the field?
- There is the parameter "fraction of the filter where ponding is checked" of which I also cannot find the definition.
- In the incoming sediment characteristics file there is the parameter "Porosity of deposited sediments". How do you measure this parameter in the field? Or can it be estimated from other parameters?
- For the roughness in the file buffer vegetation characteristics a difference is made between the Manning's coefficient of the bare surface and that of the vegetation, the grass. Does this mean then that the value for bare surface Manning's is just the value you would give if there where no vegetation? And the vegetation Manning's is then the value that your vegetation adds to the total Manning's coefficient? Or is it the total value. In the buffer segment properties per segment there is also a value required for the Manning's coefficient. Does this value refer to any of those two other Manning's coefficients (bare surface and grass) that are asked in the buffered vegetation characteristics? Or is it a total value of the Manning's coefficient for every segment.
- When selecting a high intensity rainfall period at the beginning of the simulation the program blows up. Is there a solution?
- While I’m running the uncertainty analysis in the VFSMOD, the model crashes and I got the message “run-time error ‘76’: path not found”. I’m wondering as how I can fix this problem.
- I have a composite vegetation filter consisting of a 1 m segment with a thick vegetation hedge at the entry point and the remainining length with a grass buffer. How can I simulate this with VFSMOD?
Problems opening VFSMOD W in Windows 10 - error message "Component "comdlg32.ocx" or one of its dependencies is not correctly registered: a file is missing or invalid". (Note. This also applies to other .ocx and .dll files missing)
This istypically due to restricted windows permissions when installing the program as a user with no admin role. In some instances this results on the libraries failing to be register properly in the Windows Registry. For a potential fix, follow these steps in Windows:
1. open command prompt as administrator and type this:
C:\Windows\System32> regsvr32 wmnetmgr.dll
2. Press enter. Then type this
C:\Windows\System32> regsvr32 comdlg32.ocx
and press enter again.
3. Try opening VFSMOD-W again
4. If this fails, logout from your user accoiunt and log in again as Administrator. Start VFSMOD-W again to see if this opens. This typically resolves the issue (both for Administrator and regular users).
5. If this fails, try uninstalling VFSMOD-W and install it again from the Administrator account
I got a runtime error: "Component 'mschrt20.ocx' or one of its dependencies not correctly registered; a file is missing or invalid." when trying to graph the results? (Filter_Strip_(VFS) > Outputs > Graph Results > Hydrology/Sediment Balances).
This istypically due to restricted windows permissions when installing the program as a user with no admin role. In some instances this results on the libraries failing to be register properly in the Windows Registry. For a potential fix, follow these steps in Windows:
1. open command prompt as administrator and type this:
C:\Windows\System32> regsvr32 wmnetmgr.dll
2. Press enter. Then type this
C:\Windows\System32> regsvr32 mschrt20.ocx
and press enter again.
3. Try getting the plots again.
Some of my test-runs, especially those for short buffers (e.g. 1 m), produce ‘NaN’
in your output files
The stability of the numerical solution is driven by the Courant condition (Cr<1) which determines the relationship between the surface flow velocity (celerity, c) and the grid velocity (ratio between spatial and temporal discretitation steps (dx, dt) used in the solution, i.e. Cr=c.dt/dx < 1. VFSMOD guesses internally the dt needed under "normal conditions" based on the user selected dx (number of nodes with respect to the filter length, N and VL factors in IWK file) and the peak water inflows (precipitation+field inflow) during the application. VFSMOD internal guess for dt might not be appropiate and the flow simulation will blow up (NaN in the OHY file that propagate to other inputs). If this happens it is recommended that a smaller CR (0.01-0.2) bet set in the IWK file.
Is Matlab needed to install VFSMOD?
No, VFSMOD does not require Matlab for installation. Although the VFSMOD-W instalation package includes a Matlab executable for its inverse calibration component, to run this component only the Matlab Compiler Runtime (MCR) is needed (see Matlab page). MCR is distributed as an optional installation link within the VFSMOD installer package. If the user already has Matlab 7 or above installed on the computer the MCR is not needed and this installation step can be skipped.
When optimizing particle size (or specific density) for predefined particle classes (NPART<7 in .isd file) with the inverse calibration component, the results don't seem to be right.
By default the automatic calibrator overrides the NPART setting and forces it to NPART=7 so changes in DP are considered by the model. However, the user must be careful to consider the specific density value given for SG in the second line of the .isd file, since only DP will be perturbed during the calibration and some of the prescribed NPART have specific values associated (see the User's Manual[5.7MB]).
As an alternative the user can select to optimize DP and SG currently. Also consider that when optimizing particle size the range has to fall within the value of COARSE required for fine (DP≤0.0037 cm, COARSE≤0.5) or coarse particles (DP>0.0037, COARSE≥0.5).
When optimizing particle size (or specific density) for predefined particle classes (NPART<7 in .isd file) with the inverse calibration component, the results don't seem to be right.
By default the automatic calibrator overrides the NPART setting and forces it to NPART=7 so changes in DP are considered by the model. However, the user must be careful to consider the specific density value given for SG in the second line of the .isd file, since only DP will be perturbed during the calibration and some of the prescribed NPART have specific values associated (see manual). As an alternative the user can select to optimize DP and SG currently. Also consider that when optimizing particle size the range has to fall within the value of COARSE required for fine (DP≤0.0037 cm, COARSE≤0.5) or coarse particles (DP>0.0037, COARSE≥0.5).
After VFSMOD-W installation, when I try to open the program I receive an error message saying "Component 'comdlg32.ocx' or one if its dependencies not correctly registered: a file is missing or invalid." I found the file in the directory, so I don't know what the problem is. I'll try re-downloading the program and see if that works. I am trying to operate in Vista, is there anything special I need to do?
Yes, you need to be logged in as "administrator" or a user with "poweruser" role to be able to register the libraries during installation. Please contact your system administrator if you cannot login with those roles.
We are running VFSMOD-W using runoff data with sediment concentration and are getting this warning message that the Froude number >2. We have tried changing a lot of things, but can not seem to get this to go away. Is this a serious warning or not, and what is likely to be causing this problem?
The Froude number F represents the ratio of inertial to gravitational forces that act during the overland flow wave formation. When this number is <1.5 (or 2 following other texts), the kinematic waves dominate against the dynamic waves and thus the kinematic wave approximation to the full Saint-Venant equation is appropriate. Greater values just mean that the conditions of the problem start deviating from these assumptions.
In this case, more error between the mathematical representation and the physical reality should be expected. Notice that based on equation 4 this might be caused by relatively high flow velocity with very shallow flow. Is your Manning's n too low? Your slope too steep? Keep also in mind that the Froude number that is calculated is also an estimate (best guess), since we don't know "a priori" the time series of velocity or water depth in the filter (these are results from the model).
We are getting a warning about large Froude numbers during the simulation. What can cause this?
I reviewed your input file. There was a mistake in the .ikw file with the slope units. These should be given in fractional numbers, not in %. For example 5.3% slope is input in that file as 0.053. The numbers in the spreadsheet you sent me indicated that the filed contained the percentage form.
We are getting a warning about the filter inundated during the simulation during the simulation. What can cause this?
The peak flow rate of the incoming hydrograph for the size of plot you are working with is very large. Notice that when this is converted to an estimated water depth, using Manning's, we are talking about close to 8" of water on the surface of the filter! This violates most overland, "sheetflow", conceptualizations. The model will run but is giving you a warning that the kinematic wave will produce approximate results only (errors in excess of the 10-15% that the original work by Woolhiser and Ligget suggested for this formulation).
Are there any rules to set the beginning of the inflow and rainfall files (.iro and .irn)?
You should pick the beginning of the storm in your .iro file as t=0 and then shift both time scales for the incoming hydrograph and hyetograph accordingly (files i.ro and .irn).
How do I handle multiple storms?
VFSMOD-W is a single event simulation program. Each strom should be handled in independent project files. In your application case there are in fact two separate storms in you files (first starting at 900 s and second at 44800 s). Moreover, only the second one seems to produce any runoff at all. Although you can run them together (see norman1.prj results), you should separate them as individual storms, or likely just run the second event only.
How do I select N, CR and MAXITER in the .ikw file?
This is explained in the User's Manual[5.7MB]. Here are some tips:
- 'N', the number of finite elements, does not have to be the same as the number of physical land segments you measured in the field (i.e., 15). Instead you can numerically subdivide these into a sufficiently large number of elements to give better numerical stability to the solution. Doing this will result into much faster runs. The way this is done is that elements within each land segment (characterized by a Manning's n and slope) has the same values as the segment. The program does this internally when you select N>NPROP.
- For CR we recommend 0.01-0.8. See other FAQ describing the use of low CR values for "difficult" NaN problems
- The MAXITER should probably be left at 350. If the program is not allowed to converge at each time step errors can accumulate and the ensuing numerical instabilities lengthen the simulation time.
What is the H value (vegetation height) represent in the .igr file?
This is explained in the User's Manual[5.7MB]. Remember H is not only the length (height) of the stem that does not topple, in other words remains erect under flow conditions, but also tells the model how high it can build the sediment wedge. I in your particular application case (H=110 cm) is not a realistic value for grass. Are you modeling grass or other species?
Is there a way to vary the sediment concentration during the runoff event or are we forced to keep the concentration constant during a run?
Notice that the fact that an average inflow sediment concentration is considered does not mean that the sediment inflow is not dynamic. Let me explain. The important thing to consider is the sediment load, gs [M/T]. When you multiply the average sediment concentration for the event (i.e., total inflow sediment / total inflow runoff volume) by the hydrograph, q(t), i.e.: gs [M/T] = Ci [M/L3] × q [L3/T], you obtain a dynamic sedimentograph into the filter.
The basic assumption here is that these two sedimentographs (i.e., one calculated from several samples through the event vs. one using the average concentration for the event) are not too different. Furthermore, that the difference between the resulting sediment deposition and outflow might be also small.
When developing the model we compared several of these for different field experiments and model runs and found the simplification to be acceptable. This simplification had the benefit that the user did not have to come up with samples through the event but just the average. Could you check if this assumption holds for your particular case? If enough users think that using a changing sediment concentration with time is critical for their application let us know and we will add this feature to the program.
You mention sediment transport capacity (gsd) at the end of the filter; how do you calculate sediment transport capacity?
In fact gsd is also called sediment load in the manual. This is calculated depending of the region of the filter.
The basic idea is to compare the calculated value of gsd with the incoming sediment concentration. If gsd> sediment concentration, the difference is allowed to deposit in whatever section of the filter is being calculated (coarse sediment at wedge, or fine sediment at the lower section of the filter).
The equations have a dp or median particle size, but it seems that some particle size distribution must be implicit in the equations. I am a bit confused how dp or d50 can simulate the deposition realistically if it is a single particle size. Clearly different sized particles settle at different rates and a single particle size specification must be implying some distribution.
This is a good question. Although this clearly assumes a certain type of distribution, or at least the d50 can represent realistically the population of sediment particles entering the filter, this is an accepted approach in sediment transport studies, most of which come from river dynamics. Please keep in mind that you are in fact not characterizing the incoming sediment based on the d50, but most importantly also based on the partitioning between fine and coarse sediment.
The Hayes approach is just a further elaboration of this principle where the incoming sediment population is divided into several classes (ranges of particles, each with its representing particle characteristics, and then each class routed in turn to the filter. The results are then aggregated at the end of the simulation. This allows you to obtain more detail on the outgoing sediment distribution, tto. However, it does require a lot more information on the incoming characteristics of your sediment. We are now also incorporating this approach into VFSMOD, which we feel is granted only when moving sediment adsorbed pollutants through the filter.
My problem here is that when I calculate a dp from the input sediment distribution that includes 5 classes like Foster does it (primary sand, silt and clay; small and large aggregates), I get pretty large dp values; like 100 um or more. The soil I am working with is a silty clay loam and the large aggregates contribute a lot to the dp (large aggregates assumed to be 500 um like Foster suggests). Can you tell me if some particle size distribution is assumed with the equations you use? The Hayes et al. 1984 paper discusses this, but I must confess to not fully understanding everything they did. The publications from Kentucky that deal with the theory are reports that I have not been able to find in our library. Can these still be obtained?
We can recommend a book recently published:
- Design Hydrology and Sedimentology for Small Catchments by C. T. Haan, B. J. Barfield, and J. C. Hayes.
Chapter 9 (pp. 359-375) and Appendix 9C describes well most of this equations. Notice that the strength of VFSMOD-W is that it contains a hydrodynamic approach (runoff, rainfall, infiltration), rather than the average conditions for the event used in this reference.
Sediment trapping efficiencies simulated by VFSMOD-W seem to be much higher than we have measured (measured are 70-80%) in our farm-field buffers and I have to put in small dp values (seemingly too small for consistency with the Foster equations for aggregates) to get near to agreement with our measurements. Also I am surprised that trapping efficiencies can go to 99% when the incoming sediment is 10% primary clay particles, which I would not expect to settle out in a buffer of 15m length.
You need to revise your sediment characteristics as well as soil infiltration capacity. High simulated efficiencies are possible, especially if you don't get much runoff at the end of the filter due to infiltration. Does clay in your sediment samples aggregate into larger particles? Remember also, that clay, even if in small amounts, could also deposit depending on the velocity and flow regime.
If the soil characteristics are known - in other words the soil, silt, and clay balance of deposited sediments are known so that NPART=7, is it best to use a weighted average of the three to determine the values for sediment particle size, DP, and sediment particle density, SG, or do you have another suggestion?
In essence there are 3 characteristics that define the sediment transported into the filter. These are: DP (median particle size or d50), SG (sediment particle density) and Vf (fall velocity of the particle in water). One other characteristic is important here, COARSE or the % of particles of diameter >0.0034 cm.
One important thing to remember is that the soil as a whole is not transported by runoff from the source area into the filter, but usually only those particles that the energy (velocity) of the flow can carry at any given time. This means that there is usually a selection of the finer soil by runoff during transport. If you had actual sediment samples (from runoff samples collected at the ed of the source area or field) you could plot the cumulative frequency graph of particles less than a diameter, and then choose d50 and COARSE from there. If the measured sediment characteristics are not known (as is often the case) but the soil texture is, one can estimate the dp parameter from soil texture. Tables on how to do this are provided in the documentation of the User's Manual[5.7MB].
In the Infiltration-soil properties file there is the parameter "maximum surface storage" of which I don't really know how it is defined. Does this refer to ponding? How is it measured in the field?
Surface storage represents the amount of excess rainfall that must be filled at the surface (an average over the area considered) before runoff can begin. Remember excess rainfall is the amount not infiltrated into the soil during the infiltration (storm) event. To set this value consider the regularity of your area 0-0.5 cm would correspond to a fairly well graded soil surface. To get more background on the role of this parameter, I recommend Chapter 4 by Skaggs and Khaleel, pg. 147-152 in Hydrologic Modeling of Small Watersheds, eds. C.T. Haan et al., 1982, ASAE, Mon. 5. ASAE:St. Joseph, USA.
There is the parameter "fraction of the filter where ponding is checked" of which I also cannot find the definition.
This is a fairly insensitive parameter except for very sandy soils. It represents where along the filter the user wants for ponding at the beginning of the event to be checked for. The idea is that two different mechanisms can produce ponding in the filter during an event. One is rainfall excess derived from the infiltration capacity of the soil, but the other is a flood wave from the field moving into the filter. The model checks to see if such a wave is in the filter and the automatically switches infiltration to ponding, regardless of the infiltration capacity for that specific time.
The question is where to check for (i.e., at the beginning of the filter or at the end) since you will stop your regular Green-Ampt infiltration calculation at that time. You can check for your particular application with 0, 0.5 and 1 values to see if you get any changes. This is further discussed in Appendix 2 of the Ph.D. dissertation document[104KB].
In the incoming sediment characteristics file there is the parameter "Porosity of deposited sediments". How do you measure this parameter in the field? Or can it be estimated from other parameters?
Yes, it could be measured at the field in an undisturbed column separating the upper layer of sedimentation from the actual soil, measuring the volume and getting the dry weight. You could possibly calculate it from the mean particle size of the sediment assuming some form of packing scheme (spheres, etc)... but we have never done so!. We normally use use a value of 0.437 since does not seem to be a very sensitive parameter. Let us know if you find otherwise.
For the roughness in the file buffer vegetation characteristics a difference is made between the Manning's coefficient of the bare surface and that of the vegetation, the grass. Does this mean then that the value for bare surface Manning's is just the value you would give if there where no vegetation? And the vegetation Manning's is then the value that your vegetation adds to the total Manning's coefficient? Or is it the total value. In the buffer segment properties per segment there is also a value required for the Manning's coefficient. Does this value refer to any of those two other Manning's coefficients (bare surface and grass) that are asked in the buffered vegetation characteristics? Or is it a total value of the Manning's coefficient for every segment.
There are 3 Manning's coefficients provided in two different places, the .ikw and .igr files. Notice however that the units are different amongst them and they also correspond conceptually to different components and scales.
RNA (in the .ikw file) and VN (in .igr) correspond to the regular surface Manning's roughness used with the overland flow calculations, i.e. at the “macroscale" (considering the overall surface). The units for RNA and VN are SI units (s.m^(-1/3)). RNA corresponds to the vegetated surface at the beginning of the event, and can be assigned a uniform value along the filter, or varying along the filter in segments as needed. The second VN represents the surface Manning's roughness value into which the filter transitions from RNA when the buffer starts filling up with sediment (sediment wedge) coming from the field and this reaches the maximum sediment depth of H (i.e. equivalent to “bare soil” on top of the grass). Notice the Mannings roughness value at each node of the sediment inundated area for each time step is an average between good grass (RNA) and bare soil (VN) as the sediment moves over those segments. As you probably know already, there are example values for these RNA and VN in Appendix 3.2 of the VFSMOD Manual, pg. 162. For example, a typical VN (bare soil after sediment inundation) would be VN = 0.01-0.033 s.m^(-1/3) for bare sand to clay surface.
VN2 (in filename.igr) is the "modified value for cylindrical media”, i.e. at a “mesoscopic” scale (water flowing between grass stems). The units are different (cm.s^(-1/3)). The modified Manning's values depend on the filter type and typical values are given in the VFSMOD-W manual Appendix 3.3 (see link above), and they range between VN2 = 0.0084-0.016 cm.s^(-1/3). VN2 is only used for sediment deposition calculations based on the original work at the University of Kentucky on sediment trapping. VN2 is related to the roughness surfaces of the vegetation stems and leaves in contact with the water and the bare soil at the bottom, different than the macroscopic value for the typical Manning’s roughness.
When selecting a high intensity rainfall period at the beginning of the simulation the program blows up. Is there a solution?
Sometimes when assigning a high intensity (in irn file) from the beggininng of the simulation, this can result in kinematic shock and the numerical solutionn blows up. This sometimes can be avoided by adding intermediate steps of rainfall (with the same intensity) at the beginning of the period. For example, the .irn file that produces shock contains one rainfall period of 64 mm/h starting at t=0 s and ending at 3h 36 min, i.e.,
4 0.000017817 Nrain, rpeak (m/s)
0 .000017817
13000 .000017817
13001 0
13603 0
The shock in this case can be avoided by adding an intermediate step after the t=0 s value (and close to it), i.e.
5 0.000017817 Nrain, rpeak (m/s)
0 .000017817
300 .000017817
13000 .000017817
13001 0
13603 0
See also first FAQ in this list about setting CR number for "difficult" problems.
While I’m running the uncertainty analysis in the VFSMOD, the model crashes and I got the message “run-time error ‘76’: path not found”. I’m wondering as how I can fix this problem.
The problem is that the path is not declared for the input and outputs files, i.e. "inputs/" and “outputs/” must be part of the declaration for those files in the prj. If you created the project file (.prj) manually, please make sure you add these (see sample.prj provided in the VFSMOD distribution package. If the GUI created the project file automatically, make sure that in the "Options" menu, you select the correct directory where VFSMOD is installed. We recommend that you install it in the default "c:/vfsmod" directory. One final thing to watch for is that if the path+filename exceed 75 characters the file will not be found, so you might need to trim filenames if that was the case.
I have a composite vegetation filter consisting of a 1 m segment with a thick vegetation hedge at the entry point and the remainining length with a grass buffer. How can I simulate this with VFSMOD?
For a 2-step filter, you can describe the filter in segments on the .ikw file, the first one (1 m) with a high RNA for the hedge, and the rest with a lower value for the grass. The bare soil roughness value VN could be the same for both, VN=0.015 s.m^(-1/3). This would provide a good description and estimates of water (runoff and infiltration) for the composite buffer. However, for the sediment part, currently the model does not handle different vegetation characteristics (H, SS, VN), just one type type throughout. You could instead run the model in two sequential steps, first for the 1 m hedge and then use the outflow from the hedge to feed the grass buffer in the second step. If you are going to run this repeatedly for different scenarios, a script that automatically converts the output of one to the input of the next and runs them in sequence could be created.
This page was last updated on March 31, 2023.