Closed pbignardi closed 1 year ago
Thanks for the report. I think we don't have any 3D elements in scikit-fem using ElementGlobal
right now and this has probably been untested because of that.
Out of curiosity, what kind of finite element you are trying to implement?
I'm trying to implement a C1 element on a hexahedral mesh.
Maybe I should open a discussion about that in the appropriate section, but do you have any suggestion on how that could be achieved using tools already available in scikit-fem?
For now, the simplest idea that came to mind was to implement the tensor product of Hermite Line Element in each direction x, y, z.
https://onlinelibrary.wiley.com/doi/10.1002/nme.2449
They use cubic full tensor basis with 64 DOFs. The DOFs per node are value (1), first derivatives (3), mixed second derivatives (3), mixed third derivative (1). So 8 DOFs per node.
The above element is implemented now in #1037.
Do not try to use too many elements (and remember to keep intorder
quite low) because 64 DOFs is quite huge and the approach used in ElementGlobal
is not really suitable for such complex elements.
When constructing an instance of
ElementGlobal
in 3D the function_pbasis_init
throws the following exception (line 87)This is due to the fact that
dy
is set toNone
, and the culprit for that is (line 120)This seems wrong, as one should have
dy
even in the 3D case, i.e. whendim == 3