38 typedef typename TGeo::Top
Top;
52 TGeo(cp, gl2lcNdMap) {
57 for (
int is = 0; is < 1 + TGeo::NSides - TGeo::NNodes; is++) {
65 for (
int is = 0; is < 1 + TGeo::NSides - TGeo::NNodes; is++) {
72 TGeo::Read(buf, context);
73 for (
int is = 0; is < 1 + TGeo::NSides - TGeo::NNodes; is++) {
76 for (
int is = 0; is < 1 + TGeo::NSides - TGeo::NNodes; is++) {
82 TGeo::Write(buf, withclassid);
83 for (
int is = 0; is < 1 + TGeo::NSides - TGeo::NNodes; is++) {
86 for (
int is = 0; is < 1 + TGeo::NSides - TGeo::NNodes; is++) {
96 if (side < TGeo::NNodes) {
108 static std::string
TypeName() {
return TGeo::TypeName(); }
123 void Print(std::ostream &out = std::cout)
const;
190 const bool check = TGeo::CheckProjectionForSingularity(side, InternalPar);
192 this->MapToSide(side, InternalPar, SidePar, JacSide);
195 td::stringstream sout;
196 sout <<
"side " << side << std::endl;
197 sout <<
"InternalPar: ";
198 for(
int i = 0; i < InternalPar.
NElements(); i++) sout << InternalPar[i] <<
"\t";
200 sout <<
"\tmapping is not regular"<<std::endl;
206 if(logger->isDebugEnabled())
208 std::stringstream sout;
209 sout <<
"side " << side << std::endl;
210 sout <<
"InternalPar: ";
211 for(
int i = 0; i < InternalPar.
NElements(); i++) sout << InternalPar[i] <<
"\t";
215 for(
int i = 0; i < SidePar.
NElements(); i++) sout << SidePar[i] <<
"\t";
218 JacSide.
Print(
"JacSide = ",sout);
226 tr.
Apply(SidePar, NeighPar);
228 JacNeighSide.
Resize(0, 0);
234 if(logger->isDebugEnabled())
236 std::stringstream sout;
238 sout <<
"NeighPar: ";
239 for(
int i = 0; i < NeighPar.
NElements(); i++) sout << NeighPar[i] <<
"\t";
242 JacNeighSide.
Print(
"JacNeighSide = ",sout);
253 return Hash(
"TPZGeoBlend") ^ TGeo::ClassId() << 1;
static REAL cornerco[8][3]
Contains declaration of TPZGeoElSide class which represents an element and its side, and TPZGeoElSideIndex class which represents an TPZGeoElSide index.
int ClassId() const override
TPZTransform fTrans[1+TGeo::NSides - TGeo::NNodes]
Implements a blending map from curved boundaries to the interior of the element. Geometry.
Utility class which represents an element with its side. The Geometric approximation classes Geometry...
TPZGeoBlend(const TPZGeoBlend &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
Constructor with node map.
TPZGeoElSide Neighbour(int side, TPZGeoMesh *gmesh) const
void X(TPZFMatrix< REAL > &cornerco, TPZVec< T > &par, TPZVec< T > &result) const
Get the coordinates of the point at geometric elements from coordinates of the parametric point at th...
void Print(std::ostream &out=std::cout) const
Print all relevant data of the element to cout.
TPZGeoBlend(const TPZGeoBlend &cp, TPZGeoMesh &)
Copy constructor.
TPZGeoBlend(const TPZGeoBlend &cp)
Copy constructor.
Utility class which represents an element index with its side. Geometry.
void Initialize(TPZGeoEl *refel)
Initialize the element checking connectivity on all sides.
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...
bool IsGeoBlendEl() const
bool MapToNeighSide(int side, int sidedim, TPZVec< T > &InternalPar, TPZVec< T > &NeighPar, TPZFMatrix< T > &JacNeighSide) const
Creates a geometric element according to the type of the father element.
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.
void Write(TPZStream &buf, int withclassid) const override
#define LOGPZ_DEBUG(A, B)
Define log for debug info.
bool ResetBlendConnectivity(const int64_t &side, const int64_t &index)
int64_t Rows() const
Returns number of rows.
Contains the TPZNodeRep class which implements ... Clase intermediaria que guarda.
static void InsertExampleElement(TPZGeoMesh &gmesh, int matid, TPZVec< REAL > &lowercorner, TPZVec< REAL > &size)
Method which creates a geometric boundary condition element based on the current geometric element...
TPZGeoBlend(TPZVec< int64_t > &nodeindexes)
Constructor with list of nodes.
void GradX(TPZFMatrix< REAL > &cornerco, TPZVec< T > &par, TPZFMatrix< T > &gradx) const
Computes the gradient of the transformation for parametric point at master element.
TPZGeoBlend()
Empty constructor.
void Read(TPZStream &buf, void *context) override
Contains the TPZGeoCube class which implements the geometry of hexahedra element. ...
int32_t Hash(std::string str)
void Jacobian(TPZFMatrix< REAL > &cornerco, TPZVec< REAL > &par, TPZFMatrix< REAL > &jacobian, TPZFMatrix< REAL > &axes, REAL &detjac, TPZFMatrix< REAL > &jacinv) const
Computes the Jacobian for parametric point at master element.
void TransfBetweenNeigh(int side, TPZTransform< T > &tr) const
This class implements a geometric mesh for the pz environment. Geometry.
void SetNeighbourInfo(int side, TPZGeoElSide &neigh, TPZTransform<> &trans) override
virtual void Multiply(const TPZFMatrix< TVar > &A, TPZFMatrix< TVar > &res, int opt=0) const
It mutiplies itself by TPZMatrix<TVar>A putting the result in res.
static std::string TypeName()
Returns the type name of the element.
int64_t Cols() const
Returns number of cols.
TPZGeoElSideIndex fNeighbours[1+TGeo::NSides - TGeo::NNodes]
void Write(TPZStream &buf, int withclassid) const override
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
virtual void Print(std::ostream &out) const
int Resize(const int64_t newRows, const int64_t wCols) override
Redimension a matrix, but maintain your elements.
bool IsLinearMapping(int side) const
Defines the interface for saving and reading data. Persistency.
int64_t NElements() const
Returns the number of elements of the vector.
void Read(TPZStream &buf, void *context) override
read objects from the stream
Contains the TPZGeoPrism class which implements the geometry of a prism element.
TPZGeoEl * fGeoEl
Vector of indexes of the neighbours.
Groups all classes which model the geometry.