Maxi,

Usually when calculating error values I use 
> VectorTools::integrate_difference(). Still, that gives me an absolute 
> value. Now I would like to calculate the relative value, i.e. 
> |u-u_h|_{H^1}/|u|_{H^1}. Based on what I could find until now that means 
> that I have to create a vector containing the value for the gradients of 
> the correct solution at each point (using 
> VectorTools::get_position_vector() and a loop afterwards), which then can 
> be used to calculate |u|_{H^1} by calling vec.h1_norm(). The problem is, 
> though, that evaluating the solution at all points could be quite costly. 
> Thus I was wondering if there are any other functions which could help 
> speed it up?
>
 
In general, you can not calculate |u|_{H^1} exactly at all. All you can do, 
is to approximate the integrl using some quadrature rule.
In particular, the norm of the continuous solution is independent of the 
discretization used. Hence, you can use an entirely separate mesh (or just 
provide the norm from the outside).
Normally, calculating the relative error with respect to the discrete 
solution (|u-u_h|_{H^1}/|u_h|_{H^1}) should also suffice since you expect 
the error to be small anyway.

Best,
Daniel
 

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to