functionOfTime
Stores values calculated as a function of time and time-step, usually for the purpose of combining results from other histories
Histories of kind=functionOfTime
are ostensibly that: they record a
value that depends on the time \(t\) and time-step \(n\).
However, their main purpose is to look up results from other Histories
and other Vorpal objects, and combine them in different ways.
If one places a UserFunc of kind=historyFunc
inside histCalc
(see historyFunc), then
histCalc can use the result from another history in its calculation.
It’s important that one pay attention to the order of histories in the
input file: usually one wants the other history (referenced by the
historyFunc) to precede the history that uses it.
histCalc (code block, required)
An Expression <Expression histCalc>
that takes two arguments,
t
(a scalar float) and n
(a scalar integer). Typically this
Expression will contain local functions that look up values
in other Vorpal objects (e.g., fieldFunc).
backupHistCalc (code block, optional)
An Expression <Expression backupHistCalc>
with the same argument- and result-types as
<Expression histCalc>
, to be evaluated if evaluation of
histCalc
fails, and if warningLevel < 3
.
lastResortHistCalc (code block, optional)
An Expression <Expression lastResortHistCalc>
with the same argument- and result-types as
<Expression backupHistCalc>
, to be evaluated if evaluation of
backupHistCalc
fails, and if backupWarningLevel < 3
.
If evaluation of this function fails, the simulation will halt.
resultVecDescriptions (vector of strings, optional)
Associates a string description with each component of the history result, to be written in the dump file. If specified, the number of strings must equal the number of components in the history result; otherwise Vorpal will halt with an error.
warningLevel (integer in {0, 1, 2}, default 0)
Specifies what to do if evaluation of histCalc fails; if 0, simply evaluate backupHistCalc; if 1, issue a warning only after the first failure, and evaluate backupHistCalc; if 2, issue a warning and evaluate backupHistCalc; if 3, halt the simulation.
Note
In a parallel simulation, evaluation may fail on one rank but not on another, so it may be important to search the output on each rank for warnings and error messages.
backupWarningLevel (same as warningLevel)
The same as warningLevel, but applies to failure to evaluate backupHistCalc rather than histCalc. If backupWarningLevel is less than 3, and backupHistCalc fails, lastResortHistCalc will be evaluated instead (for that cell).
<History frequencyEstimate>
kind = functionOfTime
<Expression applySteps>
expression = (n > 0)
</Expression>
<Expression histCalc>
<UserFunc freqSqrEstWeight>
kind = historyFunc
history = frequencyMoments
index = [0]
</UserFunc>
<UserFunc freqSqrEstSum>
kind = historyFunc
history = frequencyMoments
index = [1]
</UserFunc>
<UserFunc freqSqrEstSumSqr>
kind = historyFunc
history = frequencyMoments
index = [2]
</UserFunc>
$ F2_AVGexpr = (freqSqrEstSum(0)/freqSqrEstWeight(0))
$ MSDEVexpr = (freqSqrEstSumSqr(0)/freqSqrEstWeight(0) - F2_AVGexpr^2)
expression = vector( \
sqrt(F2_AVGexpr), \
if(MSDEVexpr > 0., MSDEVexpr, 0.) )
resultVecDescriptions = [ "frequency estimate (Hz)" "mean square deviation of frequency-squared (Hz^4)" ]
</Expression>
</History>