def test_geometry(ctx_getter): cl_ctx = ctx_getter() queue = cl.CommandQueue(cl_ctx) nelements = 30 order = 5 mesh = make_curve_mesh(partial(ellipse, 1), np.linspace(0, 1, nelements+1), order) from meshmode.discretization import Discretization from meshmode.discretization.poly_element import \ InterpolatoryQuadratureSimplexGroupFactory discr = Discretization(cl_ctx, mesh, InterpolatoryQuadratureSimplexGroupFactory(order)) import pytential.symbolic.primitives as prim area_sym = prim.integral(2, 1, 1) area = bind(discr, area_sym)(queue) err = abs(area-2*np.pi) print(err) assert err < 1e-3
def test_geometry(ctx_factory): cl_ctx = ctx_factory() queue = cl.CommandQueue(cl_ctx) actx = PyOpenCLArrayContext(queue) nelements = 30 order = 5 mesh = make_curve_mesh(partial(ellipse, 1), np.linspace(0, 1, nelements+1), order) from meshmode.discretization import Discretization from meshmode.discretization.poly_element import \ InterpolatoryQuadratureSimplexGroupFactory discr = Discretization(actx, mesh, InterpolatoryQuadratureSimplexGroupFactory(order)) import pytential.symbolic.primitives as prim area_sym = prim.integral(2, 1, 1) area = bind(discr, area_sym)(actx) err = abs(area-2*np.pi) print(err) assert err < 1e-3
def _norm_2_op(discr, num_components): from pytential import sym, bind if num_components is not None: from pymbolic.primitives import make_sym_vector v = make_sym_vector("integrand", num_components) integrand = sym.real(np.dot(sym.conj(v), v)) else: integrand = sym.abs(sym.var("integrand"))**2 return bind(discr, sym.integral(discr.ambient_dim, discr.dim, integrand))
def _norm_op(discr, num_components): from pytential import sym, bind if num_components is not None: from pymbolic.primitives import make_sym_vector v = make_sym_vector("integrand", num_components) integrand = sym.real(np.dot(sym.conj(v), v)) else: integrand = sym.abs(sym.var("integrand"))**2 return bind(discr, sym.integral(integrand))
def _integral_op(discr): from pytential import sym, bind return bind( discr, sym.integral(discr.ambient_dim, discr.dim, sym.var("integrand")))
def _integral_op(discr): from pytential import sym, bind return bind(discr, sym.integral(sym.var("integrand")))
def _integral_op(discr): from pytential import sym, bind return bind(discr, sym.integral( discr.ambient_dim, discr.dim, sym.var("integrand")))