/// <summary> /// Creates an <see cref="IEngineDataItem{T}"/> that stores one value on the gridpoint /// where the structure is located. /// Adds this <see cref="IEngineDataItem{T}"/> to the <see cref="DataModule"/> for supporting outputting. /// Returns an <see cref="IEngineDataReach{T}"/> holding the value to update every timestep. /// </summary> private EngineDataReach <double> CreateEngineDataReach(Quantity quantity, EngineReach engineReach, GridPoint gridPoint) { // Grid point index where PowerPlant data belongs - required to get output right int[] indexList = new int[] { gridPoint.PointIndex }; // EngineDataItem that stores data for a single PowerPlant and transfers data to result file var engineData = new EngineDataItemAll <double>(_controller.EngineNet, quantity) { ReachesData = new IEngineDataReach <double> [_controller.EngineNet.Reaches.Count] }; // Add data items to data module _controller.EngineNet.DataModule.AddDataItem(engineData); // Data for this reach, containing one value at the structure grid point var engineDataReach = new EngineDataReach <double>() { Values = new double[indexList.Length], IndexList = indexList, }; // Register reach data with dataitem engineData.ReachesData[engineReach.ReachListIndex] = engineDataReach; return(engineDataReach); }
public void Initialize() { _velocityDataItem = _engineNet.HDModule.DataItems.Velocity(true, true); if (_locationSpans.Count == 0) { UseAllNetwork(); } else { PopulateLocations(_locationSpans); } SetResistanceToConstant(); // Make sure that initial values are determined correctly. ChangeBedResistance(_engineNet.EngineTime.TimeN); }
internal DAWaterVolumeChangeCalculator(EngineNet engineNet, IQuantity quantity) : base(engineNet, quantity) { _hdModule = engineNet.HDModule; _volPostHd = new EngineDataItemAll <double>(engineNet, new Quantity()); _volPostHd.SetupDataForNodes(engineNet); _volPostHd.SetupDataForReaches(engineNet, (gp) => (gp is HGridPoint)); _volPostHd.GenericData = new EngineDataGeneric <double>() { Values = new double[1] }; _volAccumulated = new EngineDataItemAll <double>(engineNet, QuantAccVolChangeDA); _volAccumulated.SetupDataForNodes(engineNet); _volAccumulated.SetupDataForReaches(engineNet, (gp) => (gp is HGridPoint)); _volAccumulated.GenericData = new EngineDataGeneric <double>() { Values = new double[1] }; engineNet.DataModule.AddDataItem(_volAccumulated); }