Esempio n. 1
0
        /// <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));
        }