A Posteriori Equilibration
Hallo,
I want to do some a posteriori error analysis and therefore need to do some equilibration on a discrete solution sigma_h living in VectorFunctionS
The idea is to find a solution sigma_eq living in FunctionSpace(T, "BDM", k) (yes T, we can do the equilibration seperately on every Triangle T), such that (latex notation)
for k == 1:
\int_E \sigma_eq \cdot n_E p_(k) ds = \int_E \sigma_h\cdot n_E p_(k) ds, E \in \partial T,
or for k > 1:
\int_E \sigma_eq \cdot n_E p_(k) ds = \int_E \sigma_h \cdot n_E p_(k) ds, E \in \partial T,
\int_T \sigma_eq \cdot grad(p_(k-1)) dx = \int_T \sigma_h \cdot grad(p_(k-1)) dx,
\int_T \sigma_eq \cdot curl(b_T) p_(k-2) dx = \int_T \sigma_h \cdot curl(b_T) p_(k-2) dx,
where n_E is the normal component to the edge E and p_blub denote the corresponding polynomial of degree blub on E or T. Moreover b_T is the Bubble function on T (thanks again to Marie).
OK. So far I realized (by checking dof on a simple mesh) my first problem is to get BDM elements which have discontinuities on every interior edge. This is perhaps related to the restriction argument in FunctionSpace(), but documentation serves not much detail about this feature. The other thing is that it is not very elegant to build a big matrice with independent blocks, so does anybody see a possibility to do the calculations locally on every T (OK, definig a single cell as a new mesh comes into mind but I think this isn't very elegant)?
I would be thankful for a good advice about this issue. Perhaps someone doing a posteriori error analysis had a similar problem.
Thanks in advance,
Thomas
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- DOLFIN Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Thomas Fraunholz
- Solved:
- Last query:
- Last reply: