16 #ifndef __H2D_INTEGRALS_HDIV_H
17 #define __H2D_INTEGRALS_HDIV_H
24 inline T int_g_h(Function<T>* fg, Function<T>* fh, RefMap* rg, RefMap* rh)
26 Quad2D* quad = rg->get_quad_2d();
27 int o = fg->get_fn_order() + fh->get_fn_order() + 2 + rg->get_inv_ref_order();
28 limit_order(o, rg->get_active_element()->get_mode());
32 T *g0 = fg->get_fn_values(0), *g1 = fg->get_fn_values(1);
33 T *h0 = fh->get_fn_values(0), *h1 = fh->get_fn_values(1);
37 double3* pt = quad->get_points(o, rg->get_active_element()->get_mode());
38 int np = quad->get_num_points(o, rg->get_active_element()->get_mode());
40 mg = rg->get_inv_ref_map(o);
41 mh = rh->get_inv_ref_map(o);
42 double* jac = rg->get_jacobian(o);
43 for (
int i = 0; i < np; i++, mg++, mh++)
44 result += pt[i][2] * jac[i] * (( (*mg)[1][1]*g0[i] - (*mg)[1][0]*g1[i]) * ( (*mh)[1][1]*h0[i] - (*mh)[1][0]*h1[i]) +
45 (-(*mg)[0][1]*g0[i] + (*mg)[0][0]*g1[i]) * (-(*mh)[0][1]*h0[i] + (*mh)[0][0]*h1[i]));