Skip to content

Commit

Permalink
Adding lake energy transport (LKE) package. Includes new autotest
Browse files Browse the repository at this point in the history
  • Loading branch information
emorway-usgs committed Feb 8, 2024
1 parent a1a05f8 commit 57790ba
Show file tree
Hide file tree
Showing 22 changed files with 5,189 additions and 47 deletions.
780 changes: 780 additions & 0 deletions autotest/test_gwe_lke_conduction.py

Large diffs are not rendered by default.

31 changes: 12 additions & 19 deletions doc/Common/gwe-lkeobs.tex
Original file line number Diff line number Diff line change
@@ -1,25 +1,18 @@
% general APT observations
LKE & temperature & ifno or boundname & -- & Lake temperature. If boundname is specified, boundname must be unique for each lake. \\
LKE & flow-ja-face & ifno or boundname & ifno or -- & Energy flow between two lakes connected by an outlet. If more than one outlet is used to connect the same two lakes, then the energy flow for only the first outlet can be observed. If a boundname is specified for ID1, then the result is the total energy flow for all outlets for a lake. If a boundname is specified for ID1 then ID2 is not used.\\
LKE & storage & ifno or boundname & -- & Simulated energy storage flow rate for a lake or group of lakes. \\
LKE & constant & ifno or boundname & -- & Simulated energy constant-flow rate for a lake or group of lakes. \\
LKE & from-mvr & ifno or boundname & -- & Simulated energy inflow into a lake or group of lakes from the MVE package. Energy inflow is calculated as the product of provider temperature and the mover flow rate. \\
LKE & temperature & lakeno or boundname & -- & Lake temperature. If boundname is specified, boundname must be unique for each lake. \\
LKE & flow-ja-face & lakeno or boundname & lakeno or -- & Energy flow between two lakes connected by an outlet. If more than one outlet is used to connect the same two lakes, then the energy flow for only the first outlet can be observed. If a boundname is specified for ID1, then the result is the total energy flow for all outlets for a lake. If a boundname is specified for ID1 then ID2 is not used.\\
LKE & storage & lakeno or boundname & -- & Simulated energy storage flow rate for a lake or group of lakes. \\
LKE & constant & lakeno or boundname & -- & Simulated energy constant-flow rate for a lake or group of lakes. \\
LKE & from-mvr & lakeno or boundname & -- & Simulated energy inflow into a lake or group of lakes from the MVE package. Energy inflow is calculated as the product of provider temperature and the mover flow rate. \\
LKE & to-mvr & outletno or boundname & -- & Energy outflow from a lake outlet, a lake, or a group of lakes that is available for the MVR package. If boundname is not specified for ID, then the outflow available for the MVR package from a specific lake outlet is observed. In this case, ID is the outlet number, which must be between 1 and NOUTLETS. \\
LKE & lkt & ifno or boundname & \texttt{iconn} or -- & Energy flow rate for a lake or group of lakes and its aquifer connection(s). If boundname is not specified for ID, then the simulated lake-aquifer flow rate at a specific lake connection is observed. In this case, ID2 must be specified and is the connection number \texttt{iconn} for lake \texttt{ifno}. \\
LKE & lke & lakeno or boundname & \texttt{iconn} or -- & Energy flow rate for a lake or group of lakes and its aquifer connection(s). If boundname is not specified for ID, then the simulated lake-aquifer flow rate at a specific lake connection is observed. In this case, ID2 must be specified and is the connection number \texttt{iconn} for lake \texttt{lakeno}. \\

%observations specific to the lake package
% rainfall evaporation runoff ext-inflow withdrawal outflow
LKE & rainfall & ifno or boundname & -- & Rainfall rate applied to a lake or group of lakes multiplied by the rainfall temperature. \\
LKE & evaporation & ifno or boundname & -- & Simulated evaporation rate from a lake or group of lakes multiplied by latent heat of vaporization, heat capcity of the simulated fluid, and the density of the simulated fluid. \\
LKE & runoff & ifno or boundname & -- & Runoff rate applied to a lake or group of lakes multiplied by the runoff temperature. \\
LKE & ext-inflow & ifno or boundname & -- & Energy inflow into a lake or group of lakes calculated as the external inflow rate multiplied by the inflow temperature. \\
LKE & withdrawal & ifno or boundname & -- & Specified withdrawal rate from a lake or group of lakes multiplied by the simulated lake temperature. \\
LKE & ext-outflow & ifno or boundname & -- & External outflow from a lake or a group of lakes, through their outlets, to an external boundary. If the water mover is active, the reported ext-outflow value plus the rate to mover is equal to the total outlet outflow.
LKE & rainfall & lakeno or boundname & -- & Rainfall rate applied to a lake or group of lakes multiplied by the rainfall temperature. \\
LKE & evaporation & lakeno or boundname & -- & Simulated evaporation rate from a lake or group of lakes multiplied by the latent heat of evaporation for determining the energy lost from a lake. \\
LKE & runoff & lakeno or boundname & -- & Runoff rate applied to a lake or group of lakes multiplied by the runoff temperature. \\
LKE & ext-inflow & lakeno or boundname & -- & Energy inflow into a lake or group of lakes calculated as the external inflow rate multiplied by the inflow temperature. \\
LKE & withdrawal & lakeno or boundname & -- & Specified withdrawal rate from a lake or group of lakes multiplied by the simulated lake temperature. \\
LKE & ext-outflow & lakeno or boundname & -- & External outflow from a lake or a group of lakes, through their outlets, to an external boundary. If the water mover is active, the reported ext-outflow value plus the rate to mover is equal to the total outlet outflow.

%LKE & outlet-inflow & ifno or boundname & -- & Simulated inflow from upstream lake outlets into a lake or group of lakes. \\
%LKE & inflow & ifno or boundname & -- & Sum of specified inflow and simulated inflow from upstream lake outlets into a lake or group of lakes. \\
%LKE & outlet & outletno or boundname & -- & Simulate outlet flow rate from a lake outlet, a lake, or a group of lakes. If boundname is not specified for ID, then the flow from a specific lake outlet is observed. In this case, ID is the outlet number outletno. \\
%LKE & volume & ifno or boundname & -- & Simulated lake volume or group of lakes. \\
%LKE & surface-area & ifno or boundname & -- & Simulated surface area for a lake or group of lakes. \\
%LKE & wetted-area & ifno or boundname & \texttt{iconn} or -- & Simulated wetted-area for a lake or group of lakes and its aquifer connection(s). If boundname is not specified for ID, then the wetted area of a specific lake connection is observed. In this case, ID2 must be specified and is the connection number \texttt{iconn}. \\
%LKE & conductance & ifno or boundname & \texttt{iconn} or -- & Calculated conductance for a lake or group of lakes and its aquifer connection(s). If boundname is not specified for ID, then the calculated conductance of a specific lake connection is observed. In this case, ID2 must be specified and is the connection number \texttt{iconn}.
4 changes: 4 additions & 0 deletions doc/mf6io/gwe/gwe.tex
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@ \subsection{Energy Source Loading (ESL) Package}
\subsection{Streamflow Energy Transport (SFE) Package}
\input{gwe/sfe}

\newpage
\subsection{Lake Energy Transport (LKE) Package}
\input{gwe/lke}

\newpage
\subsection{Flow Model Interface (FMI) Package}
\input{gwe/fmi}
Expand Down
55 changes: 55 additions & 0 deletions doc/mf6io/gwe/lke.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
Lake Energy Transport (LKE) Package information is read from the file that is specified by ``LKE6'' as the file type. There can be as many LKE Packages as necessary for a GWE model. Each LKE Package is designed to work with flows from a single corresponding GWF LAK Package. By default \mf uses the LKE package name to determine which LAK Package corresponds to the LKE Package. Therefore, the package name of the LKE Package (as specified in the GWE name file) must match with the name of the corresponding LAK Package (as specified in the GWF name file). Alternatively, the name of the flow package can be specified using the FLOW\_PACKAGE\_NAME keyword in the options block. The GWE LKE Package cannot be used without a corresponding GWF LAK Package.

The LKE Package does not have a dimensions block; instead, dimensions for the LKE Package are set using the dimensions from the corresponding LAK Package. For example, the LAK Package requires specification of the number of lakes (NLAKES). LKE sets the number of lakes equal to NLAKES. Therefore, the PACKAGEDATA block below must have NLAKES entries in it.

\vspace{5mm}
\subsubsection{Structure of Blocks}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/gwe-lke-options.dat}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/gwe-lke-packagedata.dat}
\lstinputlisting[style=blockdefinition]{./mf6ivar/tex/gwe-lke-period.dat}

\vspace{5mm}
\subsubsection{Explanation of Variables}
\begin{description}
\input{./mf6ivar/tex/gwe-lke-desc.tex}
\end{description}

\vspace{5mm}
\subsubsection{Example Input File}
\lstinputlisting[style=inputfile]{./mf6ivar/examples/gwe-lke-example.dat}

\vspace{5mm}
\subsubsection{Available observation types}
Lake Energy Transport Package observations include lake temperature and all of the terms that contribute to the continuity equation for each lake. Additional LKE Package observations include energy flow rates for individual outlets, lakes, or groups of lakes (\texttt{outlet}). The data required for each LKE Package observation type is defined in table~\ref{table:gwe-lkeobstype}. Negative and positive values for \texttt{lke} observations represent a loss from and gain to the GWE model, respectively. For all other flow terms, negative and positive values represent a loss from and gain from the LKE package, respectively.

\begin{longtable}{p{2cm} p{2.75cm} p{2cm} p{1.25cm} p{7cm}}
\caption{Available LKE Package observation types} \tabularnewline

\hline
\hline
\textbf{Stress Package} & \textbf{Observation type} & \textbf{ID} & \textbf{ID2} & \textbf{Description} \\
\hline
\endfirsthead

\captionsetup{textformat=simple}
\caption*{\textbf{Table \arabic{table}.}{\quad}Available LKE Package observation types.---Continued} \tabularnewline

\hline
\hline
\textbf{Stress Package} & \textbf{Observation type} & \textbf{ID} & \textbf{ID2} & \textbf{Description} \\
\hline
\endhead


\hline
\endfoot

\input{../Common/gwe-lkeobs.tex}
\label{table:gwe-lkeobstype}
\end{longtable}

\vspace{5mm}
\subsubsection{Example Observation Input File}
\lstinputlisting[style=inputfile]{./mf6ivar/examples/gwe-lke-example-obs.dat}


1 change: 1 addition & 0 deletions doc/mf6io/gwe/namefile.tex
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ \subsubsection{Explanation of Variables}
CTP6 & Constant Temperature Package & * \\
ESL6 & Energy Source Loading Package & * \\
SFE6 & Streamflow Energy Transport Package & * \\
LKE6 & Lake Energy Transport Package & * \\
OBS6 & Observations Option \\
\hline
\end{tabular*}
Expand Down
Loading

0 comments on commit 57790ba

Please sign in to comment.