This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Enriched spaces for PEERS: help on implementation

0 votes

I am trying to enrich the Raviart-Thomas space with a bubble element's curl:

from dolfin import *

B = TensorFunctionSpace(mesh, "Bubble", 3)
_H = VectorFunctionSpace(mesh, 'RT', 1)

H = _H+curl(B)

Which does not work. I would appreciate any help for this. What I am trying to implement is the PEERS base, which approximates tensor spaces with RT enriched with the curl of a bubble function. Another way of implementing this would be to add the Bubble space to the MixedSpace and the just add the curl in each part where it corresponds, but I believe there has to be a more elegant and comprehensive way.

Thanks

asked Jun 14, 2016 by nabarnaf FEniCS User (2,940 points)

1 Answer

0 votes
 
Best answer

You need to use

B = VectorFunctionSpace(mesh, "Bubble", 3)

instead of tensor function space. Your _H is vector of vector elements, so it is a tensor element. Since curl(B) is a tensor, the addition is well-defined now.

answered Oct 5, 2016 by JeonghunLee FEniCS User (1,050 points)
selected Oct 5, 2016 by nabarnaf

Thanks for the correction. With that it is indeed possible to implement both elements separately and afterwards process everything in something like replacing t in _H by t+b, where b is a bubble function. It would be good to know if it is possible to do this more naturally, which would be to have a 'PEERS' element, instead of doing this artificial correction. Apparently not, and anyway thanks again.

...