/// <summary> /// Uses <see cref="ConditionMap"/> to find the boundary value as /// described in <see cref="IBoundaryConditionMap.GetBoundaryState"/> /// </summary> /// <param name="EdgeTag"> /// <see cref="IBoundaryConditionMap.GetBoundaryState"/> /// </param> /// <param name="time"> /// <see cref="IBoundaryConditionMap.GetBoundaryState"/> /// </param> /// <param name="x"> /// <see cref="IBoundaryConditionMap.GetBoundaryState"/> /// </param> /// <param name="normal"> /// <see cref="IBoundaryConditionMap.GetBoundaryState"/> /// </param> /// <param name="stateVector"> /// <see cref="IBoundaryConditionMap.GetBoundaryState"/> /// </param> /// <returns> /// <see cref="IBoundaryConditionMap.GetBoundaryState"/> /// </returns> public StateVector GetBoundaryState(byte EdgeTag, double time, double[] x, double[] normal, StateVector stateVector) { string edgeTagName = EdgeTagNames[EdgeTag]; if (!ConditionMap.ContainsKey(edgeTagName)) { throw new ArgumentException("No boundary condition found for edge \"" + edgeTagName + "\"", "EdgeTag"); } return(ConditionMap[edgeTagName].GetBoundaryState(time, x, normal, stateVector)); }