Open rgknox opened 3 years ago
Adding an external file for solver related parameters would be helpful. One can then specify 1D or 2D, how many layer or shells to include in the simulation. Solver can then be selected by the code like this in the image below:
Figure showing comparison among different solvers.
@pnlfang thanks! Do you have a timing comparison to evaluate the relative computational costs?
@ckoven Looking at the restart file time stamps, for one year simulation it took 12 min, 18 min, and 24 min for the particular 1D test using 1D, picard, and newton, respectively. Global simulation using 2D picard is feasible.
@pnlfang has introduced a 2D solver for hydraulics as an alternative to the original 1D solver that first rolled out with FATES-HYDRO. The 2D solver simultaneously calculates the fluxes through the above-ground plant, root and soil compartments, whereas the 1D solve will iteratively perform solve on the plant and 1 soil layer at a time (assuming that each root layer has a partial share of the stem/leaf conduit above ground).
Could we use this space to make some decisions?
1) Should we update default solver to be the 2D?
2) Should we move the switch controlling the solver from a hard-code logical to the parameter file? We have the choice of solver as a hard-coded logical constant, shown here:
https://github.com/NGEET/fates/blob/8f28a6d978f78ef08cc1f5797abd5ef0c9fd39f9/main/FatesHydraulicsMemMod.F90#L13
3) What type of simulation(s) and benchmarks would help us decide which solution should be the default?
4) There are other hard-coded parameters controlling both 2D and 1D solves that we may impact this decision that we want to consider. For instance, we use 5 concentric soil shells around the root, are those needed and does one solver excel in one environment over the other?