lineIntegral (1d, 2d, 3d)

Performs operations on a set of input nodalArray to produce a dynVector by integrating along a specified trajectory. Uses an expression updater to evaluate the expression. The expression evaluator recognizes positions “x”,”y”,”z” and time “t” and these can be used to evaluate functions of time and space.

Data

in (string vector)
Input 1 to N are input nodalArray on which operations will be performed. Example in = [E, B]
out (string)
output dynVector where the result of the operation is stored
layout (string)
The name of the bin to use when constructing the line integral. The line integral requires that a bin be constructed. The updater binCells (1d, 2d, 3d) can be used to initialize a bin dataStruct.

Parameters

startPosition
The starting position of the line integral
endPosition
The end position of the line integral
numberOfSamples
The number of sample points along the line to be used in computing the line integral
indVars_inName
For each input variable an “indVars” array must be defined. So if in = [E, B] then indVars_E and indVars_B must be defined. If indVars_E = [“Ex”,”Ey”,”Ez”] then operations are performed on “Ex”,”Ey” and “Ez” in the expression evaluator.
preExprs (string vector)
Strings must be put in quotes. The preExprs is used to compute quantities based on indVars that can later be used in the exprs to evaluate the output. Available commands are defined by the muParser (http://muparser.sourceforge.net)
exprs (string vector)
Strings must be put in quotes. The strings are evaluated and placed in the output array. Available command are defined by the muParser (http://muparser.sourceforge.net/)
other (variable definition)

In addition, an arbitrary number of constants can be defined that can then be used in evaluating expression in both preExprs and exprs

Also, the combiner has predefined variables including x,y,z representing the spatial location of the cell, t and dt, representing time and time step and dVolume representing the volume of a cell.

Example

<Updater computeLineIntegral>
  kind = lineIntegral2d
  onGrid = domain
  startPosition = [0.0, 0.0]
  endPosition = [0.5, 0.5]
  numberOfSamples = 100

  layout = [cellBin]
  in = [potential]
  indVars_potential = ["phi"]
  exprs = ["phi"]
  out = [lineIntegralPhi]
</Updater>