/// <summary> /// Computes Oil and gas Depth based on Input Params and Top Horizon depth Value at each Grid Cell /// </summary> /// <param name="i_inputParam">Inpu parameters</param> /// <param name="i_topHorizonDepthValue">Top horizon depth value at each cell</param> /// <returns></returns> double ComputeDepthOfOilAndGasAtEachCell(InputParameters i_inputParams, double i_topHorizonDepthValue) { //Note:My Understanding in the problem is Fluid Contact Will Always exits only at 3000 meter depth from top of Reservoir , it will not exist above 3000m or below 3000 meters. double bottomHorizonDepthValue = i_topHorizonDepthValue + m_volumeInputData.BaseHorizonDiffValue; if (i_topHorizonDepthValue >= i_inputParams.FluidContact) { return(0.0); } else { return(bottomHorizonDepthValue > i_inputParams.FluidContact ? i_inputParams.FluidContact - i_topHorizonDepthValue : bottomHorizonDepthValue - i_topHorizonDepthValue); } //Note:Above if and else Could have been written as below as commented, for better readability i have written like above. /*return i_topHorizonDepthValue >= i_inputParams.FluidContact ? 0.0 : bottomHorizonDepthValue > i_inputParams.FluidContact ? i_inputParams.FluidContact - i_topHorizonDepthValue : bottomHorizonDepthValue - i_topHorizonDepthValue;*/ }
/// <summary> /// Constructor /// </summary> /// <param name="i_voulumeInputData">Input parameters Data</param> /// <param name="i_topHorizonDepthValues">Depth values of Top Horizon</param> public VolumeCalculator(InputParameters i_voulumeInputData, List <int> i_topHorizonDepthValues) { this.m_volumeInputData = i_voulumeInputData; this.m_topHorizonDepthValues = i_topHorizonDepthValues; }