示例#1
0
        protected override double CreateVectorElement(BoundaryElement <Point3D> elem1, Func <Point3D, double> function,
                                                      ConditionType conditionType)
        {
            switch (elem1.Bound.Name)
            {
            case BoundNumber.Bound12:
                return(-parameters.BPotential * functionsForSemiSpace.U1(elem1.Center, parameters.B) -
                       parameters.APotential * functionsForSemiSpace.U1(elem1.Center, parameters.A));

            case BoundNumber.Bound2:
                var fbBound2 =
                    elem1.Normal.ScalarMultiply(FunctionsForSemiSpace.FSemiSpace(elem1.Normal, parameters.B));
                var faBound2 =
                    elem1.Normal.ScalarMultiply(FunctionsForSemiSpace.FSemiSpace(elem1.Normal, parameters.A));
                return(-parameters.APotential * faBound2 - parameters.BPotential * fbBound2);

            case BoundNumber.Bound13:
                return(-parameters.BPotential * functionsForSemiSpace.U1(elem1.Center, parameters.B) -
                       parameters.APotential * functionsForSemiSpace.U1(elem1.Center, parameters.A));

            case BoundNumber.Bound3:
                var fbBound3 =
                    elem1.Normal.ScalarMultiply(FunctionsForSemiSpace.FSemiSpace(elem1.Normal, parameters.B));
                var faBound3 =
                    elem1.Normal.ScalarMultiply(FunctionsForSemiSpace.FSemiSpace(elem1.Normal, parameters.A));
                return(-parameters.APotential * faBound3 - parameters.BPotential * fbBound3);
            }

            return(base.CreateVectorElement(elem1, function, conditionType));
        }
示例#2
0
 private double Tr(Point3D m, Point3D n)
 {
     return(FunctionsForSemiSpace.K(parameters.A, parameters.B, m, n) * (Solution(m) - Solution(n)));
 }
示例#3
0
 public TwoSphereMethod(List <BoundWithCondition <Point3D> > bound, List <InnerSourceWithFunction <Point3D> > sources, Integrator <Point3D> integrator, SemiSpaceParameters parameters)
     : base(bound, sources, null, null, integrator)
 {
     this.parameters       = parameters;
     functionsForSemiSpace = new FunctionsForSemiSpace(parameters);
 }