Navigation: Scripting Reference Manual > Functions & Subroutines > DataCollectorSurfSetDatum

 

DataCollectorSurfSetDatum

 

Contact Us: fredsupport@photonengr.com

 

Description

This function applies a T_COLLECTED_DATUM variable to a facet in a data collector surface.

 

 

Syntax

success = DataCollectorSurfSetDatum( surf, datumID, tDatum )

 

 

Parameters

success (Boolean)

Return value indicating whether the datum was successfully applied to the facet.

 

surf As Long

Node number of the data collector surface whose datum is being set.

 

datumID As Long

ID number of the facet where the datum is being applied.

 

tDatum As T_COLLECTED_DATUM

Data structure containing the datum information that is being applied.

 

 

Example

The example below demonstrates how to loop over all datum in all active data collector surfaces and zero-out the power entries for any datum that does not meet a specific incident ray count threshold value.

 

Sub Main

          

    Dim tDatum As T_COLLECTED_DATUM

    Dim nDatum As Long, curDatum As Long

    Dim curNode As Long, success As Boolean

    For curNode = 5 To GetEntityCount()-1

        'Is the current entity a surface?       

        If IsSurface( curNode ) Then

            'Is the current surface a data collector?           

            If IsDataCollectorSurf( curNode ) Then

                'Is the data collector set to collect data?

                If DataCollectorSurfIsCollectData( curNode ) Then

                    'Is the data collector initialized? Doesn't guarantee non-zero data has been collected.                 

                    If DataCollectorSurfIsDataAvailable( curNode ) Then

                       

                        'Loop over all datum on the data collector

                        nDatum = DataCollectorSurfGetDatumCount( curNode )

                        For curDatum = 0 To nDatum-1

                           

                            'If ray counts are < threshold, zero out the power values

                            success = DataCollectorSurfGetDatum( curNode, curDatum, tDatum )

                            If (success) And (tDatum.incidentRayCount<10) Then

                                tDatum.absorbedPower      = 0.0

                                tDatum.incidentPower      = 0.0

                                success = DataCollectorSurfSetDatum( curNode, curDatum, tDatum )

                            End If

 

                        Next

                    End If

                End If

            End If

        End If

    Next

 

End Sub

 

See Also

Data Collector Surface Scripting

DataCollectorSurfGetDataStats

DataCollectorSurfGetDatum

DataCollectorSurfGetDatumCount

DataCollectorSurfIsCollectData

DataCollectorSurfIsDataAvailable

DataCollectorSurfReadCollectedDataFile

DataCollectorSurfSetCollectData

DataCollectorSurfWriteCollectedDataFile

 

 

 

 

 

 

Copyright © Photon Engineering, LLC