NaNInterface
For some objects it is desirable to continue running despite generation of NaN(s). This class provides an interface for choosing whether to:
throw an error
emit a warning, visible on the console for every occurrence of the condition
throw an exception which will cause the solve to fail for Steady solves, or a time step reduction for Transient solves
do nothing at all, just using a quiet NaN which may affect the solution downstream
This interface is commonly used in fluid properties for handling the occurrence of NaN(s). This interface is not a substitute for implementing domain of validity checks in each fluid property. This interface can be complimented by the SolutionInvalidInterface, which can let the solver re-attempt solves when an invalid condition is detected.