Package cnuphys.swim
Class DefaultZStopper
java.lang.Object
cnuphys.swim.DefaultZStopper
- All Implemented Interfaces:
- IStopper
- 
Constructor SummaryConstructorsConstructorDescriptionDefaultZStopper(double s0, double sMax, double targetZ, double accuracy, boolean normalDirection) Z stopper that doesn't check max R (does check max path length)DefaultZStopper(double s0, double rMax, double sMax, double targetZ, double accuracy, boolean normalDirection) Z stopper that checks Rmax (and sMax)
- 
Method SummaryModifier and TypeMethodDescriptiondoubleGet the final path length in metersvoidsetAccuracy(double accuracy) voidsetFinalT(double finalT) Set the final independent variable (typically path length in meters)voidsetNormalDirection(boolean normalDirection) voidsetS0(double s0) voidsetSMax(double sMax) voidsetTargetZ(double targetZ) booleanstopIntegration(double s, double[] y) Given the current state of the integration, should we stop?booleanterminateIntegration(double t, double[] y) Generally this is the same as stop integration.booleanwithinAccuracy(double z, double accuracy) Is the current z within accuracy
- 
Constructor Details- 
DefaultZStopperpublic DefaultZStopper()
- 
DefaultZStopperpublic DefaultZStopper(double s0, double sMax, double targetZ, double accuracy, boolean normalDirection) Z stopper that doesn't check max R (does check max path length)- Parameters:
- s0- starting path length in meters
- sMax- maximal path length in meters
- targetZ- stopping Z in meters
- accuracy- the accuracy in meters
- normalDirection-- if going smaller to larger z
 
- 
DefaultZStopperpublic DefaultZStopper(double s0, double rMax, double sMax, double targetZ, double accuracy, boolean normalDirection) Z stopper that checks Rmax (and sMax)- Parameters:
- s0- starting path length in meters
- rMax- maximal radius in meters
- sMax- maximal path length in meters
- targetZ- stopping Z in meters
- accuracy- the accuracy in meters
- normalDirection-- if going smaller to larger z
 
 
- 
- 
Method Details- 
setS0public void setS0(double s0) 
- 
setSMaxpublic void setSMax(double sMax) 
- 
setTargetZpublic void setTargetZ(double targetZ) 
- 
setAccuracypublic void setAccuracy(double accuracy) 
- 
setNormalDirectionpublic void setNormalDirection(boolean normalDirection) 
- 
stopIntegrationpublic boolean stopIntegration(double s, double[] y) Description copied from interface:IStopperGiven the current state of the integration, should we stop? This allows the integration to stop, for example, if some distance from the origin has been exceeded or if the independent variable passes some threshold. It won't be precise, because the check may not happen on every step, but it should be close.- Specified by:
- stopIntegrationin interface- IStopper
- Parameters:
- s- the current value of the independent variable (typically pathlength)
- y- the current state vector (typically [x, y, z, vx, vy, vz])
- Returns:
- trueif we should stop now.
 
- 
getFinalTpublic double getFinalT()Get the final path length in meters
- 
withinAccuracypublic boolean withinAccuracy(double z, double accuracy) Is the current z within accuracy- Parameters:
- z- current z
- accuracy- accuracy
- Returns:
- trueif current z with accuracy
 
- 
setFinalTpublic void setFinalT(double finalT) Description copied from interface:IStopperSet the final independent variable (typically path length in meters)
- 
terminateIntegrationpublic boolean terminateIntegration(double t, double[] y) Generally this is the same as stop integration. So most will just return stopIntegration(). But sometimes stop just means we reset and integrate more. For example, with a fixed Z integrator we "stop" when we cross the z boundary however we are not done unless we are within tolerance. If we are within tolerance (on either side) we are really done!- Specified by:
- terminateIntegrationin interface- IStopper
- Parameters:
- t- the current value of the independent variable (typically pathlength)
- y- the current state vector (typically [x, y, z, vx, vy, vz])
- Returns:
- trueif we should stop now.
 
 
-