Ramping is a way by which terms can be steady increased over some period of time in a simulation. This is most often done for model forcing terms like tides or winds, in order to avoid applying a shock to the model.
To understand why ramping of forcing terms is needed, consider tides. Starting a model with the water surface and velocity as zero everywhere, but with full tidal forcing, is analogous to having a planet at rest, then instantly putting a moon and sun in place, in motion with each other. This large, instantaneous change in conditions (forcing) is what creates the shock, which tends to result in spurious waves being formed. Ideally, one would initialize a tidal simulation with the water surface and velocity at all points matching what it should be at the point in time the model is initiated, given the phase of the tides, however this is not generally achievable. Gradually scaling up forcing terms helps avoid this problem.
NRAMP controls whether ramping is enabled, as well as how many ramping terms there are. This is to permit users to apply different ramping times for different forcing terms. All ramps in ADCIRC are applied as (truncated) hyperbolic tangent functions over a specified number of days. The various DRAMP* variables control the number of days over which the ramping is applied for individual forcing terms, they are:
- DRAMP - any forcing terms not covered by the other DRAMP* terms
- DRAMPExtFlux - external flux boundary condition (BC)
- DRAMPIntFlux - internal flux BC
- DRAMPElev - elevation specified BC
- DRAMPTip - tidal potential BC
- DRAMPMete - meteorological forcing
- DRAMPWRad - wave radiation stress forcing
- If NRAMP=1, then DRAMP is relative to coldstart time.
- If 1<NRAMP<8, then all DRAMP* terms are relative to coldstart time plus FluxSettlingTime
- If NRAMP=8, then all DRAMP* terms are as above, except DRAMPMete is relative to coldstart plus FluxSettlingTime plus DUnRampMete
FluxSettlingTIme is used because for large river systems such as the Mississippi River, it can take several days to initialize them and equilibrate; this may be partially relieved by using more advanced initialization schemes are used like the initial river elevation nodal attribute. DUnRampMete is used because often a simulation will be initiated without meteorological forcing, such as a tide-only simulation, and meteorological ramping is needed when this forcing is added at a later time.
There are also namelist controls for some ramping terms, such as water level offset forcing.
Example Usage Case
Consider the following illustrative example of how one might use all of these. Let's say someone by the name of Arturo wants to run a hindcast simulation of Hurricane Katrina impacting Louisiana and Mississippi with SWAN+ADCIRC, and needs to get an accurate sense of the surge traveling up the Mississippi and Atchafalaya Rivers. Doing so requires specifying realistic flux boundary conditions at the upstream end of the rivers. Feeling ambitious, Arturo sets NRAMP=1 and (because he has just 5 days of met. forcing) sets DRAMP=1. His model goes unstable in the rivers. Now feeling cautious, he sets NRAMP=8, uses FluxSettlingTime=10 days, DRAMPExtFlux=3 days, DRAMPTip=15 days, DRAMPUnMete=30 days, DRAMPMete=0.5 days, and all the other DRAMP* values are set to zero. That means in this scenario, Arturo runs a 30-day coldstart simulation where (per the definition of FluxSettlingTime) only river (external flux) forcing is applied for the first 10 days, after which the tides are ramped in over 15 days, and then the model is left at full-strength forcing for 5 days (10+15+5=30). A hotstart file is generated at the end of the run. Arturo uses this to hotstart his 5-day storm simulation, where DUnRAMPMete=30 ensures the meteorological forcing ramping starts at the 30-day mark. Everything works great. He's probably been overly cautious here, and might want to play around with shortening some of the ramping times, but hey, at least it works.