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:
+x direction, from (xmin, ymin, zmin) to (xmax, ymin, zmin)
+y direction, from (xmax, ymin, zmin) to (xmax, ymax, zmin)
+z direction, from (xmin, ymax, zmin) to (xmax, ymax, zmax)
-x direction, from (xmax, ymax, zmax) to (xmin, ymax, zmax)
-y direction, from (xmin, ymax, zmax) to (xmin, ymin, zmax)
-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.
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.
<History BLoop>
kind = bLoop
field = myEmField.magField
lowerBounds = [5 5 12]
upperBounds = [25 25 12]
</History>