geometryUpdater

geometryUpdater

works with VSimEM and VSimMD licenses.

MultiField updater that evaluates a geometric quantity (pertaining to the individual cell) and sets (or adds or multiplies) the field component to that geometric quantity.

geometryUpdater Parameters

The geometryUpdater takes the lowerBounds and upperBounds parameters of FieldUpdater, as well as the following parameters:

operation (required string)

One of:

set: Fj=g
add: Fj+=g
multiply: Fj*=g
geometricQuantity (required string)

geometric quantity g (see operation) to be evaluated; one of:

volumeFraction:
Fraction of the volume in the cell that is inside the specified gridBoundary.
surfaceOutwardNormal:
Outward normal to the surface of the gridBoundary in a cell.
surfaceArea
The surface area of the queryGridBoundary within the cell.
faceAreaFraction
The fraction of the cell face (normal to queryComponent) that is inside the queryGridBoundary
edgeLineFraction
The fraction of the cell edge (parallel to the queryComponent direction) that is inside the queryGridBoundary.
octantVolumeFraction
The fraction of the cell octant that is inside the queryGridBoundary.
queryGridBoundary (required string)

Name of the gridBoundary to be used to calculate the geometricQuantity (as opposed to the gridBoundary all updaters have, which determines which cells are updated by that updater).

queryComponent (optional integer, default = 0)

Component of the data to be read for the surfaceOutwardNormal, edgeLineFraction, and faceAreaFraction quantities.

writeFields (required string vector)

A vector containing a single element, the name of field to update with the geometric data.

writeComponents (required integer vector)

The components of \(F\) to update. The geometric quantity will be evaluated for each component.

Example geometryUpdater Block

<FieldUpdater calcVolPlane>
  kind = geometryUpdater
  lowerBounds = [0 0 0]
  upperBounds = [NX NY NZ]
  operation = set
  geometricQuantity = volumeFraction
# update cell volume using queryGridBndry
  queryGridBoundary = plane
  writeFields = [VolFracPlane]
  writeComponents = [0]
</FieldUpdater>