Skip to content

Commit 40920ca

Browse files
committed
FDS User Guide: Add HEARTBEAT keywords for external control
1 parent 219d7cf commit 40920ca

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8770,7 +8770,7 @@ \section{External Control of FDS (Beta)}
87708770

87718771
It is possible to externally control some aspects of an FDS simulation while the simulation is running. Any FDS input that has either a \ct{RAMP_ID} (except for the output time ramps on \ct{DUMP} such as \ct{RAMP_BNDF}) or a \ct{CTRL_ID} as one of its inputs can be externally controlled. A \ct{RAMP} can be externally controlled by setting \ct{EXTERNAL_FILE} on \ct{RAMP}. A \ct{CTRL} can be externally controlled by setting \ct{FUNCTION_TYPE='EXTERNAL'}.
87728772

8773-
When external control is selected, FDS will set the value of the \ct{RAMP} or the logical state of the \ct{CTRL} based on values contained in a csv file whose name is given by \ct{EXTERNAL_FILENAME} on \ct{MISC}. This file will be checked for new values every \ct{DT_EXTERNAL} on \ct{TIME} seconds. Only those inputs whose values are being changed need to specified. For inputs not specified or if the file does not exist or cannot be opened (e.g., locked by the operating system during a file write), the current values will be kept. The initial values are defined with either \ct{INITIAL_VALUE} on \ct{RAMP} or \ct{INITIAL_STATE} on \ct{CTRL}.
8773+
When external control is selected, FDS will set the value of the \ct{RAMP} or the logical state of the \ct{CTRL} based on values contained in a csv file whose name is given by \ct{EXTERNAL_FILENAME} on \ct{MISC}. This file will be checked for new values every \ct{DT_EXTERNAL} on \ct{TIME} seconds. Only those inputs whose values are being changed need to specified. For inputs not specified or if the file does not exist or cannot be opened (e.g., locked by the operating system during a file write), the current values will be kept. The initial values are defined with either \ct{INITIAL_VALUE} on \ct{RAMP} or \ct{INITIAL_STATE} on \ct{CTRL}. FDS can be forced to wait if no file is present or use an alternate \ct{EXTERNAL_FILENAME} by specifying \ct{DT_EXTERNAL_HEARTBEAT} and \ct{EXTERNAL_HEARTBEAT_FILENAME} on \ct{TIME}. With this approach FDS looks for \ct{EXTERNAL_HEARTBEAT_FILENAME}. If the file is not found FDS will wait up to \ct{DT_EXTERNAL_HEARTBEAT} seconds. If \ct{EXTERNAL_HEARTBEAT_FILENAME} is still not present, FDS will stop trying to update the external controls. If \ct{HEARTBEAT_FAIL} on \ct{TIME} is true, FDS will stop the simulation. If \ct{EXTERNAL_HEARTBEAT_FILENAME} is present, FDS will read \ct{EXTERNAL_FILENAME} from it.
87748774

87758775
The csv file format is:
87768776
\begin{lstlisting}
@@ -13602,6 +13602,9 @@ \section{\texorpdfstring{{\tt TIME}}{TIME} (Time Parameters)}
1360213602
\ct{DT_END_FILL} & Real & Section~\ref{info:TIME_Control} & s & $1.0 \times 10^{-6}$ \\ \hline
1360313603
\ct{DT_END_MINIMUM} & Real & Section~\ref{info:TIME_Control} & s & \ct{2.*EPSILON} \\ \hline
1360413604
\ct{DT_EXTERNAL} & Real & Section~\ref{info:external_control} & s & 0 \\ \hline
13605+
\ct{DT_EXTERNAL_HEARTBEAT} & Real & Section~\ref{info:external_control} & s & 0 \\ \hline
13606+
\ct{EXTERNAL_HEARTBEAT_FILENAME} & Character & Section~\ref{info:external_control} & & \\ \hline
13607+
\ct{HEARTBEAT_FAIL} & Logical & Section~\ref{info:external_control} & & \ct{T} \\ \hline
1360513608
\ct{LIMITING_DT_RATIO} & Real & Section~\ref{info:Errors} & & 0.0001 \\ \hline
1360613609
\ct{LOCK_TIME_STEP} & Logical & Section~\ref{info:TIME_Control} & & \ct{F} \\ \hline
1360713610
\ct{RAMP_TIME} & Character & Section~\ref{info:simulation_time_ramp} & & \\ \hline

0 commit comments

Comments
 (0)