Select Git revision
TetLagrangeBasis.cpp
Forked from
gmsh / gmsh
Source project has a limited visibility.
-
Nicolas Marsic authored
Lagrange Basis uses ReferenceSpace -- WARNING Orientation still misses + REworked line basis + ReferenceSpace takes only connectivity into account: seems enough
Nicolas Marsic authoredLagrange Basis uses ReferenceSpace -- WARNING Orientation still misses + REworked line basis + ReferenceSpace takes only connectivity into account: seems enough
TetLagrangeBasis.cpp 949 B
#include "TetLagrangeBasis.h"
#include "TetReferenceSpace.h"
#include "pointsGenerators.h"
#include "ElementType.h"
TetLagrangeBasis::TetLagrangeBasis(size_t order){
// If order 0 (Nedelec): use order 1
if(order == 0)
order = 1;
// Set Basis Type //
this->order = order;
type = 0;
dim = 3;
nVertex = 4;
nEdge = 6 * (order - 1);
nFace = 2 * (order - 1) * (order - 2);
nCell = (order - 1) * (order - 2) * (order - 3) / 6;
nFunction = nVertex + nEdge + nFace + nCell;
// Init polynomialBasis //
lBasis = new polynomialBasis(ElementType::getTag(TYPE_TET, order, false));
// Init Lagrange Point //
lPoint = new fullMatrix<double>(gmshGeneratePointsTetrahedron(order, false));
// Reference Space //
refSpace = new TetReferenceSpace;
nRefSpace = getReferenceSpace().getNReferenceSpace();
}
TetLagrangeBasis::~TetLagrangeBasis(void){
delete lBasis;
delete lPoint;
delete refSpace;
}