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

Can cell orientation affect the sign of assembled H(curl) forms?

+2 votes

Hello,

I have been working on domain decomposition methods using FEniCS to assemble global and local subdomain problems. One way to perform the domain decomposition is to copy local portions of a global mesh into separate local meshes, then assemble subdomain problems on those local meshes.

I have noticed that when using 'CG' function spaces for Poisson problems, everything is copacetic. I can assemble a local subdomain matrix over the local meshes as well as restrict the global matrix into subdomain DOFs, and the resulting matrices are the same. However, when using H(curl) function spaces, the restricted and the assembled matrices differ in sign at a large number of elements in the matrix.

I am wondering if this could be due to cell/facet/edge orientations somehow. I know that if I iterate through each mesh and print cell.orientation() that they are indeed different, and I am worried that this is somehow to blame for the sign difference when computing curls and cross-products.

I would appreciate any insight into this, as well as any information about controlling the orientations of the copied local mesh to match the global mesh.

asked Nov 16, 2016 by brk888 FEniCS Novice (990 points)

Ah, I see now why you are interested in manually copying parts of a mesh in you post here.
I think my comment there relating to the behaviour of add_cell explains the behaviour you're seeing here as well.

...