Difference between revisions of "SCHISM FAQ"
(Created page with " ==My results show platform/compiler/CPU dependency== Due to some intricate differences between different compilers/platforms some minor differences in results are expected. ...") |
|||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| + | |||
| + | ==How to search archived messages from the SCHISM mailing list== | ||
| + | You can easily search for archived messages on the same [https://lists.vims.edu/wws/info/schism_list web] where you registered yourself for the mailing list. Just log in, and select 'Archive' from the left of the screen, and then on right | ||
| + | side of screen select 'Advanced search'. | ||
==My results show platform/compiler/CPU dependency== | ==My results show platform/compiler/CPU dependency== | ||
| Line 7: | Line 11: | ||
First you need to check the results before the crash (e.g. surface velocity) to see if anything is outrageously wrong. | First you need to check the results before the crash (e.g. surface velocity) to see if anything is outrageously wrong. | ||
If the results look reasonable, this may be related to the version of SCHISM you are using; contact the developers for more info. | If the results look reasonable, this may be related to the version of SCHISM you are using; contact the developers for more info. | ||
| + | |||
| + | ==Run crashed with a fort.11 error message "bktrk_subs: overflow..." or "MAIN: nbtrk > mxnbt"== | ||
| + | The backtracking (ELM) in SCHISM is parallelized across MPI processes, and some arrays need to be allocated to store trajectories that exited the augmented domain. | ||
| + | The dimension of those arrays is defined in mxnbt and mnbt, which are proportional to local # of side and # of levels, and the proportionality constants are defined in param.in: | ||
| + | |||
| + | !----------------------------------------------------------------------- | ||
| + | ! Dimensioning parameters for inter-subdomain btrack. | ||
| + | !----------------------------------------------------------------------- | ||
| + | s1_mxnbt = 0.5 | ||
| + | s2_mxnbt = 3.5 | ||
| + | |||
| + | (Gradually) increasing these (to say 1, and 4) will solve the problem. Note that these constants only affect memory consumption and not accuracy. | ||
| Line 17: | Line 33: | ||
See [[Debugging after a run crashes]]. | See [[Debugging after a run crashes]]. | ||
| − | |||
==How to impose river discharge if the depth is negative there?== | ==How to impose river discharge if the depth is negative there?== | ||
| − | + | In many estuaries the depths (with reference to MSL) are often negative. In SCHISM, the total depth (i.e., depth + elevation) must be positive at all times on open boundary nodes. A simple workaround is to artificially set a positive depth (say, 5m) along a small segment near the river boundaries (or add a small segment of "channel" with 5m beyond the boundary; usually ~100m will do). The depth can change sharply from 5m to negative values. Because of the imposed discharge, the inundation algorithm will quickly push water downstream and set up a surface slope automatically. | |
| − | + | ||
| + | An alternative is to use an initial condition for elevation (elev.ic). | ||
| + | |||
==I have large velocity at open boundary== | ==I have large velocity at open boundary== | ||
| − | -- | + | In hydrostatic models the incoming velocity should be specified at open boundary. Over-specification i.e. elevation+velocity b.c. there usually avoids the problem. |
| + | |||
| + | In reality it's often difficult to find velocity b.c., and so a useful way is to use 1-way nesting approach. Run SCHISM (in 3D or 2D, barotropic or baroclinic modes; obviously 2D model is the cheapest) for a larger or same grid, with indvel=1, and then use the scripts in Utility/OneWayNestScripts/ (in the source code bundle) to generate uv3D.th (follow the instructions in README) together with ifltype=4 in bctides.in. This approach is especially useful when the boundary is away from region of interest. | ||
Latest revision as of 16:39, 11 November 2015
Contents
- 1 How to search archived messages from the SCHISM mailing list
- 2 My results show platform/compiler/CPU dependency
- 3 Run crashed with a fort.11 error message "QUICKSEARCH: no intersecting edge...."
- 4 Run crashed with a fort.11 error message "bktrk_subs: overflow..." or "MAIN: nbtrk > mxnbt"
- 5 How to do a tidal simulation with SCHISM?
- 6 My run crashed; how can I find out why?
- 7 How to impose river discharge if the depth is negative there?
- 8 I have large velocity at open boundary
How to search archived messages from the SCHISM mailing list
You can easily search for archived messages on the same web where you registered yourself for the mailing list. Just log in, and select 'Archive' from the left of the screen, and then on right side of screen select 'Advanced search'.
My results show platform/compiler/CPU dependency
Due to some intricate differences between different compilers/platforms some minor differences in results are expected. Bit-by-bit match of results using different numbers of CPUs is impossible also. But the differences should be small and should stablize over time iteration.
Run crashed with a fort.11 error message "QUICKSEARCH: no intersecting edge...."
First you need to check the results before the crash (e.g. surface velocity) to see if anything is outrageously wrong. If the results look reasonable, this may be related to the version of SCHISM you are using; contact the developers for more info.
Run crashed with a fort.11 error message "bktrk_subs: overflow..." or "MAIN: nbtrk > mxnbt"
The backtracking (ELM) in SCHISM is parallelized across MPI processes, and some arrays need to be allocated to store trajectories that exited the augmented domain. The dimension of those arrays is defined in mxnbt and mnbt, which are proportional to local # of side and # of levels, and the proportionality constants are defined in param.in:
!----------------------------------------------------------------------- ! Dimensioning parameters for inter-subdomain btrack. !-----------------------------------------------------------------------
s1_mxnbt = 0.5 s2_mxnbt = 3.5
(Gradually) increasing these (to say 1, and 4) will solve the problem. Note that these constants only affect memory consumption and not accuracy.
How to do a tidal simulation with SCHISM?
The simplest way is to use SCHISM 2D. If you have to use SCHISM 3D, make sure the bottom boundary layer is reasonably resolved.
My run crashed; how can I find out why?
See Debugging after a run crashes.
How to impose river discharge if the depth is negative there?
In many estuaries the depths (with reference to MSL) are often negative. In SCHISM, the total depth (i.e., depth + elevation) must be positive at all times on open boundary nodes. A simple workaround is to artificially set a positive depth (say, 5m) along a small segment near the river boundaries (or add a small segment of "channel" with 5m beyond the boundary; usually ~100m will do). The depth can change sharply from 5m to negative values. Because of the imposed discharge, the inundation algorithm will quickly push water downstream and set up a surface slope automatically.
An alternative is to use an initial condition for elevation (elev.ic).
I have large velocity at open boundary
In hydrostatic models the incoming velocity should be specified at open boundary. Over-specification i.e. elevation+velocity b.c. there usually avoids the problem.
In reality it's often difficult to find velocity b.c., and so a useful way is to use 1-way nesting approach. Run SCHISM (in 3D or 2D, barotropic or baroclinic modes; obviously 2D model is the cheapest) for a larger or same grid, with indvel=1, and then use the scripts in Utility/OneWayNestScripts/ (in the source code bundle) to generate uv3D.th (follow the instructions in README) together with ifltype=4 in bctides.in. This approach is especially useful when the boundary is away from region of interest.