simulations.experiments.faradaysLaw
Class FallingRingExperiment

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

public class FallingRingExperiment
extends BaseExperiment

Falling Ring experiment, consisting of a ring falling past a stationary magnet. 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.

Documentation for the evolution equations describing this system can be found in the TEAL_Physics_Math document (see Section 4.1). This link will work if you have installed the SundquistDLIC code base and documentation as instructed.

Version:
1.0
Author:
Andreas Sundquist

Nested Class Summary
 class FallingRingExperiment.Motion
          Specifies the time derivative of the parmeters which describe the experiment at any time t.
 
Field Summary
 double alpha
          parameter of the experiment as defined in the TEAL_Physics_Math reference
 double beta
          parameter of the experiment as defined in the TEAL_Physics_Math reference
private  EMCollection collection
          the collection of the two rings
 double dIdt
          the time derivative of the current in dimensionless current units = I0/t0
 CurrentRing dipole
          the current ring representing the point dipole
 FallingRingExperiment.Motion equations
          Define the evolution equations used by the RK4 integrator
 double I
          the current in dimensionless units
 double I0
          the current scale factor, see TEAL_Physics_Math document
private  RungeKuttaIntegration integrator
          define the integraton scheme used to numerically integrate the evolution equations in time
 double lambda
          parameter of the experiment as defined in the TEAL_Physics_Math reference
 double M0
          M0 = dipole moment of the "point dipole"
 double offset
          offset is an overall offset of the entire experiment along the z-axis
 double R
          R = radius of the ring
 CurrentRing ring
          the current ring representing the ring
 double t
          the time in dimensionless units
 double t0
          the time scale factor, see TEAL_Physics_Math document
 double v
          the velocity in dimensionless speed units = z0/t0
 double z
          the dimensionless height of the ring above the magnet
 double z0
          the distance scale factor, which is the radius of the ring
 
Fields inherited from class simulations.experiments.BaseExperiment
eps, FieldMotionType, FieldType, FluidFlowSpeed, Fnorm, Fpower, numberSmallSteps
 
Constructor Summary
FallingRingExperiment(double R, double relH, double alpha, double beta, 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 two rings of current with the given initial conditions
 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

R

public double R
R = radius of the ring


z0

public double z0
the distance scale factor, which is the radius of the ring


t0

public double t0
the time scale factor, see TEAL_Physics_Math document


I0

public double I0
the current scale factor, see TEAL_Physics_Math document


z

public double z
the dimensionless height of the ring above the magnet


t

public double t
the time in dimensionless units


I

public double I
the current in dimensionless units


v

public double v
the velocity in dimensionless speed units = z0/t0


dIdt

public double dIdt
the time derivative of the current in dimensionless current units = I0/t0


alpha

public double alpha
parameter of the experiment as defined in the TEAL_Physics_Math reference


beta

public double beta
parameter of the experiment as defined in the TEAL_Physics_Math reference


lambda

public double lambda
parameter of the experiment as defined in the TEAL_Physics_Math reference


offset

public double offset
offset is an overall offset of the entire experiment along the z-axis


M0

public double M0
M0 = dipole moment of the "point dipole"


ring

public CurrentRing ring
the current ring representing the ring


dipole

public CurrentRing dipole
the current ring representing the point dipole


collection

private EMCollection collection
the collection of the two rings


equations

public FallingRingExperiment.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

FallingRingExperiment

public FallingRingExperiment(double R,
                             double relH,
                             double alpha,
                             double beta,
                             double offset)
Constructs an instance of the experiment using the given parameters.

Parameters:
R - the radius of the ring in real units
relH - the initial height/R of the falling ring
alpha - experimental parameter as defined in TEAL_Physics_Math document Section 4.1.3
beta - experimental parameter as defined in TEAL_Physics_Math document Section 4.1.3
offset - the distance that the magnet is offset from the origin
Method Detail

ConstructEMSource

public void ConstructEMSource()
Constructs the EMCollection representing the experiment consisting of the two rings of current with the given initial conditions

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 dipole is centered at the origin with its axis pointing in the z-direction. The current ring falls down the z-axis.

Specified by:
getEMSource in class BaseExperiment
Returns:
EMCollection object that consists of the two rings of current

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.