<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<p>Hello again,</p>
<p><br>
</p>
<p>I am working on a pipeline using Catalyst that writes data only when features are detected. The idea is to have a 3D contour generated in the pipeline, and when it is big enough, start recording data. There is a long lead-up to when the features appear,
 and then they disappear rapidly, so I would like to only collect data when the features are present.
<br>
</p>
<p><br>
</p>
<p>To that end, my DoCoProcessing() function has something that checks the 'Area' value in the CellData of an IntegrateVariables filter. The full function is below. However, this doesn't ever write any images or data. It also doesn't throw any errors, so I
 have a feeling the pipeline isn't actually evaluated/updated after the call to UpdateProducers.
<br>
</p>
<p><br>
</p>
<p>So, my question -- at what point in the DoCoProcessing function is the pipeline actually evaluated? Do all the filters execute when the UpdatedProducers function is called? Or do they only update when the outputs to which they are connected are called, ie.
 WriteData and WriteImages? <br>
</p>
<p><br>
</p>
<p>Thanks,</p>
<p><br>
</p>
<p>Tim</p>
<p><br>
</p>
<p></p>
<div>def DoCoProcessing(datadescription):<br>
    "Callback to do co-processing for current timestep"<br>
    global coprocessor<br>
    global lastTime<br>
    global deltaT<br>
<br>
    # Update the coprocessor by providing it the newly generated simulation data.                                                                                                                                  <br>
    # If the pipeline hasn't been setup yet, this will setup the pipeline.                                                                                                                                         <br>
    coprocessor.UpdateProducers(datadescription)<br>
<br>
    curTime = datadescription.GetTime()<br>
<br>
    if curTime >= lastTime + deltaT:<br>
      lastTime = curTime<br>
<br>
      if coprocessor.Pipeline.flameArea.CellData['Area'] > 1e-9:<br>
        # Write output data, if appropriate.                                                                                                                                                                       <br>
        coprocessor.WriteData(datadescription);<br>
<br>
        # Write image capture (Last arg: rescale lookup table), if appropriate.                                                                                                                                    <br>
        coprocessor.WriteImages(datadescription, rescale_lookuptable=False)<br>
<br>
        # Live Visualization, if enabled.                                                                                                                                                                          <br>
        coprocessor.DoLiveVisualization(datadescription, "localhost", 22222)<br>
</div>
<br>
<p></p>
</div>
</body>
</html>