63 for(i=0;i<NSubEl;i++) SubElVec[i] = geo->
SubElement(i);
72 NewMidSideNode(geo,sub,index);
85 for(sub=0;sub<NSubEl;sub++) {
87 SubElVec[sub]->SetFather(geo);
88 SubElVec[sub]->SetFatherIndex(geo->
Index());
90 for(i=0;i<NSubEl;i++) {
99 void TPZRefLinear::MidSideNodeIndex(
const TPZGeoEl *gel,
int side,int64_t &index){
102 PZError <<
"TPZRefCube::MidSideNodeIndex. Bad parameter side = " << side << endl;
107 index = (gel)->NodeIndex(side);
115 index=(gel->
SubElement(MidSideNodes[side][0]))->NodeIndex(MidSideNodes[side][1]);
118 void TPZRefLinear::NewMidSideNode(
TPZGeoEl *gel,
int side,int64_t &index) {
120 MidSideNodeIndex(gel,side,index);
124 while(gelside.
Element() != gel) {
126 if(index!=-1)
return;
138 par[0] = MidCoord[side][0];
149 PZError <<
"TPZRefCube::GetSubelements2 called with error arguments\n";
152 int nsub = NSideSubElements(side);
153 for(
int i=0;i<
nsub;i++)
157 int TPZRefLinear::NSideSubElements(
int side) {
159 PZError <<
"TPZRefCube::NSideSubelements2 called with error arguments\n";
162 return nsubeldata[side];
168 PZError <<
"TPZRefLinear::GetTransform side out of range or father null\n";
172 int fatherside = FatherSide(side,whichsubel);
176 for(i=0; i<largedim; i++) {
177 for(j=0; j<smalldim; j++) {
178 trans.
Mult()(i,j) = buildt[whichsubel][side][j][i];
180 trans.
Sum() (i,0) = buildt[whichsubel][side][1][i];
186 int TPZRefLinear::FatherSide(
int side,
int whichsubel) {
188 PZError <<
"TPZRefCube::Father2 called error" << endl;
191 return fatherside[whichsubel][side];
195 int TPZRefLinear::ClassId()
const{
196 return Hash(
"TPZRefLinear");
int AllocateNewElement()
Makes more room for new elements.
int MaterialId() const
Returns the material index of the element.
virtual TPZGeoEl * CreateGeoElement(MElementType type, TPZVec< int64_t > &cornerindexes, int matid, int64_t &index, int reftype=1)
Generic method for creating a geometric element. Putting this method centrally facilitates the modifi...
virtual void SetNeighbour(int side, const TPZGeoElSide &neighbour)=0
Fill in the data structure for the neighbouring information.
clarg::argInt nsub("-nsub", "number of substructs", 4)
static int SideDimension(int side)
Returns the dimension of the side.
groups all classes dedicated to the computation of shape functions
Utility class which represents an element with its side. The Geometric approximation classes Geometry...
This class implements a simple vector storage scheme for a templated class T. Utility.
TPZGeoElSide Neighbour() const
TPZGeoMesh * Mesh() const
Returns the mesh to which the element belongs.
virtual int64_t NodeIndex(int i) const =0
Returns the index of the ith node the index is the location of the node in the nodevector of the mesh...
static int CornerSons[2][2]
Contains TPZShapeLinear class which implements the shape functions of a linear one-dimensional elemen...
virtual TPZGeoEl * SubElement(int is) const =0
Returns a pointer to the subelement is.
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object reallocating the necessary storage, copying the existing objects to the new...
static int MidSideNodes[1][2]
Contains declaration of TPZMesh class which defines a geometrical mesh and contains a corresponding l...
static int InNeigh[2][1][3]
void Push(const T object)
Pushes a copy of the object on the stack.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
int64_t Index() const
Returns the index of the element within the element vector of the mesh.
static int fatherside[2][3]
static int subeldata[3][3][2]
TPZAdmChunkVector< TPZGeoNode > & NodeVec()
Groups all classes which model the h refinement These classes are used as template arguments of...
virtual TPZGeoElSide Neighbour(int side)=0
Returns a pointer to the neighbour and the neighbourside along side of the current element...
int32_t Hash(std::string str)
virtual void SetSubElement(int i, TPZGeoEl *gel)=0
Sets the subelement of index i.
virtual int HasSubElement() const =0
Return 1 if the element has subelements.
TPZGeoEl * Element() const
virtual void X(TPZVec< REAL > &qsi, TPZVec< REAL > &result) const =0
Return the coordinate in real space of the point coordinate in the master element space...
This class implements a stack object. Utility.
Contains the TPZRefLinear class which implements the uniform refinement of a geometric linear element...
static REAL MidCoord[1][1]
static REAL buildt[2][3][2][1]
Contains declaration of TPZGeoElement class which implements a generic geometric element with a unifo...
virtual void SetSubElementConnectivities()
Initializes the external connectivities of the subelements.
#define PZError
Defines the output device to error messages and the DebugStop() function.
virtual void MidSideNodeIndex(int side, int64_t &index) const =0
Returns the midside node index along a side of the element.