9 #ifndef __PZ__TPZQuadTorus__ 10 #define __PZ__TPZQuadTorus__ 45 std::map<int64_t,int64_t> & gl2lcNdMap) :
TPZGeoQuad(cp,gl2lcNdMap), fR(cp.fR), fr(cp.fr), fOrigin(cp.fOrigin), fPhiTheta(cp.fPhiTheta)
61 TPZGeoQuad::operator=(cp);
72 if (phitheta.
Rows() != 2 || phitheta.
Cols() != 4) {
97 static std::string
TypeName() {
return "TorusQuad";}
111 DxDphi(0,0) = -
cos(ft[1]) *
sin(ft[0]);
112 DxDphi(0,1) = -(3. +
cos(ft[0])) *
sin(ft[1]);
113 DxDphi(1,0) = -
sin(ft[1]) *
sin(ft[0]);
114 DxDphi(1,1) =
cos(ft[1]) * (3. +
cos(ft[0]));
115 DxDphi(2,0) =
cos(ft[0]);
117 DxDphi.Multiply(gradphi, gradx);
130 result[0] = (fR + fr*
cos(resloc[0]))*
cos(resloc[1]);
131 result[1] = (fR + fr*
cos(resloc[0]))*
sin(resloc[1]);
132 result[2] = fr*
sin(resloc[0]);
static REAL cornerco[8][3]
void X(const TPZFMatrix< REAL > &nodes, TPZVec< T > &loc, TPZVec< T > &result) const
void Read(TPZStream &buf, void *context) override
Creates a geometric element according to the type of the father element.
TPZFNMatrix< 12, REAL > fPhiTheta
void SetDataRadius(const REAL &R, const REAL &r)
static void GradX(const TPZFMatrix< REAL > &nodes, TPZVec< T > &loc, TPZFMatrix< T > &gradx)
Compute gradient of x mapping from element nodes and local parametric coordinates.
TPZQuadTorus(const TPZQuadTorus &cp)
Copy constructor.
int ClassId() const override
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.
static void X(const TPZFMatrix< REAL > &nodes, TPZVec< T > &loc, TPZVec< T > &x)
Compute x mapping from element nodes and local parametric coordinates.
void SetOrigin(TPZVec< REAL > &origin)
TPZQuadTorus(const TPZQuadTorus &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
Constructor with node map.
TPZQuadTorus()
Empty constructor.
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
#define DebugStop()
Returns a message to user put a breakpoint in.
TPZManVector< REAL > fOrigin
int64_t Rows() const
Returns number of rows.
Implements the geometry of a quadrilateral element. Geometry.
void GradX(TPZFMatrix< REAL > &cornerco, TPZVec< T > &par, TPZFMatrix< T > &gradx) const
TPZQuadTorus(const TPZQuadTorus &cp, TPZGeoMesh &)
Copy constructor.
void Read(TPZStream &buf, void *context) override
read objects from the stream
This class implements a geometric mesh for the pz environment. Geometry.
TPZQuadTorus(TPZVec< int64_t > &nodeindexes)
Constructor with list of nodes.
int64_t Cols() const
Returns number of cols.
TPZQuadTorus & operator=(const TPZQuadTorus &cp)
Defines the interface for saving and reading data. Persistency.
void SetDataPhiTheta(const TPZFMatrix< REAL > &phitheta)
static void InsertExampleElement(TPZGeoMesh &gmesh, int matid, TPZVec< REAL > &lowercorner, TPZVec< REAL > &size)
static std::string TypeName()
Returns the type name of the element.
Groups all classes which model the geometry.
TPZFlopCounter cos(const TPZFlopCounter &orig)
Returns the cosine in radians and increments the counter of the Cosine.