Difference between revisions of "IM"
Taylorgasher (talk  contribs) (updated language on lumped explicit) 
(→Default IM Values) 

(17 intermediate revisions by 2 users not shown)  
Line 1:  Line 1:  
−  '''IM''' is an important parameter in the [[fort.15 file]] that defines numerical model formulation and dimension. Among other things, IM specifies whether ADCIRC is solved in twodimensional depthintegrated (2DDI) or in threedimensions (3D), solution of the governing equations is semiimplicit or explicit in time, and whether the model formulation is barotropic or baroclinic. Popular values for 2D barotropic ADCIRC include IM=0 and IM=111112  +  '''<code>IM</code>''' is an important parameter in the [[fort.15 file]] that defines numerical model formulation and dimension. Among other things, <code>IM</code> specifies whether ADCIRC is solved in twodimensional depthintegrated (2DDI) or in threedimensions (3D), solution of the governing equations is semiimplicit or explicit in time, and whether the model formulation is barotropic or baroclinic. Popular values for 2D barotropic ADCIRC include <code>IM=0</code> and <code>IM=111112</code>; users should be aware that the <code>[[A00, B00, C00]]</code> coefficients must be specified differently in these two cases. 
== Default IM Values ==  == Default IM Values ==  
Default simulation option combinations can be specified through single or double digit values, some of which are shortcuts to the sixdigit codes described in the next heading.  Default simulation option combinations can be specified through single or double digit values, some of which are shortcuts to the sixdigit codes described in the next heading.  
−  The available IM values are specified below:  +  The available <code>IM</code> values are specified in the table below and in the following section on 6digit values: 
{ class="wikitable" border="1"  { class="wikitable" border="1"  
Line 32:  Line 32:  
    
 20   20  
−    +    
 Baroclinic 2DDI   Baroclinic 2DDI  
    
 21   21  
−    +    
 Baroclinic 3D velocitybased momentum   Baroclinic 3D velocitybased momentum  
    
Line 48:  Line 48:  
}  }  
−  Note that all default IM values employ the semiimplicit consistent GWCE mass matrix solver. It has less numerical error and tends to be more stable than the explicit masslumping approach at the expense of computational time and memory.  +  Note that all default <code>IM</code> values employ the semiimplicit consistent GWCE mass matrix solver. It has less numerical error and tends to be more stable than the explicit masslumping approach at the expense of computational time and memory. 
== Sixdigit IM Codes ==  == Sixdigit IM Codes ==  
−  For finegrained control of various options sixdigit codes for IM can be specified. Each digit represents a specific option regarding the dimension and the formulation of certain terms or integration methods in the GWCE or momentum equations.  +  For finegrained control of various options sixdigit codes for <code>IM</code> can be specified. Each digit represents a specific option regarding the dimension and the formulation of certain terms or integration methods in the GWCE or momentum equations. 
−  The available options for each digit are specified below, with the first digit being the leftmost  +  The available options for each digit are specified below, with the first digit being the leftmost. The internal flags that are set are listed to help users dig through the code. 
{ class="wikitable" border="1"  { class="wikitable" border="1"  
Line 65:  Line 65:  
    
 1 (default)   1 (default)  
−   2DDI, KolarGray fluxbased  +   2DDI, KolarGray fluxbased<br/><code>CGWCE_LS_KGQ=.TRUE.</code> 
−   Non conservative  +   Non conservative<br/><code>CGWCE_Advec_NC=.TRUE.</code> 
−   Integration by parts, velocitybased  +   Integration by parts, velocitybased<br/><code>CME_LS_IBPV=.TRUE.</code> 
−   Non conservative  +   Non conservative<br/><code>CME_New_NC=.TRUE.</code> 
−   Corrected  +   Corrected <br/><code>CME_AreaInt_Corr=.TRUE.</code> 
−   Consistent (  +   Consistent (implicit for linear part of gravity wave term), barotropic<br/><code>ILump=0</code> 
    
 2   2  
−   2DDI, 2part fluxbased  +   2DDI, 2part fluxbased<br/><code>CGWCE_LS_2PartQ=.TRUE.</code> 
−   Conservative form 1  +   Conservative form 1<br/><code>CGWCE_Advec_C1=.TRUE.</code> 
−   Integration by parts, fluxbased  +   Integration by parts, fluxbased<br/><code>CME_LS_IBPQ=.TRUE.</code> 
−   Conservative form 1  +   Conservative form 1<br/><code>CME_New_C1=.TRUE.</code> 
−   Original  +   Original <br/><code>CME_AreaInt_Orig=.TRUE.</code> 
−   Lumped (explicit), barotropic  +   Lumped (explicit), barotropic<br/><code>CGWCE_Lump=.TRUE.</code>, <code>ILump=1</code> 
    
 3   3  
−   2DDI, 2part velocitybased  +   2DDI, 2part velocitybased<br/><code>CGWCE_LS_2PartV=.TRUE.</code> 
−   Conservative form 2  +   Conservative form 2<br/><code>CGWCE_Advec_C2=.TRUE.</code> 
−   Integration by parts, velocitybased symmetrical  +   Integration by parts, velocitybased symmetrical<br/><code>CME_LS_IBPSV=.TRUE.</code> 
−   Conservative form 2  +   Conservative form 2<br/><code>CME_New_C2=.TRUE.</code> 
      
−   Consistent (  +   Consistent (implicit for full gravity wave term), barotropic<br/><code>CGWCE_HDP=.TRUE.</code>, <code>IFNL_HDP=1</code>, <code>ILump=0</code> {{ADC versionversion=55relation=+}} 
    
 4   4  
−   2DDI, 2part fluxbased symmetrical  +   2DDI, 2part fluxbased symmetrical<br/><code>CGWCE_LS_2PartSQ=.TRUE.</code> 
+     
+   Integration by parts, fluxbased symmetrical<br/><code>CME_LS_IBPSQ=.TRUE.</code>  
      
−  
      
      
−  
    
 5   5  
−   2DDI, 2part velocitybased symmetrical  +   2DDI, 2part velocitybased symmetrical<br/><code>CGWCE_LS_2PartSV=.TRUE.</code> 
+     
+   2 Part, velocitybased (''not implemented'')<br/><code>CME_LS_2PartV=.TRUE.</code>  
      
−  
      
      
−  
    
 6   6  
−   3D, KolarGray fluxbased  +   3D, KolarGray fluxbased<br/><code>C2DDI=.FALSE.</code>, <code>CGWCE_LS_KGQ=.TRUE.</code>, <code>C3D=.TRUE.</code>, <code>C3DVS=.TRUE.</code>, <code>ILump=0</code> 
+     
+   2 Part, fluxbased (''not implemented'')<br/><code>CME_LS_2PartQ=.TRUE.</code>  
      
−  
      
      
−  
}  }  
−  A common code combination is IM = 111112, which is identical to the default 111111 (same as IM = 0), but simulates in explicit masslumping mode. Note that <code>[[A00, B00, C00]]</code> must be set to <code>0.0 1.0 0.0</code>  +  A common code combination is <code>IM=111112</code>, which is identical to the default <code>111111</code> (same as <code>IM=0</code>), but simulates in explicit masslumping mode. Note that <code>[[A00, B00, C00]]</code> must be set to <code>0.0 1.0 0.0</code> when in this mode. Lumped explicit mode is a useful alternative to the (default) semiimplicit consistent GWCE mass matrix mode, because the latter requires a matrix solve that increases computational time and memory. By comparison, the explicit masslumping mode is about twice as fast and scales to fewer grid nodes per computational core.<ref>S. Tanaka, S. Bunya, J.J. Westerink, C. Dawson, R.A. Luettich, Scalability of an Unstructured Grid Continuous Galerkin Based Hurricane Storm Surge Model, J. Sci. Comput. 46 (2011) 329–358. doi:10.1007/s1091501094021</ref> Moreover, for model setups that are sufficiently resolved in space and time, differences in the solution between approaches should be small. Though, many users have reported somewhat lower stability in lumped explicit mode. 
+  
+  The most recent version (55+) also has an option that improves the (default) semiimplicit consistent GWCE mass matrix mode to compute the complete (total depth) gravity wave term (free surface gradient) implicitly; toggled by setting IMDigit6 to 3. The default version (IMDigit6=1), only computes the initial still water depth component of the free surface gradient implicitly, which might make it more susceptible to CFL violations in shallow depths and can encounter Matrix diagonality issues overland where the initial still water depth is negative.  
== References ==  == References ==  
<references />  <references /> 
Latest revision as of 19:30, 21 August 2020
IM
is an important parameter in the fort.15 file that defines numerical model formulation and dimension. Among other things, IM
specifies whether ADCIRC is solved in twodimensional depthintegrated (2DDI) or in threedimensions (3D), solution of the governing equations is semiimplicit or explicit in time, and whether the model formulation is barotropic or baroclinic. Popular values for 2D barotropic ADCIRC include IM=0
and IM=111112
; users should be aware that the A00, B00, C00
coefficients must be specified differently in these two cases.
Default IM Values
Default simulation option combinations can be specified through single or double digit values, some of which are shortcuts to the sixdigit codes described in the next heading.
The available IM
values are specified in the table below and in the following section on 6digit values:
IM Value  Sixdigit Equivalent  Description 

0  111111  Barotropic 2DDI 
1  611111  Barotropic 3D velocitybased momentum 
2    Barotropic 3D stressbased momentum 
10    Barotropic 2DDI with passive scalar transport 
11    Barotropic 3D velocitybased momentum with passive scalar transport 
20    Baroclinic 2DDI 
21    Baroclinic 3D velocitybased momentum 
30    Baroclinic 2DDI with passive scalar transport 
31    Baroclinic 3D velocitybased momentum with passive scalar transport 
Note that all default IM
values employ the semiimplicit consistent GWCE mass matrix solver. It has less numerical error and tends to be more stable than the explicit masslumping approach at the expense of computational time and memory.
Sixdigit IM Codes
For finegrained control of various options sixdigit codes for IM
can be specified. Each digit represents a specific option regarding the dimension and the formulation of certain terms or integration methods in the GWCE or momentum equations.
The available options for each digit are specified below, with the first digit being the leftmost. The internal flags that are set are listed to help users dig through the code.
Value  Digit 1: 2DDI/3D, Lateral Stress in GWCE^{[1]}  Digit 2: Advection in GWCE^{[2]}  Digit 3: Lateral Stress in Momentum^{[1]}  Digit 4: Advection in Momentum^{[2]}  Digit 5: Area Integration in Momentum  Digit 6: GWCE Mass Matrix, Barotropic/Baroclinic  

1 (default)  2DDI, KolarGray fluxbasedCGWCE_LS_KGQ=.TRUE.

Non conservativeCGWCE_Advec_NC=.TRUE.

Integration by parts, velocitybasedCME_LS_IBPV=.TRUE.

Non conservativeCME_New_NC=.TRUE.

Corrected CME_AreaInt_Corr=.TRUE.

Consistent (implicit for linear part of gravity wave term), barotropicILump=0
 
2  2DDI, 2part fluxbasedCGWCE_LS_2PartQ=.TRUE.

Conservative form 1CGWCE_Advec_C1=.TRUE.

Integration by parts, fluxbasedCME_LS_IBPQ=.TRUE.

Conservative form 1CME_New_C1=.TRUE.

Original CME_AreaInt_Orig=.TRUE.

Lumped (explicit), barotropicCGWCE_Lump=.TRUE. , ILump=1
 
3  2DDI, 2part velocitybasedCGWCE_LS_2PartV=.TRUE.

Conservative form 2CGWCE_Advec_C2=.TRUE.

Integration by parts, velocitybased symmetricalCME_LS_IBPSV=.TRUE.

Conservative form 2CME_New_C2=.TRUE.

  Consistent (implicit for full gravity wave term), barotropicCGWCE_HDP=.TRUE. , IFNL_HDP=1 , ILump=0
 
4  2DDI, 2part fluxbased symmetricalCGWCE_LS_2PartSQ=.TRUE.

  Integration by parts, fluxbased symmetricalCME_LS_IBPSQ=.TRUE.

      
5  2DDI, 2part velocitybased symmetricalCGWCE_LS_2PartSV=.TRUE.

  2 Part, velocitybased (not implemented)CME_LS_2PartV=.TRUE.

      
6  3D, KolarGray fluxbasedC2DDI=.FALSE. , CGWCE_LS_KGQ=.TRUE. , C3D=.TRUE. , C3DVS=.TRUE. , ILump=0

  2 Part, fluxbased (not implemented)CME_LS_2PartQ=.TRUE.

     
A common code combination is IM=111112
, which is identical to the default 111111
(same as IM=0
), but simulates in explicit masslumping mode. Note that A00, B00, C00
must be set to 0.0 1.0 0.0
when in this mode. Lumped explicit mode is a useful alternative to the (default) semiimplicit consistent GWCE mass matrix mode, because the latter requires a matrix solve that increases computational time and memory. By comparison, the explicit masslumping mode is about twice as fast and scales to fewer grid nodes per computational core.^{[3]} Moreover, for model setups that are sufficiently resolved in space and time, differences in the solution between approaches should be small. Though, many users have reported somewhat lower stability in lumped explicit mode.
The most recent version (55+) also has an option that improves the (default) semiimplicit consistent GWCE mass matrix mode to compute the complete (total depth) gravity wave term (free surface gradient) implicitly; toggled by setting IMDigit6 to 3. The default version (IMDigit6=1), only computes the initial still water depth component of the free surface gradient implicitly, which might make it more susceptible to CFL violations in shallow depths and can encounter Matrix diagonality issues overland where the initial still water depth is negative.
References
 ↑ ^{1.0} ^{1.1} K.M. Dresback, R.L. Kolar, R.A. Luettich, Jr. (2005). On the Form of the Momentum Equation and Lateral Stress Closure Law in Shallow Water Modeling, in: Estuar. Coast. Model., American Society of Civil Engineers, Reston, VA, 399–418. doi:10.1061/40876(209)23
 ↑ ^{2.0} ^{2.1} K.M. Dresback, R.L. Kolar, J.C. Dietrich (2005). On the Form of the Momentum Equation for Shallow Water Models Based on the Generalized Wave Continuity Equation: Conservative vs. NonConservative. Advances in Water Resources, 28(4), 345358. doi:10.1016/j.advwatres.2004.11.011
 ↑ S. Tanaka, S. Bunya, J.J. Westerink, C. Dawson, R.A. Luettich, Scalability of an Unstructured Grid Continuous Galerkin Based Hurricane Storm Surge Model, J. Sci. Comput. 46 (2011) 329–358. doi:10.1007/s1091501094021