flow360.StoppingCriterion#
- class StoppingCriterion[source]#
Bases:
Flow360BaseModelStoppingCriterionclass forRunControl.stopping_criteriasettings.Example
Define a stopping criterion on a
ProbeOutputwith a tolerance of 0.01. The ProbeOutput monitors the moving range of Helicity in a moving window of 10 steps, at the location of (0, 0, 0,005) * fl.u.m.>>> monitored_variable = fl.UserVariable( ... name="Helicity_user", ... value=fl.math.dot(fl.solution.velocity, fl.solution.vorticity), ... ) >>> criterion = fl.StoppingCriterion( ... name="Criterion_1", ... monitor_output=fl.ProbeOutput( ... name="Helicity_probe", ... output_fields=[ ... monitored_variable, ... ], ... probe_points=fl.Point(name="Point1", location=(0, 0, 0.005) * fl.u.m), ... moving_statistic = fl.MovingStatistic(method = "range", moving_window_size = 10) ... ), ... monitor_field=monitored_variable, ... tolerance=0.01, ... )
- monitor_field: UserVariable | str [Required]#
The field to be monitored. This field must be present in the output_fields of monitor_output.
- monitor_output: Annotated[ForceOutput | SurfaceIntegralOutput | ProbeOutput | SurfaceProbeOutput, FieldInfo(annotation=NoneType, required=True, discriminator='output_type')] | str [Required]#
The monitored output or its id.
- tolerance: _serializer, return_type=PydanticUndefined, when_used=always)] [Required]#
The tolerance threshold of this criterion.
- Constraints:
func = <function ValueOrExpression.__class_getitem__.<locals>._serializer at 0x76d26badf490>
json_schema_input_type = PydanticUndefined
return_type = PydanticUndefined
when_used = always
- tolerance_window_size: int | None = None#
The number of data points from the monitor_output to be used to check whether the \(|max-min|/2\) of the monitored field within this window is below tolerance or not. If not set, the criterion will directly compare the latest value with tolerance.
- Constraints:
ge = 2