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

public class MovingRecedingImagePotentialExperiment
extends BaseExperiment

Receeding Image experiment, consisting of a monopole appearing at t =0 above a conducting plane, using the method of Saslow. This object computes the evolution of the system and also generates an EMSource that computes the E&M fields of the system. The evolution is computed in terms of dimensionless variables and then converted to "real" units. This version of the program calculates the magnetic fields using the magnetic potential function instead of monopoles and line dipoles (see equation (8) of Liu and Belcher 2007).

Version:
1.0
Author:
John Belcher

 Nested Class Summary ` class` `MovingRecedingImagePotentialExperiment.Motion`           Specifies the time derivative of the parmeters which describe the experiment at any time t.

 Field Summary ` MovingRecedingImagePotentialAbove` `above`           the potential whose field vanishes for z < 0 ` MovingRecedingImagePotentialBelow` `below`           the potential whose field vanishes for z > 0 `private  EMCollection` `collection`           the collection of the monopole plus the two potential function ` MovingRecedingImagePotentialExperiment.Motion` `equations`           Define the evolution equations used by the RK4 integrator ` double` `H`           H = height of the monople above z = 0 `private  RungeKuttaIntegration` `integrator`           define the integraton scheme used to numerically integrate the evolution equations in time ` MagneticMonopole` `mono`           the real magnetic monopole ` double` `offset`           offset is an overall time offset before the image charges start moving ` double` `q0`           q0 is the magnetic charge ` double` `t`           the time ` double` `v`           v is the horizontal speed of the monopole ` double` `v0`           v0 is the vertical speed of the receeding monopoles once they start receeding ` double` `zplane`           zplane is the location in z of the conducting thin sheet

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

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

 Method Summary ` void` `ConstructEMSource()`           constructs the EM source consisting of a number of BaseObjects and adds them to the EMCollection for this experiment ` 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 monople 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

zplane

`public double zplane`
zplane is the location in z of the conducting thin sheet

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 monopole

mono

`public MagneticMonopole mono`
the real magnetic monopole

above

`public MovingRecedingImagePotentialAbove above`
the potential whose field vanishes for z < 0

below

`public MovingRecedingImagePotentialBelow below`
the potential whose field vanishes for z > 0

collection

`private EMCollection collection`
the collection of the monopole plus the two potential function

equations

`public MovingRecedingImagePotentialExperiment.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

MovingRecedingImagePotentialExperiment

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

Parameters:
`H` - the height of the monopole above z = 0
`offset` - the frame offset before image charges begin moving
`q0` - the magnetic charge
`v` - the horizontal speed of the monopole
`v0` - the speed of the receeding image
`zplane` - the height of the conducting plane above z = 0
 Method Detail

ConstructEMSource

`public void ConstructEMSource()`
Description copied from class: `BaseExperiment`
constructs the EM source consisting of a number of BaseObjects and adds them to the EMCollection for this experiment

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. The real monopole is at rest at (0,0,H), the two image dipoles are initially at rest at (0,0,+H) (imageminus) and (0,0,-H) (imageplus) and then start moving up (imageminus) and up (imagrminud) the z-axis at frames > offsett

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.