コード例 #1
0
        /// <summary>
        /// \/ * value  operation is called gradient
        ///     gradient over scalar field generate a vector
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public override QsValue MultiplyOperation(QsValue value)
        {
            var fscalar = value as QsScalar;

            if (!Object.ReferenceEquals(fscalar, null))
            {
                // Here we will multiply the nabla \/ *  with @function
                if (!Object.ReferenceEquals(fscalar.FunctionQuantity, null))
                {
                    var f = fscalar.FunctionQuantity.Value;

                    string[] prms = f.ParametersNames;

                    SymbolicVariable fsv = f.ToSymbolicVariable();

                    QsVector GradientResult = new QsVector();

                    // we loop through the symbolic body and differentiate it with respect to the function parameters.
                    // then accumulate the
                    foreach (string prm in prms)
                    {
                        GradientResult.AddComponent(fsv.Differentiate(prm).ToQuantity().ToScalar());
                    }

                    return(GradientResult);
                }
            }
            if (value is QsVector)
            {
                return(this.DelVector.MultiplyVector((QsVector)value));
            }

            throw new NotImplementedException(@"Multiplication of \/ * " + value.GetType().Name + " Not implemented yet");
        }
コード例 #2
0
        /// <summary>
        /// \/  x  F  is called curl of vector
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public override QsValue CrossProductOperation(QsValue value)
        {
            if (value is QsVector)
            {
                return(this.DelVector.CrossProductOperation((QsVector)value));
            }

            throw new NotImplementedException(@"\/ x " + value.GetType().Name + " not implemented");
        }