#include "FITKElementQuad.h" namespace Interface { FITKElementQuad4::FITKElementQuad4() { //填充四节点 this->setNodeCount(this->getNodeCount()); } FITKModelEnum::FITKEleType FITKElementQuad4::getEleType() { return FITKModelEnum::FITKEleType::Quad4; } int FITKElementQuad4::getNodeCount() { //一共四个节点 return 4; } int FITKElementQuad4::getFaceCount() { return 6; } int FITKElementQuad4::getEdgeCount() { return 4; } QList FITKElementQuad4::getFace(const int index) { QList idList = {}; if (index >= getFaceCount() || _elemenTopo.size() < getNodeCount())return idList; switch (index) { case 0://spos { idList << _elemenTopo[0] << _elemenTopo[1] << _elemenTopo[2] << _elemenTopo[3]; break; } case 1://sneg { idList << _elemenTopo[3] << _elemenTopo[2] << _elemenTopo[1] << _elemenTopo[0]; break; } case 2://e1 { idList << _elemenTopo[0] << _elemenTopo[1]; break; } case 3://e2 { idList << _elemenTopo[1] << _elemenTopo[2]; break; } case 4://e3 { idList << _elemenTopo[2] << _elemenTopo[3]; break; } case 5://e4 { idList << _elemenTopo[3] << _elemenTopo[0]; break; } } return idList; } QList FITKElementQuad4::getEdge(const int index) { switch (index) { case 0: return QList{_elemenTopo[0], _elemenTopo[1]}; case 1: return QList{_elemenTopo[1], _elemenTopo[2]}; case 2: return QList{_elemenTopo[2], _elemenTopo[3]}; case 3: return QList{_elemenTopo[3], _elemenTopo[0]}; default: return QList(); } return QList(); } int FITKElementQuad4::getElementDim() { return 2; } FITKElementQuad8::FITKElementQuad8() { //填充四节点 this->setNodeCount(this->getNodeCount()); } FITKModelEnum::FITKEleType FITKElementQuad8::getEleType() { return FITKModelEnum::FITKEleType::Quad8; } int FITKElementQuad8::getNodeCount() { //一共8个节点 return 4; } int FITKElementQuad8::getFaceCount() { return 6; } int FITKElementQuad8::getEdgeCount() { return 4; } QList FITKElementQuad8::getFace(const int index) { QList idList = {}; if (index >= getFaceCount() || _elemenTopo.size() < getNodeCount())return idList; switch (index) { case 0://spos { idList << _elemenTopo[0] << _elemenTopo[1] << _elemenTopo[2] << _elemenTopo[3]; idList << _elemenTopo[4] << _elemenTopo[5] << _elemenTopo[6] << _elemenTopo[7]; break; } case 1://sneg { idList << _elemenTopo[3] << _elemenTopo[2] << _elemenTopo[1] << _elemenTopo[0]; idList << _elemenTopo[6] << _elemenTopo[5] << _elemenTopo[4] << _elemenTopo[7]; break; } case 2://e1 { idList << _elemenTopo[0] << _elemenTopo[1] << _elemenTopo[4]; break; } case 3://e2 { idList << _elemenTopo[1] << _elemenTopo[2] << _elemenTopo[5]; break; } case 4://e3 { idList << _elemenTopo[2] << _elemenTopo[3] << _elemenTopo[6]; break; } case 5://e4 { idList << _elemenTopo[3] << _elemenTopo[0] << _elemenTopo[7]; break; } } return idList; } QList FITKElementQuad8::getEdge(const int index) { switch (index) { case 0: return QList{_elemenTopo[0], _elemenTopo[4], _elemenTopo[1]}; case 1: return QList{_elemenTopo[1], _elemenTopo[5], _elemenTopo[2]}; case 2: return QList{_elemenTopo[2], _elemenTopo[6], _elemenTopo[3]}; case 3: return QList{_elemenTopo[3], _elemenTopo[7], _elemenTopo[4]}; default: return QList(); } return QList(); } int FITKElementQuad8::getElementDim() { return 2; } }