FieldUpdater

FieldUpdater

Field updaters are defined between the tags:

<FieldUpdater *nameOfThisUpdater*>

</FieldUpdater>

FieldUpdater Parameters

kind (required string)

Type of updater, either CPU or CrossDev;

The CPU updaters:
The CrossDev updaters:
lowerBounds (integer vector, required)

Lower bounds of updater region.

upperBounds (integer vector, required)

Upper bounds of updater region.

Advanced parameters available with certain updaters

Global region modification parameters

There are a number of parameters that modify the global region to be updated (as specified in lowerBounds and upperBounds) based on the component of the field being updated. These are available for the following updaters, which all update a single vector field:

The global region modification parameters are:

expandToTopInComponentDir (optional integer, default = 0 (false))

When true: if the region upper bound in the direction of the component (mod 3) is the upper bound of the simulation, and that direction is not periodic, then the upper bound is increased by one so that the region includes the top of the simulation.

contractFromBottomInComponentDir (optional integer, default = 0 (false))

When true: if the region lower bound in the direction of the component (mod 3) is the lower bound of the simulation, and that direction is not periodic, then the lower bound is increased by one so that the region excludes the bottom of the simulation.

expandToTopInNonComponentDir (optional integer, default = 0 (false))

When true: if the region upper bound in a direction perpendicular to the component (mod 3) is the upper bound of the simulation, and that direction is not periodic, then the upper bound is increased by one so that the region includes the top of the simulation.

contractFromBottomInNonComponentDir (optional integer, default = 0 (false))

When true: if the region lower bound in a direction perpendicular to the component (mod 3) is the lower bound of the simulation, and that direction is not periodic, then the lower bound is increased by one so that the region excludes the bottom of the simulation.

expandAboveTopInComponentDir (optional integer, default = 0)

If the region upper bound in the direction of the component (mod 3) is the upper bound of the simulation or higher, and that direction is not periodic, then the upper bound is increased by this value.

expandBelowBottomInComponentDir (optional integer, default = 0)

When true: if the region lower bound in the direction of the component (mod 3) is the lower bound of the simulation or below, and that direction is not periodic, then the lower bound is decreased by this value.

expandAboveTopInNonComponentDir (optional integer, default = 0)

When true: if the region upper bound in a direction perpendicular to the component (mod 3) is the upper bound of the simulation or higher, and that direction is not periodic, then the upper bound is increased by this value.

expandBelowBottomInNonComponentDir (optional integer, default = 0)

When true: if the region lower bound perpendicular to the direction of the component (mod 3) is the lower bound of the simulation or below, and that direction is not periodic, then the lower bound is decreased by this value.

Note

If both expandToTopInComponentDir and expandAboveTopInComponentDir are specified, and the conditions for expansion described above are met, the upper bound in the component direction is first increased by one, and then increased again by the value of expandAboveTopInComponentDir. If both contractFromBottomInComponentDir and expandBelowBottomInComponentDir are specified, and the conditions for contraction are met, the lower bound is first increased by one, and then decreased by the value of expandBelowBottomInComponentDir. Similar behavior occurs for the corresponding non-component direction parameters.

Local region modification parameters

There are two parameters available to expand the local update region beyond the local domain, into the guard cells. This can in certain cases be useful in simulations with periodic boundaries, to allow updaters to overwrite the values imposed by the periodic boundary conditions. It can also be used to make parallel algorithms more efficient, by updating the local guard cells directly rather than getting values messages from other domains. These are available for the following updaters:

The local region modification parameters are:

cellsToUpdateBelowDomain (optional integer vector, default = [0 0 0])

The number of cells (in each direction, x, y, and z) the updater updates below the local domain.

cellsToUpdateAboveDomain (optional integer vector, default = [0 0 0])

The number of cells (in each direction, x, y, and z) the updater updates above the local domain.