VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches

Validates missing-link diagnostics write a winding value for an open surface. More...

Modules

 Connectors
 
 LBM
 

Functions

 TEST (GridWindingDiagnosticsSimulationObserverTest, WritesMissingLinkWinding)
 
 TEST (GridWindingDiagnosticsSimulationObserverTest, BoundaryLinkHitsAtNeighbourEndpoint)
 
 TEST (GridWindingDiagnosticsSimulationObserverTest, BoundaryLinkHitsInMiddle)
 
 TEST (GridWindingDiagnosticsSimulationObserverTest, BoundaryLinkHitsAtOriginEndpoint)
 
 TEST (GridWindingDiagnosticsSimulationObserverTest, BoundaryLinkOutsideSegmentNoHit)
 

Detailed Description

Validates missing-link diagnostics write a winding value for an open surface.

Author
Hussein Alihussein

Flow: 1) Construct a Grid3D with 2 nodes in X, 2 in Y, and 2 in Z, and an open tetrahedron with vertices at (0,0,0), (1,0,0), (0,1,0), (0,0,1). The triangles are (0,1,3), (0,3,2), (1,2,3), leaving the (0,1,2) face open. 2) Build one missing link against the open surface: use the mesh triangles directly, then processBoundaryLink() traces a single link segment from origin (0.2, 0.2, -0.2) to neighbour (0.2, 0.2, 0.2) using dx=0.4 and (cx,cy,cz)=(0,0,1). The surface is open, so there is no hit; handleMissing() returns false and the link is recorded as missing. 3) Finalize the collection: finalizeMissingLinkCollection() uses the fast-winding evaluator (when VF_HAS_FAST_WINDING is available) to compute and attach winding values for the missing-link endpoints, and also computes endpoint-kind flags. 4) Write the collection to VTK and read back the winding scalar from the file. 5) Parse the appended raw VTK data to extract the winding scalar and assert it is finite and within the expected [0, 1.1] tolerance band.

Additional intersection cases covered below using the same tetrahedron mesh:

Function Documentation

◆ TEST() [1/5]

◆ TEST() [2/5]

◆ TEST() [3/5]

◆ TEST() [4/5]

◆ TEST() [5/5]