48 for(i=0;i<nnodes;i++){
50 coord[0] = gnode.
Coord(0);
51 coord[1] = gnode.
Coord(1);
52 coord[2] = gnode.
Coord(2);
53 extendedmesh->
NodeVec()[i].Initialize(coord,*extendedmesh);
55 extendedmesh->
NodeVec()[i+maxid].Initialize(coord,*extendedmesh);
63 int type = gel->
Type();
67 for(j=0;j<3;j++) incidel[j] = gel->
NodeIndex(j);
68 for(j=3;j<6;j++) incidel[j] = incidel[j-3]+maxid;
70 for(j=0;j<3;j++) incidel[j] = gel->
NodeIndex(j)+maxid;
71 for(j=3;j<6;j++) incidel[j] = gel->
NodeIndex(j-3);
79 for(j=0;j<4;j++) incidel[j] = gel->
NodeIndex(j);
80 for(j=4;j<8;j++) incidel[j] = incidel[j-4]+maxid;
82 for(j=0;j<4;j++) incidel[j] = gel->
NodeIndex(j)+maxid;
83 for(j=4;j<8;j++) incidel[j] = gel->
NodeIndex(j-4);
100 Tr.
Print(
"Rotation = ");
102 int NumberofGeoNodes = GeoSurface->
NNodes();
103 for (
int inode = 0; inode < NumberofGeoNodes; inode++)
108 iCoordsTr[0] = Tr(0,0)*iCoords[0]+Tr(0,1)*iCoords[1]+Tr(0,2)*iCoords[2];
109 iCoordsTr[1] = Tr(1,0)*iCoords[0]+Tr(1,1)*iCoords[1]+Tr(1,2)*iCoords[2];
110 iCoordsTr[2] = Tr(2,0)*iCoords[0]+Tr(2,1)*iCoords[1]+Tr(2,2)*iCoords[2];
112 GeoSurface->
NodeVec()[inode] = GeoNode;
117 if(naumentedlayers < 1)
142 for(i=0;i<nnodes;i++) {
144 coord[0] = gnode.
Coord(0);
145 coord[1] = gnode.
Coord(1);
146 coord[2] = gnode.
Coord(2);
147 extendedmesh->
NodeVec()[i].Initialize(coord,*extendedmesh);
148 for(j=0;j<naumentedlayers;j++) {
150 extendedmesh->
NodeVec()[i+(j+1)*maxid].Initialize(coord,*extendedmesh);
158 for(i=0;i<nelem;i++) {
166 int type = gel->
Type();
169 incidelorig.
Resize(nnodes);
170 for(j=0;j<nnodes;j++)
173 for(k=0;k<naumentedlayers;k++) {
175 for(j=0;j<nnodes;j++) incidel[j] = incidelorig[j];
176 for(j=nnodes;j<2*nnodes;j++) incidel[j] = incidel[j-nnodes]+maxid;
178 for(j=0;j<nnodes;j++) incidelorig[j] = incidel[j+nnodes];
180 for(j=0;j<nnodes;j++) incidel[j] = incidelorig[j]+maxid;
181 for(j=nnodes;j<2*nnodes;j++) incidel[j] = incidelorig[j-nnodes];
183 for(j=0;j<nnodes;j++) incidelorig[j] = incidel[j];
194 incidelorig.
Resize(nnodes);
195 for(j=0;j<nnodes;j++) incidelorig[j] = gel->
NodeIndex(j);
197 for(k=0;k<naumentedlayers;k++) {
199 for(j=0;j<nnodes;j++) incidel[j] = incidelorig[j];
200 for(j=nnodes;j<2*nnodes;j++) incidel[j] = incidel[j-nnodes]+maxid;
204 int64_t a = incidel[3];
205 incidel[3] = incidel[2];
209 for(j=0;j<nnodes;j++) incidelorig[j] = incidel[j+nnodes];
211 for(j=0;j<nnodes;j++) incidel[j] = incidelorig[j]+maxid;
212 for(j=nnodes;j<2*nnodes;j++) incidel[j] = incidelorig[j-nnodes];
214 for(j=0;j<nnodes;j++) incidelorig[j] = incidel[j];
224 if(matidbottom != 0) {
225 for(i=0;i<nelem;i++) {
233 incidelorig.
Resize(nnodes);
234 for(j=0;j<nnodes;j++)
248 for(i=0;i<nelem;i++) {
256 incidelorig.
Resize(nnodes);
257 for(j=0;j<nnodes;j++)
258 incidelorig[j] = gel->
NodeIndex(j)+(naumentedlayers*maxid);
void SetCoord(const TPZVec< REAL > &x)
Sets all coordinates into the current node. It gets the dim values from x.
int64_t CreateUniqueNodeId()
Returns ++fNodeMaxId.
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...
void PrintGeneratedMesh(std::ostream &out=std::cout)
Prints the generated mesh.
REAL Coord(int i) const
Returns i-th coordinate of the current node.
static void DeformMesh(TPZFMatrix< REAL > &Tr, TPZGeoMesh *GeoSurface)
Apply transformation to a given geomesh.
TPZAutoPointer< TPZGeoMesh > fFineGeoMesh
Fine geometric mesh generated by the NeoPZ.
TPZExtendGridDimension(char *geofile, REAL thickness)
Constructor using filename with gmesh data and thickness.
int64_t NElements() const
Access method to query the number of elements of the vector.
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...
void SetDimension(int dim)
Set Dimension.
int fEltype
type of element to be generated =1 -> RefPattern =0 -> Uniform Refinement
TPZGeoMesh * ExtendedMesh()
It reads the mesh since the archive of entrance finemesh, or since the fFineGeoMesh passed in the con...
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...
void Resize(const int newsize)
Increase the size of the chunk vector.
Contains declaration of TPZMesh class which defines a geometrical mesh and contains a corresponding l...
virtual void Print(std::ostream &out=std::cout) const
Print the information of the grid to an ostream.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
int64_t NNodes() const
Number of nodes of the mesh.
virtual MElementType Type() const =0
Returns the element type acording to pzeltype.h.
TPZAdmChunkVector< TPZGeoNode > & NodeVec()
Contains the TPZExtendGridDimension class which generates a three dimensional mesh as an extension of...
virtual int HasSubElement() const =0
Return 1 if the element has subelements.
virtual int NNodes() const =0
Returns the number of nodes of the element.
REAL fThickness
Thickness of the mesh (+ or -)
void BuildConnectivity()
Build the connectivity of the grid.
int Dimension()
Get Dimension.
Implements a geometric node in the pz environment. Geometry.
This class implements a geometric mesh for the pz environment. Geometry.
virtual void Print(std::ostream &out) const
void GetCoordinates(TPZVec< REAL > &co)
Fill the coordinates of the node.
TPZAdmChunkVector< TPZGeoEl * > & ElementVec()
Methods for handling pzlists.