labmec / neopz

An object oriented finite element programming environment
http://www.labmec.org.br
32 stars 11 forks source link

Shape data refactor #202

Closed giavancini closed 4 months ago

giavancini commented 4 months ago

This PR changes the way TPZShapeDatastores the data that are useful to H1, HDiv and HCurl spaces. Up to this point, the attributes named fHDivConnectOrders, fHDivNumConnectShape, fSideOrient, fMasterDirections and fSDVecShapeIndex were used for both TPZShapeHdivand TPZShapeHCurlclasses. This behaviour is not ideal, specifically when using TPZShapeHDivConstant, since it needs to keep track of both data structures.

The modifications were carried out in the file TPZShapeData, where three new attributes named fH1, fHDiv and fHCurl were created. Each one of them now stores the data that is going to be used for calling the methods Initiallize() and Shape() of the respective shape.

This PR mainly affects the way data is handled outside the class. For example, when accessing the vector that stores the connect orders of H1 approximation, before it was done TPZShapeData::fH1ConnectOrders, now it shall be performed TPZShapeData::fH1.fConnectOrders. The same is true for HDiv and HCurl data: TPZShapeData::fHDiv.fConnectOrders and TPZShapeData::fHCurl.fConnectOrders.