n.elementBoundaryQuadrature = Quadrature.SimplexGaussQuadrature( p.nd - 1, 5) else: if opts.useTaylorHood: n.femSpaces = { 0: FemTools.C0_AffineLinearOnCubeWithNodalBasis, 1: FemTools.C0_AffineQuadraticOnCubeWithNodalBasis, 2: FemTools.C0_AffineQuadraticOnCubeWithNodalBasis } if p.nd == 3: n.hex = True n.femSpaces[ 3] = FemTools.C0_AffineQuadraticOnCubeWithNodalBasis else: n.quad = True n.elementQuadrature = Quadrature.CubeGaussQuadrature(p.nd, 2) n.elementBoundaryQuadrature = Quadrature.CubeGaussQuadrature( p.nd - 1, 2) else: n.femSpaces = { 0: FemTools.C0_AffineLinearOnCubeWithNodalBasis, 1: FemTools.C0_AffineLinearOnCubeWithNodalBasis, 2: FemTools.C0_AffineLinearOnCubeWithNodalBasis } if p.nd == 3: n.hex = True n.femSpaces[3] = FemTools.C0_AffineLinearOnCubeWithNodalBasis else: n.quad = True n.elementQuadrature = Quadrature.CubeGaussQuadrature(p.nd, 5) n.elementBoundaryQuadrature = Quadrature.CubeGaussQuadrature(
if useRBLES not in [0.0, 1.0]: print "INVALID: useRBLES" + useRBLES sys.exit() if useMetrics not in [0.0, 1.0]: print "INVALID: useMetrics" sys.exit() # Discretization nd = 2 if spaceOrder == 1: hFactor=1.0 if useHex: basis=FemTools.C0_AffineLinearOnCubeWithNodalBasis elementQuadrature = Quadrature.CubeGaussQuadrature(nd,3) elementBoundaryQuadrature = Quadrature.CubeGaussQuadrature(nd-1,3) else: basis=FemTools.C0_AffineLinearOnSimplexWithNodalBasis elementQuadrature = Quadrature.SimplexGaussQuadrature(nd,3) elementBoundaryQuadrature = Quadrature.SimplexGaussQuadrature(nd-1,3) elif spaceOrder == 2: hFactor=0.5 if useHex: basis=FemTools.C0_AffineLagrangeOnCubeWithNodalBasis elementQuadrature = Quadrature.CubeGaussQuadrature(nd,4) elementBoundaryQuadrature = Quadrature.CubeGaussQuadrature(nd-1,4) else: basis=FemTools.C0_AffineQuadraticOnSimplexWithNodalBasis elementQuadrature = Quadrature.SimplexGaussQuadrature(nd,4)