bLoop

bLoop

Works with VSimBase, VSimEM, VSimPD, VSimPA, and VSimMD licenses.

Vorpal computes the enclosed current in Amperes. bLoop does not integrate along a circle. bLoop performs quadrature to compute the B loop 1/mu_0 x S B . dl, which equals the enclosed current (i.e. the original Ampere’s circuital law). Displacement current is neglected. The unit is Ampere.

Let the B loop go through cell centers so we only have to interpolate the B components between two values (Yee mesh is assumed).

The point on the loop closest to the origin is thus at

 LowerBounds+(1/2,1/2,1/2)=(xmin,ymin,zmin)


and the point on the loop furthest from the origin is at:
 UpperBounds-(1/2,1/2,1/2)=(xmax,ymax,zmax)


We'll divide the loop into 6 segments:
  1. +x direction, from (xmin, ymin, zmin) to (xmax, ymin, zmin)

  2. +y direction, from (xmax, ymin, zmin) to (xmax, ymax, zmin)

  3. +z direction, from (xmin, ymax, zmin) to (xmax, ymax, zmax)

  4. -x direction, from (xmax, ymax, zmax) to (xmin, ymax, zmax)

  5. -y direction, from (xmin, ymax, zmax) to (xmin, ymin, zmax)

  6. -z direction, from (xmin, ymin, zmax) to (xmin, ymin, zmin)

    For NDIM=1, the loop then consists of segments 1 and 4, a back and forth line integral that exactly cancels out, so no need for quadrature.

    For NDIM=2, the loop then consists of segments 1, 2, 4 and 5.

    For NDIM=3, the loop consists of all 6 segments.

    To maximize code reuse we’ll then put conditionals around segments 3 & 6.

bLoop Parameters

Use the bLoop History kind with the following parameters:

field (string, required)

Indicates the field for a History kind that reports data for a single field. Currently, this field should be a magnetic field on the Yee mesh.

lowerBounds (integer vector, required)

Set loop corner closest to origin.

upperBounds (integer vector, required)

Set loop corner furthest from origin.

bLoop History Example

<History BLoop>
    kind = bLoop
    field = myEmField.magField
    lowerBounds = [5 5 12]
    upperBounds = [25 25 12]
</History>