/// <summary> /// Dimensionless bottom hole pressure affected by outer boundary. Boundary type - Linear Constant Pressure. Dimensionless line source solution pressure of infinite homogeneous reservoir, which is a function in the principle of superposition. /// </summary> /// <param name="td">dimensionless time</param> /// <param name="Ld">dimensionless distance to fault</param> /// <returns>System.Double.</returns> public static double PwDbLinearConstantPressure(double td, double Ld) { Condition.Requires(td, nameof(td)).IsGreaterOrEqual(0.0); Condition.Requires(Ld, nameof(Ld)).IsGreaterThan(0.0); return(0.5 * ExponentialIntegral.Evaluate(-Ld * Ld / td)); }
/// <summary> /// The expression of dimensionless line source solution pressure of infinite homogeneous reservoir. /// </summary> /// <param name="td">dimensionless time</param> /// <param name="rd">dimensionless radius</param> /// <returns>System.Double.</returns> public static double Pd(double td, double rd) { Condition.Requires(td, nameof(td)).IsGreaterOrEqual(0.0); Condition.Requires(rd, nameof(rd)).IsGreaterOrEqual(0.0); return(-0.5 * ExponentialIntegral.Evaluate(-rd * rd / (4 * td))); }
/// <summary> /// Dimensionless bottom hole pressure affected by outer boundary. Boundary type - Perpendicular Constant Pressures. Dimensionless line source solution pressure of infinite homogeneous reservoir, which is a function in the principle of superposition. /// </summary> /// <param name="td">dimensionless time</param> /// <param name="Ld1">dimensionless distance to fault 1</param> /// <param name="Ld2">dimensionless distance to fault 2</param> /// <returns>System.Double.</returns> public static double PwDbPerpendicularConstantPressures(double td, double Ld1, double Ld2) { Condition.Requires(td, nameof(td)).IsGreaterOrEqual(0.0); Condition.Requires(Ld1, nameof(Ld1)).IsGreaterThan(0.0); Condition.Requires(Ld2, nameof(Ld2)).IsGreaterThan(0.0); return(0.5 * ( +ExponentialIntegral.Evaluate(-Ld1 * Ld1 / td) + ExponentialIntegral.Evaluate(-Ld2 * Ld2 / td) + ExponentialIntegral.Evaluate(-(Ld1 * Ld1 + Ld2 * Ld2) / td) )); }