예제 #1
0
        /// <summary>
        /// Gauss rules for \f$ \oint_{\frakI \cap K_j } \ldots \dS \f$ in the 3D case
        /// </summary>
        ///
        public static IQuadRuleFactory <QuadRule> SayeGaussRule_Volume3D(
            LevelSetTracker.LevelSetData _lsData,
            IRootFindingAlgorithm RootFinder)
        {
            ISayeGaussRule rule = new SayeFactory_Cube(
                _lsData,
                RootFinder,
                SayeFactory_Cube.QuadratureMode.Volume);

            return(new SayeGaussRuleFactory(rule));
        }
예제 #2
0
        public static SayeGaussComboRuleFactory SayeGaussRule_Combo3D(
            LevelSetTracker.LevelSetData _lsData,
            IRootFindingAlgorithm RootFinder
            )
        {
            ISayeGaussComboRule rule = new SayeFactory_Cube(
                _lsData,
                RootFinder,
                SayeFactory_Cube.QuadratureMode.Combo
                );

            return(new SayeGaussComboRuleFactory(
                       rule,
                       SayeGaussComboRuleFactory.Mode.CalculateOnceAfterInstantiation));
        }
예제 #3
0
        public static SayeGaussComboRuleFactory SayeGaussRule_Combo3D(
            LevelSetTracker.LevelSetData lsData,
            IRootFindingAlgorithm RootFinder
            )
        {
            ISayeGaussComboRule rule = new SayeFactory_Cube(
                lsData,
                RootFinder,
                SayeFactory_Cube.QuadratureMode.Combo
                );
            CellMask maxGrid = lsData.GridDat.Cells.GetCells4Refelement(rule.RefElement).Intersect(
                lsData.Region.GetCutCellMask().ToGeometicalMask());

            return(new SayeGaussComboRuleFactory(
                       rule,
                       maxGrid));
        }