WAT ComputeOptions

package hec2.wat.model;

public class ComputeOptions extends hec2.plugin.model.ComputeOptions implements Serializable, Cloneable
{
	/**
	 * time window of the entire simulation. For an FRM simulation this is the 50 year time window.
	 * @return
	 */
	@Scriptable
	public RunTimeWindow getSimulationTimeWindow();
	
	/**
	 *  return whether the simulation is a FRM simulation or not. 
	 * @return true if the compute is part of a FRM simulation
	 */
	@Scriptable
	public boolean isFrmCompute();

	/**
	 * if isFrmCompute() returns true, then this will return the number of
	 * lifecycles that the FRM simulation is going to try and compute
	 * FRM only
	 * 
	 * @return the total number of FRM lifecycles
	 */
	@Scriptable
	public int getNumberLifecycles();

	/**
	 * get the current realization number. This number will be from 0 to getNumberRealizations()-1
	 * 
	 * @return the current realization number.
	 */
	@Scriptable
	public int getCurrentRealizationNumber();

	/**
	 * FRM only
	 * @return
	 */
	@Scriptable
	public int getInitialLifecycleNumber();

	/**
	 * get the List of Event RunTimeWindows for the compute
	 * FRM only
	 * @return
	 */
	@Scriptable
	public List<RunTimeWindow> getEventList();

	/**
	 * get the number of events in the lifecycle.
	 * FRM only.
	 * @return the number of events in the lifecycle.
	 */
	public int getNumberEvents();
	
	/***
	 * FRM only, starts at 1
	 * @return
	 */
	@Scriptable
	public int getCurrentLifecycleNumber();
	/**
	 * FRM only, starts at 1
	 * @return
	 */
	@Scriptable
	public int getCurrentEventNumber();

	/**
	 * FRM only
	 * @return
	 */
	@Scriptable
	public List<Integer> getSpecifiedLifeCyclesToRunList();

	/**
	 * FRM only
	 * @return the yearsInLifeCycle
	 */
	@Scriptable
	public int getYearsInLifeCycle();

	/**
	 * FRM only 
	 * @return
	 */
	@Scriptable
	public double getRealizationRandom();

	/**
	 * FRM only
	 * @return
	 */
	@Scriptable
	public double getLifeCycleRandom();

	@Scriptable
	public double getEventRandom();

	/**
	 * FRM only
	 * @return
	 */
	@Scriptable
	public boolean isNewLifecycle();
	
	/**
	 * 
	 * @param eventNum
	 */
	@Scriptable
	public int getEventNumberInLifecycle();
	
	
	/**
	 * get the position of the model in the overall model order.  Zero based i.e. the first model in the sequence of all models
	 * 
	 */
	public int getModelPosition();

	/**
	 * get the program specific model position. zero based.  i.e. the first FIA model of size FIA models in the sequence 
	 * @return
	 */
	public int getProgramModelPosition();

	/**
	 * flag indicating if its the models' first time computing.
	 * For non-FRA computes this will almost always be true.
	 * For FRA computes this will be true on the first event in a lifecycle the
	 * model is run.
	 * 
	 * @return true if its the models first time computing in the current invocation of the simulation/lifecycle
	 */
	public boolean isModelFirstTime();
	
	

}
JAVA