> Is this a good way to assemble the boundary integral? It seems that using
> the FEFieldFunction is a bit cumbersome, and may introduce interpolation
> errors.
Yes. Also, the term you are integrating is
int u dx
not the normal derivative (you don't make use of either the derivative of the
solution nor of the normal vector in your computation).
The canonical way to compute the term you want would go like this:
FEFaceValues fe_face_values (...);
std::vector<Tensor<1,dim> > solution_gradients (...);
for (cell=...)
for (f=...) // faces
if (cell->face(f)->at_boundary())
{
fe_face_values.reinit (cell, f);
fe_face_values.get_function_gradients (solution,
solution_gradients);
for (q=...) // quadrature points
du_dn += solution_gradients[q] *
fe_face_values.normal_vector(q) *
fe_face_values.JxW(q);
}
Best
W.
-------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.tamu.edu/~bangerth/
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii