Topic: Some questions while preparing some patches
I'm currently working on packaging up some patches of the things I've implemented so far, and there are some questions;
1. Element :: giveSpatialDimension(); seems strange. line elements == 1D and triangles == 2D, as they just as well be in 2D or 3D. A truss is a typical line element, but wouldn't make much sense in 1D.
I noticed that the pyramid supg element defines a similar function
int
PY1_3D_SUPG :: giveNumberOfSpatialDimensions()
{
return 3;
}but that function is completely useless as it's not used anywhere and not part of any parent class.
I don't see why giveSpatialDimension (or giveNumberOfSpatialDimensions) isn't part of the Element class, and is given as a pure virtual method.
2. Which is the Voigt order used for 3D strain/stress in oofem? I've only worked in 2D until now, so it never occurred to me. I could probably look around in the code and try to deduce it, but that feels risky.
3. For the geometry type, the comment in the header looks like;
* EGT_line_2 - line element with three nodes 1---2---3but at the few places where it's used (in fact, is more commonly the edge of a triangle or similar), the order is the more common variant 1--3--2. Should this be changed in the comment? Right now i have to add some code in the VTK export tool to flip this around for my edge element.