/// <summary> /// adds a standard (Gaussian) quadrature rule to the quadrature scheme <paramref name="scheme"/>; /// the actual order of the quadrature rule will be determined by the order which is passed /// at the scheme compilation (see <see cref="QuadratureScheme{A,B}.Compile"/>); /// </summary> public static R AddStandardRule <R, TDomain>(this R scheme, Grid.RefElements.RefElement s, TDomain domain) where R : QuadratureScheme <QuadRule, TDomain> where TDomain : ExecutionMask { scheme.AddFactoryDomainPair(new StandardQuadRuleFactory(s), domain); // throw new NotImplementedException(); return(scheme); }
/// <summary> /// Constructs the <see cref="ExecutionMask"/> of the appropriate type /// containing all cells/edges with reference element <paramref name="E"/> /// </summary> /// <param name="E"></param> /// <param name="g"></param> /// <returns></returns> TDomain GetDomainForRefElement(Grid.RefElements.RefElement E, IGridData g) { ExecutionMask em = null; if (typeof(TDomain) == typeof(EdgeMask) || typeof(TDomain).IsSubclassOf(typeof(EdgeMask))) { em = g.iLogicalEdges.GetEdges4RefElement(E); } else if (typeof(TDomain) == typeof(CellMask) || typeof(TDomain).IsSubclassOf(typeof(CellMask))) { em = g.iLogicalCells.GetCells4Refelement(E); } else { throw new NotImplementedException(); } return((TDomain)(em)); }
/// <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); }