```java.lang.Object simulations.experiments.BaseExperiment simulations.experiments.faradaysLaw.EddyCurrentsDipoleExperiment
```

public class EddyCurrentsDipoleExperiment
extends BaseExperiment

Eddy currents in a conducting plane below a moving dipole, for various values of the speed of the monopole, following Saslow. This object computes the evolution of the system and also generates an EMSource that computes the eddy currents of the system. The eddy currents are stored in a fake "B" field computed in the object EddyCurrents.

Version:
1.0
Author:
John Belcher

 Nested Class Summary ` class` `EddyCurrentsDipoleExperiment.Motion`

 Field Summary ` double` `angle`           The angle that the dipole makes in the xy plane, with angle = 0 along x. `private  EMCollection` `collection`           Collection consisting of two sets of eddy currents, one for each of the two monopoles making up the dipole. ` EddyCurrents` `current1`           the eddy currents in the conducting sheet for the two monopoles ` EddyCurrents` `current2` ` EddyCurrentsDipoleExperiment.Motion` `equations`           Define the evolution equations used by the RK4 integrator ` double` `H`           H = height of the dipole above z = 0 `private  RungeKuttaIntegration` `integrator`           define the integraton scheme used to numerically integrate the evolution equations in time ` double` `offset`           offset is an overall time offset before the image charges start moving ` double` `q0`           q0 is the magnetic charge ` double` `r`           The distance between the two monopoles that make up the dipole. ` double` `t`           the time ` double` `v`           v is the horizontal speed of the dipole ` double` `v0`           v0 is the vertical speed of the receeding monopoles once they start receeding

 Fields inherited from class simulations.experiments.BaseExperiment `eps, FieldMotionType, FieldType, FluidFlowSpeed, Fnorm, Fpower, numberSmallSteps`

 Constructor Summary ```EddyCurrentsDipoleExperiment(double H, double q0, double v0, double v, double r, double angle, double offset)```           Constructs an instance of the experiment using the given parameters.

 Method Summary ` void` `ConstructEMSource()`           Constructs the EMCollection representing the dipole ` void` `Evolve(double dt)`           Evolves the experiment by a time step "dt" using an RK4 integrator by taking numberSmallSteps between t and t + dt, for accuracy. ` void` ```Evolve(double dt, double maxStep)```           Evolve the experiment by a time step "dt" using an integrator. ` BaseObject` `getEMSource()`           An EMSource that represents the current experimental state that can be used to compute the current E&M fields. ` double` ```getFlowSpeed(Vec3 r, Vec RegionFlow)```           Method to find the flow speed in a given region when we are determining that speed according to region. ` double` ```getHue(double TargetHue, Vec3 r, Vec RegionColor)```           Method to find the hue in a given region when we are coloring according to region (Color Mode 4).

 Methods inherited from class java.lang.Object `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

 Field Detail

### H

`public double H`
H = height of the dipole above z = 0

### t

`public double t`
the time

### offset

`public double offset`
offset is an overall time offset before the image charges start moving

### q0

`public double q0`
q0 is the magnetic charge

### v0

`public double v0`
v0 is the vertical speed of the receeding monopoles once they start receeding

### v

`public double v`
v is the horizontal speed of the dipole

### angle

`public double angle`
The angle that the dipole makes in the xy plane, with angle = 0 along x.

### r

`public double r`
The distance between the two monopoles that make up the dipole.

### current1

`public EddyCurrents current1`
the eddy currents in the conducting sheet for the two monopoles

### current2

`public EddyCurrents current2`

### collection

`private EMCollection collection`
Collection consisting of two sets of eddy currents, one for each of the two monopoles making up the dipole.

### equations

`public EddyCurrentsDipoleExperiment.Motion equations`
Define the evolution equations used by the RK4 integrator

### integrator

`private RungeKuttaIntegration integrator`
define the integraton scheme used to numerically integrate the evolution equations in time

 Constructor Detail

### EddyCurrentsDipoleExperiment

```public EddyCurrentsDipoleExperiment(double H,
double q0,
double v0,
double v,
double r,
double angle,
double offset)```
Constructs an instance of the experiment using the given parameters.

Parameters:
`H` - The height of the dipole above z = 0.
`q0` - The magnetic monopole charge--the dipole is made out of a +q0 and a -q0.
`v0` - The speed of the receeding image.
`v` - The horizontal speed of the dipole.
`r` - The separation of the two monoples.
`angle` - The angle that the dipole makes in the xy plane, with 0 being in the x direction.
`offset` - The frame offset before image charges begin moving.
 Method Detail

### ConstructEMSource

`public void ConstructEMSource()`
Constructs the EMCollection representing the dipole

Specified by:
`ConstructEMSource` in class `BaseExperiment`

### getEMSource

`public BaseObject getEMSource()`
An EMSource that represents the current experimental state that can be used to compute the current E&M fields.

Specified by:
`getEMSource` in class `BaseExperiment`

### Evolve

```public void Evolve(double dt,
double maxStep)```
Evolve the experiment by a time step "dt" using an integrator. The maximum integrator step size allowed is "maxStep". The state of the EMSource representing the system is updated to reflect the change.

Parameters:
`maxStep` - the maximum step allowed
`dt` - the time step

### Evolve

`public void Evolve(double dt)`
Evolves the experiment by a time step "dt" using an RK4 integrator by taking numberSmallSteps between t and t + dt, for accuracy.

Specified by:
`Evolve` in class `BaseExperiment`

### getHue

```public double getHue(double TargetHue,
Vec3 r,
Vec RegionColor)```
Method to find the hue in a given region when we are coloring according to region (Color Mode 4).

Specified by:
`getHue` in class `BaseExperiment`
Parameters:
`TargetHue` - This is the target hue from the renderer.
`r` - This is the vector postion of the point in the image.
`RegionColor` - This is the varous hues for the regions.
Returns:
The hue for the part of the image map at r.

### getFlowSpeed

```public double getFlowSpeed(Vec3 r,
Vec RegionFlow)```
Method to find the flow speed in a given region when we are determining that speed according to region. This method is used when we have set experiment.FieldMotionType to one of either Constants.FIELD_MOTION_VREFIELD or Constants.FIELD_MOTION_VRBFIELD.

Specified by:
`getFlowSpeed` in class `BaseExperiment`
Parameters:
`r` - This is the vector postion of the point in the image.
`RegionFlow` - This is the flow speeds for the regions.
Returns:
The flow speed for the part of the image map at r.