Exemple #1
0
 /// <summary>
 /// Compilation of an edge scheme, even if it is null!
 /// </summary>
 public static ICompositeQuadRule <QuadRule> SaveCompile(this EdgeQuadratureScheme scheme, IGridData g, int order)
 {
     // sometimes, a bit of repetition seems easier ...
     scheme = (scheme ?? new EdgeQuadratureScheme(true));
     return(scheme.Compile(g, order));
 }
Exemple #2
0
        /// <summary>
        /// adds rules with fixed quadrature order to the quadrature scheme <paramref name="scheme"/>;
        /// this can be used to explicitly specify the quadrature order, the choice of the order during the compilation of the scheme
        /// (see <see cref="QuadratureScheme{A,B}.Compile"/>) will have no effect.
        /// </summary>
        public static EdgeQuadratureScheme AddFixedOrderRules(this EdgeQuadratureScheme scheme, IGridData GridDat, int order)
        {
            var QRs = GridDat.iGeomEdges.EdgeRefElements.Select(Kref => Kref.GetQuadratureRule(order));

            return(scheme.AddFixedRuleS <EdgeQuadratureScheme, QuadRule, EdgeMask>(QRs));
        }
Exemple #3
0
 /// <summary>
 /// adds a standard(Gaussian) quadrature rule to the quadrature scheme <paramref name="scheme"/>.
 /// </summary>
 public static EdgeQuadratureScheme AddStandardRule(this EdgeQuadratureScheme scheme, Grid.RefElements.RefElement s)
 {
     scheme.AddFactoryDomainPair(new StandardQuadRuleFactory(s), null);
     return(scheme);
 }
Exemple #4
0
 /// <summary>
 /// adds a factory to an edge quadrature scheme
 /// </summary>
 public static EdgeQuadratureScheme AddFactory <TQuadRule>(this EdgeQuadratureScheme scheme, IQuadRuleFactory <TQuadRule> factory)
     where TQuadRule : QuadRule
 {
     scheme.AddFactoryDomainPair(factory, default(EdgeMask));
     return(scheme);
 }