58 pzgeom::
TPZNodeRep<
NNodes,
pztopology::
TPZLine>(),
fICnBase(3,3),
fIBaseCn(3,3),
fCenter3D(3,0.),
finitialVector(3,0.),
103 pzgeom::
TPZNodeRep<
NNodes,
pztopology::
TPZLine>(nodeindexes),
fICnBase(3,3),
fIBaseCn(3,3),
fCenter3D(3,0.),
finitialVector(3,0.),
108 std::cout <<
"Arc geometry created with " << nnod <<
" nodes, bailing out\n";
113 TPZArc3D(
TPZFMatrix<REAL> &coord) :
TPZRegisterClassId(&
TPZArc3D::
ClassId),
pzgeom::
TPZNodeRep<
NNodes,
pztopology::
TPZLine>(),
fICnBase(3,3),
fIBaseCn(3,3),
fCenter3D(3,0.),
finitialVector(3,0.),
124 for(nod=0; nod<3; nod++)
126 for(co=0; co<3; co++)
142 RotMatrix(0,0) =
cos(deflection); RotMatrix(0,1) =
sin(deflection);
143 RotMatrix(1,0) = -
sin(deflection); RotMatrix(1,1) =
cos(deflection);
146 T centerCoord, vectRotated = 0.;
147 for(
int i = 0; i < 2; i++)
150 for(
int j = 0; j < 2; j++) vectRotated += RotMatrix(i,j)*
finitialVector[j];
152 MappedBASE2D[i] = centerCoord + vectRotated;
156 MappedBASE2D[2] = 0.;
157 for(
int i = 0; i < 3; i++)
160 for(
int j = 0; j < 3; j++)
164 result[i] = vectRotated + coord(i,2);
186 X(coord,middle,OUTv);
189 Vpa[0] = coord(0,0) - OUTv[0]; Vpa[1] = coord(1,0) - OUTv[1]; Vpa[2] = coord(2,0) - OUTv[2];
192 Vpb[0] = coord(0,1) - OUTv[0]; Vpb[1] = coord(1,1) - OUTv[1]; Vpb[2] = coord(2,1) - OUTv[2];
200 gradx(0) = Vpa[1]*Vpb[0]*Vpc[1] - Vpa[0]*Vpb[1]*Vpc[1] + Vpa[2]*Vpb[0]*Vpc[2] - Vpa[0]*Vpb[2]*Vpc[2];
201 gradx(1) = -Vpa[1]*Vpb[0]*Vpc[0] + Vpa[0]*Vpb[1]*Vpc[0] + Vpa[2]*Vpb[1]*Vpc[2] - Vpa[1]*Vpb[2]*Vpc[2];
202 gradx(2) = -Vpa[2]*Vpb[0]*Vpc[0] + Vpa[0]*Vpb[2]*Vpc[0] - Vpa[2]*Vpb[1]*Vpc[1] + Vpa[1]*Vpb[2]*Vpc[1];
205 for(
int i = 0; i < 3; i++)
207 if(
fabs(Vt[i]) < 1.E-12 ) Vt[i] = 0.;
208 Vtnorm += gradx(i)*gradx(i);
213 for(
int j = 0; j < 3; j++) gradx(j) = gradx(j)*scale;
295 #ifdef REALpzfpcounter void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ fabs
TPZGeoNode * NodePtr(int i) const
Returns a pointer to the ith node of the element.
TPZArc3D & operator=(const TPZArc3D &cp)
Copy constructor.
void Read(TPZStream &buf, void *context) override
Implements a line. Utility.
void Print(std::ostream &out) const
Creates a geometric element according to the type of the father element.
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
REAL Coord(int i) const
Returns i-th coordinate of the current node.
void X(TPZFMatrix< REAL > &coord, TPZVec< T > &loc, TPZVec< T > &result) const
double ArcAngle(TPZFMatrix< REAL > &coord, double xa, double ya, double xb, double yb) const
TPZManVector< REAL, 3 > finitialVector
void ComputeR2Points(TPZFMatrix< REAL > &coord, double &xa, double &ya, double &xb, double &yb)
int ClassId() const override
Define the class id associated with the class.
TPZArc3D()
Default constructor.
static void InsertExampleElement(TPZGeoMesh &gmesh, int matid, TPZVec< REAL > &lowercorner, TPZVec< REAL > &size)
Groups all classes defining the structure of the master element.
void Read(TPZStream &buf, void *context) override
read objects from the stream
virtual void Write(const bool val)
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
#define DebugStop()
Returns a message to user put a breakpoint in.
TPZManVector< REAL, 3 > fCenter3D
Contains the TPZNodeRep class which implements ... Clase intermediaria que guarda.
static std::string TypeName()
void GradX(TPZFMatrix< REAL > &coord, TPZVec< T > &par, TPZFMatrix< T > &gradx) const
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ sqrt
Contains declaration of TPZGeoElRefPattern class which implements a generic geometric element which i...
void Read(TPZStream &buf, void *context) override
read objects from the stream
void ComputeAtributes(TPZFMatrix< REAL > &coord)
REAL co[8][3]
Coordinates of the eight nodes.
Defines the topology of a line element. Topology Sides 0 and 1 are vertices, side 2 is the line...
Implements ... Geometry Topology.
TPZArc3D(const TPZArc3D &cp)
Copy constructor.
TPZArc3D(const TPZArc3D &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
Copy constructor with map of nodes.
void Initialize(TPZGeoEl *refel)
Initialize the internal data structure of the arc using the coordinates of the nodes.
TPZArc3D(const TPZArc3D &cp, TPZGeoMesh &)
Another copy constructor.
TPZFNMatrix< 9 > fICnBase
Implements three dimensional arc. Geometry.
void Write(TPZStream &buf, int withclassid) const override
This class implements a geometric mesh for the pz environment. Geometry.
TPZFNMatrix< 9 > fIBaseCn
void Print(std::ostream &out) const
static bool IsLinearMapping(int side)
virtual void Print(std::ostream &out) const
Defines the interface for saving and reading data. Persistency.
int64_t NElements() const
Returns the number of elements of the vector.
Contains the TPZLine class which defines the topology of a line element.
TPZArc3D(TPZVec< int64_t > &nodeindexes)
Groups all classes which model the geometry.
TPZFlopCounter cos(const TPZFlopCounter &orig)
Returns the cosine in radians and increments the counter of the Cosine.
const TVar & GetVal(const int64_t row, const int64_t col) const override
Get values without bounds checking This method is faster than "Get" if DEBUG is defined.
TPZArc3D(TPZFMatrix< REAL > &coord)
virtual void Read(bool &val)