simulations.experiments.faradaysLaw
Class RecedingImageExperiment

java.lang.Object
  extended bysimulations.experiments.BaseExperiment
      extended bysimulations.experiments.faradaysLaw.RecedingImageExperiment

public class RecedingImageExperiment
extends BaseExperiment

Receeding Image experiment calculates the magnetic fields when a monopole appears at t = 0 above a conducting plane. The field of the monopole subsequently diffuses into the region below the conducting plane, using the method of Saslow and Maxwell. This object computes the evolution of the system and also generates an EMSource that computes the E&M fields of the system.

Version:
1.0
Author:
John Belcher

Nested Class Summary
 class RecedingImageExperiment.Motion
           
 
Field Summary
private  EMCollection collection
          The collection of the three monopoles.
 RecedingImageExperiment.Motion equations
           
 double H
          The height of the monople above z = 0.
private  RungeKuttaIntegration integrator
           
 MagneticMonopole mono
          The real magnetic monopole.
 MagneticMonopole monominus
          The monopole whose field vanishes for z > 0.
 MagneticMonopole monoplus
          The monopole whose field vanishes for z < 0.
 double offset
          The overall time offset before the image charges start moving.
 double q0
          The magnetic charge.
 double t
          The time.
 double v0
          The 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
RecedingImageExperiment(double H, double q0, double v0, double offset)
          Constructs an instance of the experiment using the given parameters.
 
Method Summary
 void ConstructEMSource()
          Constructs the EMCollection representing the experiment consisting of the three monopoles, the real monopole and the two receeding image monopoles
 void Evolve(double dt)
          Evolves the experiment by a time step "dt" using an RK4 integrator
 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
The height of the monople above z = 0.


t

public double t
The time.


offset

public double offset
The overall time offset before the image charges start moving.


q0

public double q0
The magnetic charge.


v0

public double v0
The speed of the receeding monopoles once they start receeding.


mono

public MagneticMonopole mono
The real magnetic monopole.


monoplus

public MagneticMonopole monoplus
The monopole whose field vanishes for z < 0.


monominus

public MagneticMonopole monominus
The monopole whose field vanishes for z > 0.


collection

private EMCollection collection
The collection of the three monopoles.


integrator

private RungeKuttaIntegration integrator

equations

public RecedingImageExperiment.Motion equations
Constructor Detail

RecedingImageExperiment

public RecedingImageExperiment(double H,
                               double q0,
                               double v0,
                               double offset)
Constructs an instance of the experiment using the given parameters.

Parameters:
H - The height of the monopole above z = 0.
q0 - The monopole charge.
offset - The frame offset before image charges begin moving.
v0 - The speed of the receding charge once it starts receding.
Method Detail

ConstructEMSource

public void ConstructEMSource()
Constructs the EMCollection representing the experiment consisting of the three monopoles, the real monopole and the two receeding image monopoles

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 down (imageminus) the z-axis at frames > offset.

Specified by:
getEMSource in class BaseExperiment

Evolve

public void Evolve(double dt)
Evolves the experiment by a time step "dt" using an RK4 integrator

Specified by:
Evolve 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.

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.