surfaceIntegral (1d, 2d, 3d)

Computes a surface integral as a function of nodalArray values and dumps the results in a dynVector.

Data

in (string vector)
Input 1 to N are input nodalArray on which operations will be performed. Example in = [E, B]
out (string vector)
The dynVector where the result of the surface integral is stored.

Parameters

onEntity (string)
Name of the entity on which the surface integral will be applied.
indVars_name (string vector)
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. This expression evaluator takes, “x”, “y”, “z”, “NormalX”, “NormalY” and “NormalZ” as parameters, where “Normal” are the component normals to the surface location.
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 updater has predefined variables including x,y,z representing the spatial location of the surface, t representing time and NormalX, NormalY and NormalZ representing the surface normal to the boundary.

Example

<Updater computeSurfaceCurrent>
  kind = surfaceIntegral2D
  onGrid = domain
  entity = ghost

  length = LENGTH
  in = [J]
  out = [surfaceCurrent]

  indVars_J = ["Jx","Jy","Jz"]
  exprs = ["2*3.14159*x*Jx"]
</Updater>