/// <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)); }
/// <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)); }
/// <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); }
/// <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); }