core.field
Class EMVec2Field

java.lang.Object
  extended bycore.field.Vec2Field
      extended bycore.field.EMVec2Field

public class EMVec2Field
extends Vec2Field

A planar cross-section of an E&M field, or of the four different velocity fields associated with an E&M field.

An EMVec2Field is a type of Vec2Field whose field is calculated from an EMSource object. The EMVec2Field can represent one of eight different fields: the electric field E; the magnetic field B; the ExB drift velocity of magnetic monopoles c^2 ExB/E^2; the ExB drift velocity of electric monopoles ExB/B^2; a velocity field everywhere along E with magnitude FluidFlowSpeed*((E/Fnorm)^Fpower); a velocity field everywhere along B with magnitude FluidFlowSpeed*((B/Fnorm)^Fpower), a velocity field everywhere along E with magnitude determined by region in the image, or a velocity field everywhere along B with magnitude determined by region in the image.

Upon construction, a coordinate system establishes the mapping between the Vec2Field plane and the space of the E field, the B field, the "electric motion" field, the "magnetic motion" field, or the four fluid flow fields. In the fluid flow cases the "dfield" velocity field is flow along the direction of the either the electric or magnetic field, rather than in the ExB direction, with magnitude determined according to the prescriptions give above.

Version:
1.0
Author:
Andreas Sundquist, John Belcher

Field Summary
private  Vec3 B
           
static int Bfield
          In this case "field" is a magnetic field
static int BfieldMotion
          In this case "dfield" is velocity of drifting monopoles c^2 ExB/E^2
private  Vec3 E
           
static int Efield
          In this case "field" is an electric field
static int EfieldMotion
          In this case "dfield" is velocity of drifting magnetic monopoles ExB/B^2
 BaseExperiment experiment
          The base experiment computing the flow speed by region, if used,
private  int FieldOrMotionFieldType
          FieldOrMotionFieldType determines what this EMVec2Field represents of the five possible types.
 double FluidFlowSpeed
          Fluid flow speed constant in pixels per second, for the situation when we are showing flow fields.
 double Fnorm
          The value of to which B(E) is normalized in computing the fluid flow speed.
 double Fpower
          The value of the power to which B(E)/Fnorm is raised in computing the fluid flow speed.
private  Vec3 origin
          Coordinate system parameters.
private  Vec3 r
           
 Vec RegionFlow
          Values of the flowspeed by region as determined by experiment.getFlowSpeed, when used.
private  double scale
          scale establishes the scale mapping, with larger values zooming out.
private  BaseObject source
          the source of the field
private  Vec3 v
           
static int VBfieldMotion
          In this case "dfield" is a speed parallel to "field" B
static int VEfieldMotion
          In this case "dfield" is a speed parallel to "field" E
static int VRBfieldMotion
          In this case "dfield" is a speed parallel to "field" B and varying by region
static int VREfieldMotion
          In this case "dfield" is a speed parallel to "field" E and varying by region
private  Vec3 xgrid
          Coordinate system parameters.
private  Vec3 xunit
          Coordinate system parameters.
private  Vec3 ygrid
          Coordinate system parameters.
private  Vec3 yunit
          Coordinate system parameters.
 
Constructor Summary
EMVec2Field(BaseObject source, Vec3 center, Vec3 xdir, Vec3 ydir, double scale, int FieldOrMotionFieldType)
          Constructs a new EMVec2Field that calculates the type of field specified by "FieldOrMotionFieldType" produced by the EMSource "source".
EMVec2Field(EMVec2Field field, int FieldOrMotionFieldType)
          Constructs a new EMVec2Field that represents the EMSource and coordinate system as the given "field", but with a different field type given by "FieldOrMotionFieldType".
EMVec2Field(EMVec2Field field, int FieldOrMotionFieldType, BaseExperiment experiment, Vec RegionFlow)
           
EMVec2Field(EMVec2Field field, int FieldOrMotionFieldType, double FluidFlowSpeed, double Fnorm, double Fpower)
           
 
Method Summary
 Vec2 get(Vec2 p, Vec2 f)
          Sets "f" to the value of the EM field at "p".
 Vec2 transform(Vec3 x)
           
 Vec2 transformV(Vec3 dx)
           
 
Methods inherited from class core.field.Vec2Field
get
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Efield

public static final int Efield
In this case "field" is an electric field

See Also:
Constant Field Values

Bfield

public static final int Bfield
In this case "field" is a magnetic field

See Also:
Constant Field Values

EfieldMotion

public static final int EfieldMotion
In this case "dfield" is velocity of drifting magnetic monopoles ExB/B^2

See Also:
Constant Field Values

BfieldMotion

public static final int BfieldMotion
In this case "dfield" is velocity of drifting monopoles c^2 ExB/E^2

See Also:
Constant Field Values

VEfieldMotion

public static final int VEfieldMotion
In this case "dfield" is a speed parallel to "field" E

See Also:
Constant Field Values

VBfieldMotion

public static final int VBfieldMotion
In this case "dfield" is a speed parallel to "field" B

See Also:
Constant Field Values

VREfieldMotion

public static final int VREfieldMotion
In this case "dfield" is a speed parallel to "field" E and varying by region

See Also:
Constant Field Values

VRBfieldMotion

public static final int VRBfieldMotion
In this case "dfield" is a speed parallel to "field" B and varying by region

See Also:
Constant Field Values

source

private BaseObject source
the source of the field


origin

private Vec3 origin
Coordinate system parameters. Origin is the center, the axis are unit vectors made from xdir and ydir, and xgrid and ygrid are scaled by scale of xunit and yunit.


xgrid

private Vec3 xgrid
Coordinate system parameters. Origin is the center, the axis are unit vectors made from xdir and ydir, and xgrid and ygrid are scaled by scale of xunit and yunit.


ygrid

private Vec3 ygrid
Coordinate system parameters. Origin is the center, the axis are unit vectors made from xdir and ydir, and xgrid and ygrid are scaled by scale of xunit and yunit.


xunit

private Vec3 xunit
Coordinate system parameters. Origin is the center, the axis are unit vectors made from xdir and ydir, and xgrid and ygrid are scaled by scale of xunit and yunit.


yunit

private Vec3 yunit
Coordinate system parameters. Origin is the center, the axis are unit vectors made from xdir and ydir, and xgrid and ygrid are scaled by scale of xunit and yunit.


scale

private double scale
scale establishes the scale mapping, with larger values zooming out.


FieldOrMotionFieldType

private int FieldOrMotionFieldType
FieldOrMotionFieldType determines what this EMVec2Field represents of the five possible types.


FluidFlowSpeed

public double FluidFlowSpeed
Fluid flow speed constant in pixels per second, for the situation when we are showing flow fields. The actual fluid flow speed at a given pixel is given by FluidFlowSpeed*(B(E)/Fnorm)^Fpower, where B(E) is the field strength value at that pixel. allows us to vary the flow speed with B(E) magnitude if desired.


Fnorm

public double Fnorm
The value of to which B(E) is normalized in computing the fluid flow speed.


Fpower

public double Fpower
The value of the power to which B(E)/Fnorm is raised in computing the fluid flow speed.


RegionFlow

public Vec RegionFlow
Values of the flowspeed by region as determined by experiment.getFlowSpeed, when used.


experiment

public BaseExperiment experiment
The base experiment computing the flow speed by region, if used,


r

private Vec3 r

v

private Vec3 v

E

private Vec3 E

B

private Vec3 B
Constructor Detail

EMVec2Field

public EMVec2Field(BaseObject source,
                   Vec3 center,
                   Vec3 xdir,
                   Vec3 ydir,
                   double scale,
                   int FieldOrMotionFieldType)
Constructs a new EMVec2Field that calculates the type of field specified by "FieldOrMotionFieldType" produced by the EMSource "source". The coordinate system is established by picking the "center" and the two axes "xdir" and "ydir". The parameter "scale" establishes the scale mapping, where larger values "zoom out".


EMVec2Field

public EMVec2Field(EMVec2Field field,
                   int FieldOrMotionFieldType)
Constructs a new EMVec2Field that represents the EMSource and coordinate system as the given "field", but with a different field type given by "FieldOrMotionFieldType".


EMVec2Field

public EMVec2Field(EMVec2Field field,
                   int FieldOrMotionFieldType,
                   double FluidFlowSpeed,
                   double Fnorm,
                   double Fpower)

EMVec2Field

public EMVec2Field(EMVec2Field field,
                   int FieldOrMotionFieldType,
                   BaseExperiment experiment,
                   Vec RegionFlow)
Method Detail

transform

public Vec2 transform(Vec3 x)

transformV

public Vec2 transformV(Vec3 dx)

get

public Vec2 get(Vec2 p,
                Vec2 f)
Sets "f" to the value of the EM field at "p". "p" is not modified Returns: resulting "f"

Specified by:
get in class Vec2Field