NeoPZ
|
This class implements a discontinuous element (for use with discontinuous Galerkin). Computational Element. More...
#include <TPZCompElDisc.h>
Public Member Functions | |
void | SetTensorialShape () |
Set tensorial shape functions. More... | |
void | SetTotalOrderShape () |
Set total order shape functions. More... | |
void | SetTensorialShapeFull () |
Set tensorial shape functions with many derivatives. More... | |
void | SetTotalOrderShapeFull () |
Set total order shape functions. More... | |
void | SetExternalShapeFunction (TPZAutoPointer< TPZFunction< STATE > > externalShapes) |
Define external shape functions which are stored in class attribute fExternalShape. More... | |
bool | HasExternalShapeFunction () |
Return whether element has external shape functions set to. More... | |
int | GetMaterial (const TPZGeoElSide &gside) |
virtual void | SetInnerRadius (REAL InnerRadius) |
Sets the inner radius value. More... | |
virtual void | SetNInterfaces (int nfaces) |
Sets element's number of interfaces. More... | |
virtual int | NInterfaces () |
Returns the number of interfaces. More... | |
TPZCompElDisc () | |
Default constructor. More... | |
TPZCompElDisc (TPZCompMesh &mesh, TPZGeoEl *ref, int64_t &index) | |
Constructor of the discontinuous element associated with geometric element. More... | |
TPZCompElDisc (TPZCompMesh &mesh, int64_t &index) | |
Constructor. More... | |
TPZCompElDisc (TPZCompMesh &mesh, const TPZCompElDisc ©) | |
Copy constructor. More... | |
TPZCompElDisc (TPZCompMesh &mesh, const TPZCompElDisc ©, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) | |
Creates a clone of the given element in a pathc mesh. More... | |
TPZCompElDisc (TPZCompMesh &mesh, const TPZCompElDisc ©, int64_t &index) | |
virtual void | SetCreateFunctions (TPZCompMesh *mesh) override |
Set create function in TPZCompMesh to create elements of this type. More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh) const override |
Method for creating a copy of the element. More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh, int64_t &index) const |
virtual TPZCompEl * | ClonePatchEl (TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const override |
virtual | ~TPZCompElDisc () |
Default destructor. More... | |
void | Divide (int64_t index, TPZVec< int64_t > &subindex, int interpolate=0) override |
Divide the computational element. More... | |
virtual void | Shape (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphidxi) override |
Computes the shape function set at the point x. This method uses the order of interpolation of the element along the sides to compute the number of shapefunctions. More... | |
virtual void | ComputeShape (TPZVec< REAL > &intpoint, TPZMaterialData &data) override |
Compute shape functions based on master element in the classical FEM manne. More... | |
virtual void | ShapeX (TPZVec< REAL > &X, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
void | AppendExternalShapeFunctions (TPZVec< REAL > &X, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Add extenal shape function into already computed phi and dphi discontinuous functions. More... | |
virtual const TPZIntPoints & | GetIntegrationRule () const override |
Returns a reference to an integration rule suitable for integrating the interior of the element. More... | |
virtual TPZIntPoints & | GetIntegrationRule () override |
Returns a reference to an integration rule suitable for integrating the interior of the element. More... | |
virtual MElementType | Type () override |
Type of the element. More... | |
REAL | ConstC () const |
It returns the constant that normalizes the bases of the element. More... | |
void | SetConstC (REAL c) |
void | SetTrueUseQsiEta () |
void | SetFalseUseQsiEta () |
void | InternalPoint (TPZVec< REAL > &point) |
Returns the center point. More... | |
virtual void | Print (std::ostream &out=std::cout) const override |
Prints the features of the element. More... | |
virtual int | Degree () const |
Returns the degree of interpolation of the element. More... | |
virtual void | SetDegree (int degree) |
Assigns the degree of the element. More... | |
virtual int | NConnects () const override |
Returns the number of connects. More... | |
int | NCornerConnects () const |
Amount of vertices of the element. More... | |
virtual void | BuildCornerConnectList (std::set< int64_t > &connectindexes) const override |
adds the connect indexes associated with base shape functions to the set More... | |
int | Dimension () const override |
Returns dimension from the element. More... | |
virtual REAL | NormalizeConst () |
Calculates the normalizing constant of the bases of the element. More... | |
int64_t | ConnectIndex (int side=0) const override |
Returns the connect index from the element. More... | |
void | SetConnectIndex (int, int64_t index) override |
Set the index i to node inode. More... | |
virtual int | NSideConnects (int iside) const override |
Returns the number of dof nodes along side iside. More... | |
virtual int | SideConnectLocId (int icon, int is) const override |
Returns the local node number of icon along is. More... | |
virtual int | NShapeF () const override |
Returns the shapes number of the element. More... | |
virtual int | MaxOrder () override |
Returns the max order of interpolation. More... | |
int | MaxOrderExceptExternalShapes () |
Returns the max order of interpolation excluding external shape order. More... | |
virtual int | NConnectShapeF (int inod, int order) const override |
Returns the number of shapefunctions associated with a connect. More... | |
REAL | CenterPoint (int index) const |
virtual void | CenterPoint (TPZVec< REAL > ¢er) |
void | SetCenterPoint (int i, REAL x) |
REAL | SizeOfElement () |
virtual REAL | VolumeOfEl () override |
Returns the volume of the geometric element associated. More... | |
void | CreateGraphicalElement (TPZGraphMesh &grmesh, int dimension) override |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files. More... | |
void | SolutionX (TPZVec< REAL > &x, TPZVec< STATE > &uh) |
Computes the solution in function of a point in cartesian space. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) override |
Computes solution and its derivatives in the local coordinate qsi. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZMaterialData &data) override |
Compute shape functions based on master element in the classical FEM manne. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphix, const TPZFMatrix< REAL > &axes, TPZSolVec &sol, TPZGradSolVec &dsol) override |
Computes solution and its derivatives in local coordinate qsi. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZVec< REAL > &normal, TPZSolVec &leftsol, TPZGradSolVec &dleftsol, TPZFMatrix< REAL > &leftaxes, TPZSolVec &rightsol, TPZGradSolVec &drightsol, TPZFMatrix< REAL > &rightaxes) override |
Computes solution and its derivatives in the local coordinate qsi. This method will function for both volumetric and interface elements. More... | |
virtual void | AccumulateIntegrationRule (int degree, TPZStack< REAL > &point, TPZStack< REAL > &weight) |
virtual void | AccumulateVertices (TPZStack< TPZGeoNode *> &nodes) |
Accumulates the vertices of the agglomerated elements. More... | |
int | NSides () |
void | BuildTransferMatrix (TPZCompElDisc &coarsel, TPZTransfer< STATE > &transfer) |
int | ClassId () const override |
Returns the unique identifier for reading/writing objects to streams. More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Save the element data to a stream. More... | |
void | Read (TPZStream &buf, void *context) override |
Read the element data from a stream. More... | |
virtual void | SetPreferredOrder (int order) override |
Define the desired order for entire element. More... | |
virtual void | PRefine (int order) override |
Change the preferred order for the element and proceed the adjust of the aproximation space taking in acount the type of formulation and the neighbours of the element. More... | |
Public Member Functions inherited from TPZInterpolationSpace | |
TPZInterpolationSpace () | |
Default constructor. More... | |
virtual | ~TPZInterpolationSpace () |
Default destructor. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace ©) | |
Puts a copy of the element in the referred mesh. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace ©, std::map< int64_t, int64_t > &gl2lcElMap) | |
Puts a copy of the element in the patch mesh. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, const TPZInterpolationSpace ©, int64_t &index) | |
Copy of the element in the new mesh whit alocated index. More... | |
TPZInterpolationSpace (TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index) | |
Create a computational element within mesh. More... | |
virtual void | InitMaterialData (TPZMaterialData &data) |
Initialize a material data and its attributes based on element dimension, number of state variables and material definitions. More... | |
virtual void | ComputeRequiredData (TPZMaterialData &data, TPZVec< REAL > &qsi) |
Compute and fill data with requested attributes. More... | |
virtual void | ComputeRequiredData (TPZVec< REAL > &intpointtemp, TPZVec< TPZTransform< REAL > > &trvec, TPZVec< TPZMaterialData > &datavec) |
Compute and fill data with requested attributes for each of the compels in fElementVec. More... | |
virtual void | ComputeNormal (TPZMaterialData &data) |
Computes the proper normal vector towards the neighbour element. More... | |
void | VectorialProd (TPZVec< REAL > &ivec, TPZVec< REAL > &jvec, TPZVec< REAL > &kvec, bool unitary=false) |
Computes the vectorial product of two vectors and normalize the result if unitary is set to true. More... | |
virtual void | CalcStiff (TPZElementMatrix &ek, TPZElementMatrix &ef) override |
Computes the element stiffness matrix and right hand side. More... | |
virtual void | CalcResidual (TPZElementMatrix &ef) override |
Only computes the element residual. More... | |
virtual void | InitializeElementMatrix (TPZElementMatrix &ek, TPZElementMatrix &ef) |
Initialize element matrix in which is computed CalcStiff. More... | |
virtual void | InitializeElementMatrix (TPZElementMatrix &ef) |
Initialize element matrix in which is computed in CalcResidual. More... | |
void | MinMaxSolutionValues (TPZVec< STATE > &min, TPZVec< STATE > &max) |
Returns minimum and maximum values for each state variable. More... | |
virtual REAL | InnerRadius () |
Returns the inner radius value. More... | |
virtual void | Solution (TPZVec< REAL > &qsi, int var, TPZVec< STATE > &sol) override |
Post processing method which computes the solution for the var post processed variable. More... | |
void | InterpolateSolution (TPZInterpolationSpace &coarsel) |
Interpolates the solution into the degrees of freedom nodes from the degrees of freedom nodes from the coarse element. More... | |
void | CreateInterfaces (bool BetweenContinuous=false) |
Create interfaces between this and its neighbours. More... | |
TPZInterfaceElement * | CreateInterface (int side, bool BetweenContinuous=false) |
Create an interface between this and the neighbour by side side. More... | |
int | ExistsInterface (TPZGeoElSide geosd) |
Verify existence of interface. More... | |
void | RemoveInterfaces () |
Remove interfaces connected to this element. More... | |
void | RemoveInterface (int side) |
Remove interface which is neighbour from side side. More... | |
virtual void | EvaluateError (std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)> func, TPZVec< REAL > &errors, bool store_error) override |
Performs an error estimate on the elemen. More... | |
virtual void | ComputeError (int errorid, TPZVec< REAL > &error) override |
Computes the element error estimator. More... | |
virtual TPZVec< STATE > | IntegrateSolution (int variable) const override |
Integrate a variable over the element. More... | |
virtual void | Integrate (int variable, TPZVec< STATE > &value) override |
Integrates a variable over the element. More... | |
void | ProjectFlux (TPZElementMatrix &ek, TPZElementMatrix &ef) override |
Integrate the solution over the element. More... | |
virtual int | GetPreferredOrder () |
Returns the prefered order for the element. More... | |
virtual int | GetSideOrient (int side) |
It returns the normal orientation of the reference element by the side. Only side that has dimension larger than zero and smaller than me. More... | |
virtual void | SetSideOrient (int side, int sideorient) |
It set the normal orientation of the element by the side. Only side that has dimension equal to my dimension minus one. More... | |
void | BuildTransferMatrix (TPZInterpolationSpace &coarsel, TPZTransform<> &t, TPZTransfer< STATE > &transfer) |
Accumulates the transfer coefficients between the current element and the coarse element into the transfer matrix, using the transformation t. More... | |
int | NSideShapeF (int side) const |
Returns the number of shape functions on a side. More... | |
int64_t | SideConnectIndex (int icon, int is) const |
Returns the index of the c th connect object along side is. More... | |
TPZConnect & | SideConnect (int icon, int is) const |
Returns a pointer to the icon th connect object along side is. More... | |
virtual void | AdjustIntegrationRule () |
Adjust the integration rule according to the polynomial order of shape functions. More... | |
virtual int | ComputeIntegrationOrder () const override |
Compute integration order according to ... . More... | |
virtual void | SetIntegrationRule (int order) override |
virtual void | SideShapeFunction (int side, TPZVec< REAL > &point, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Compute the values of the shape function along the side. More... | |
Public Member Functions inherited from TPZCompEl | |
TPZCompEl () | |
Simple Constructor. More... | |
virtual | ~TPZCompEl () |
Simple destructor. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©) | |
Put a copy of the element in the referred mesh. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©, std::map< int64_t, int64_t > &gl2lcElMap) | |
Put a copy of the element in the patch mesh. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©, int64_t &index) | |
Copy of the element in the new mesh returning allocated index. More... | |
TPZCompEl (TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index) | |
Creates a computational element within mesh. Inserts the element within the data structure of the mesh. More... | |
virtual void | LoadElementReference () |
Loads the geometric element reference. More... | |
virtual REAL | CompareElement (int var, char *matname) |
This method computes the norm of the difference of a post processed variable with @ the same post processed variable of the element pointed to by the geometric element. More... | |
virtual void | Assemble () |
Computes the element stifness matrix and right hand side in an internal data structure. Used for initializing condensed element data structures. More... | |
virtual bool | HasMaterial (const std::set< int > &materialids) const |
Verifies if the material associated with the element is contained in the set. More... | |
virtual void | GetMemoryIndices (TPZVec< int64_t > &indices) const |
Get the indices of the vector of element memory associated with the integration points. More... | |
virtual void | SetMemoryIndices (TPZVec< int64_t > &indices) |
Set the indices of the vector of element memory associated with the integration points. More... | |
virtual void | PrepareIntPtIndices () |
Prepare the vector of the material withmem with the correct integration point indexes. More... | |
virtual void | ForcePrepareIntPtIndices () |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class. More... | |
virtual void | SetFreeIntPtIndices () |
Frees the material damage varibles memory in the proper material class. More... | |
virtual int | NumberOfCompElementsInsideThisCompEl () |
Return the size of the elementvec in multiphysics, if it is not multiphysics, just return 1. More... | |
virtual void | TransferMultiphysicsElementSolution () |
virtual void | SetMultiphysicsElementSolution () |
virtual void | AddShapeRestraint (TPZOneShapeRestraint restraint) |
Add a shape restraint (meant to fit the pyramid to restraint. More... | |
virtual std::list< TPZOneShapeRestraint > | GetShapeRestraints () const |
Return a list with the shape restraints. More... | |
virtual void | ResetShapeRestraints () |
Return a list with the shape restraints. More... | |
virtual TPZVec< STATE > | IntegrateSolution (const std::string &varname, const std::set< int > &matids) |
Compute the integral of a variable defined by the string if the material id is included in matids. More... | |
virtual void | BuildConnectList (std::set< int64_t > &indepconnectlist, std::set< int64_t > &depconnectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (TPZStack< int64_t > &connectlist) const |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (std::set< int64_t > &connectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual int | HasDependency () |
Returns 1 if the element has at least one dependent node. Returns 0 otherwise. More... | |
virtual int | PressureConnectIndex () const |
Returns the index of the pressure connect. More... | |
virtual void | ReduceInternalNodes () |
Domain Decomposition. This method will eliminate the nodes which are internal to the element from the datastructure of the grid After calling this method, the superelement will statically condense the internal equations. More... | |
virtual void | CalcBlockDiagonal (TPZStack< int64_t > &connectlist, TPZBlockDiagonal< STATE > &block) |
Calculates the diagonal block. More... | |
REAL | MaximumRadiusOfEl () |
Will return the maximum distance between the nodes of the reference element. More... | |
REAL | LesserEdgeOfEl () |
Will return the smallest distance between two nodes of the reference element. More... | |
virtual void | InitializeIntegrationRule () |
virtual void | SetIntegrationRule (TPZIntPoints *intrule) |
Method to set a dynamically allocated integration rule. More... | |
virtual int | IsInterface () |
TPZGeoEl * | Reference () const |
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise. More... | |
void | SetReference (int64_t referenceindex) |
virtual bool | NeedsComputing (const std::set< int > &materialids) |
return true if the element has a variational statement associated with the material ids More... | |
virtual int | NEquations () |
Returns the number of equations of the element. More... | |
int64_t | Index () const |
Returns element index of the mesh fELementVec list. More... | |
void | SetIndex (int64_t index) |
Sets element index of the mesh fELementVec list. More... | |
virtual TPZConnect & | Connect (int i) const |
Returns a pointer to the ith node. More... | |
virtual TPZMaterial * | Material () const |
Identify the material object associated with the element. More... | |
TPZGeoEl * | GetRefElPatch () |
Returns the reference geometric element patch. Look for a geometric element which refers to a computational element and is neighbour of the current element AND is larger than the current element. More... | |
virtual void | LoadSolution () |
Loads the solution within the internal data structure of the element. More... | |
void | SetMesh (TPZCompMesh *mesh) |
Sets the grid of the element. More... | |
TPZCompMesh * | Mesh () const |
Return a pointer to the grid of the element. More... | |
virtual void | PrintSolution (TPZVec< REAL > &point, const char *VarName, std::ostream &out) |
Prints the solution - sol - for the variable "VarName" at point specified in terms of the master element coordinates. More... | |
virtual void | PrintCoordinate (TPZVec< REAL > &point, int CoordinateIndex, std::ostream &out) |
Prints one coordinate index corresponding to the point to the output stream. More... | |
virtual void | PrintTitle (const char *VarName, std::ostream &out) |
Prints the variables names associated with the element material. More... | |
Public Member Functions inherited from TPZSavable | |
TPZSavable () | |
virtual | ~TPZSavable () |
virtual std::list< std::map< std::string, uint64_t > > | VersionHistory () const |
virtual std::pair< std::string, uint64_t > | Version () const |
virtual bool | Compare (TPZSavable *copy, bool override=false) |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
virtual bool | Compare (TPZSavable *copy, bool override=false) const |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
Public Member Functions inherited from TPZRegisterClassId | |
template<typename T > | |
TPZRegisterClassId (int(T::*)() const) | |
TPZRegisterClassId ()=default | |
Static Public Member Functions | |
static void | SetTensorialShape (TPZCompMesh *cmesh) |
Sets tensorial shape functions for all Discontinuous elements in cmesh. More... | |
static void | SetTotalOrderShape (TPZCompMesh *cmesh) |
Set total order shape functions for all Discontinuous elements in cmesh. More... | |
static TPZCompEl * | CreateDisc (TPZGeoEl *geo, TPZCompMesh &mesh, int64_t &index) |
Creates discontinuous computational element. More... | |
static void | SetOrthogonalFunction (void(*orthogonal)(REAL C, REAL x0, REAL x, int degree, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, int n)) |
Sets the orthogonal function which will be used throughout the program. More... | |
static REAL | EvaluateSquareResidual2D (TPZInterpolationSpace *cel) |
Compute the integral of the square residual over the element domain. More... | |
static void | EvaluateSquareResidual2D (TPZCompMesh &cmesh, TPZVec< REAL > &error, bool verbose=false) |
Evaluates the square residual for every element in mesh. More... | |
Static Public Member Functions inherited from TPZInterpolationSpace | |
static void | Convert2Axes (const TPZFMatrix< REAL > &dphi, const TPZFMatrix< REAL > &jacinv, TPZFMatrix< REAL > &dphidx) |
convert a shapefunction derivative in xi-eta to a function derivative in axes More... | |
Static Public Member Functions inherited from TPZCompEl | |
static int | StaticClassId () |
static void | SetgOrder (int order) |
Sets the value of the default interpolation order. More... | |
static int | GetgOrder () |
Set the default value of the interpolation order. More... | |
static void | SetOrthogonalFunction (void(*orthogonal)(REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)) |
Sets the orthogonal function which will be used throughout the program by default this function is the Chebyshev function. More... | |
static void | Chebyshev (REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Implements of the orthogonal Chebyshev functions. More... | |
Static Public Member Functions inherited from TPZSavable | |
static std::set< TPZRestoreClassBase * > & | RestoreClassSet () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::map< int, TPZRestore_t > & | ClassIdMap () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::pair< std::string, uint64_t > | NeoPZVersion () |
static void | Register (TPZRestoreClassBase *restore) |
static void | RegisterClassId (int classid, TPZRestore_t fun) |
static TPZSavable * | CreateInstance (const int &classId) |
Protected Member Functions | |
virtual int64_t | CreateMidSideConnect () |
It creates new conect that it associates the degrees of freedom of the element and returns its index. More... | |
virtual void | ComputeShape (TPZVec< REAL > &intpoint, TPZVec< REAL > &X, TPZFMatrix< REAL > &jacobian, TPZFMatrix< REAL > &axes, REAL &detjac, TPZFMatrix< REAL > &jacinv, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, TPZFMatrix< REAL > &dphidx) override |
Compute shape functions based on master element in the classical FEM manner. More... | |
Protected Member Functions inherited from TPZInterpolationSpace | |
void | ExpandShapeFunctions (TPZVec< int64_t > &connectlist, TPZVec< int > &dependencyorder, TPZVec< int > &blocksizes, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Auxiliary method to expand a vector of shapefunctions and their derivatives to acount for constraints. More... | |
Protected Attributes | |
TPZAutoPointer< TPZIntPoints > | fIntRule |
pzshape::TPZShapeDisc::MShapeType | fShapefunctionType |
Shape function type used by the element. More... | |
int64_t | fConnectIndex |
It preserves index of connect associated to the element. More... | |
REAL | fConstC |
Normalizing constant for shape functions. More... | |
bool | fUseQsiEta |
Variable to choose the qsi point or the X point in the calculus of the phis and dphis. More... | |
TPZAutoPointer< TPZFunction< STATE > > | fExternalShape |
A pz function to allow the inclusion of extra shape functions which are defined externally. More... | |
TPZManVector< REAL, 3 > | fCenterPoint |
It keeps the interior point coordinations of the element. More... | |
Protected Attributes inherited from TPZInterpolationSpace | |
int | fPreferredOrder |
Preferred polynomial order. More... | |
Protected Attributes inherited from TPZCompEl | |
TPZCompMesh * | fMesh |
Computational mesh to which the element belongs. More... | |
int64_t | fIndex |
Element index into mesh element vector. More... | |
TPZIntPoints * | fIntegrationRule |
Integration rule established by the user. More... | |
Private Member Functions | |
TPZAutoPointer< TPZIntPoints > | CreateIntegrationRule () const |
This class implements a discontinuous element (for use with discontinuous Galerkin). Computational Element.
Definition at line 35 of file TPZCompElDisc.h.
TPZCompElDisc::TPZCompElDisc | ( | ) |
Default constructor.
Definition at line 108 of file TPZCompElDisc.cpp.
References pzshape::TPZShapeDisc::ETensorial, fConstC, fIntRule, fShapefunctionType, and fUseQsiEta.
Referenced by Clone(), ClonePatchEl(), CreateDisc(), EvaluateSquareResidual2D(), and SetNInterfaces().
TPZCompElDisc::TPZCompElDisc | ( | TPZCompMesh & | mesh, |
TPZGeoEl * | ref, | ||
int64_t & | index | ||
) |
Constructor of the discontinuous element associated with geometric element.
Definition at line 183 of file TPZCompElDisc.cpp.
References CreateIntegrationRule(), CreateMidSideConnect(), pzshape::TPZShapeDisc::ETensorial, fIntRule, TPZCompEl::fMesh, fShapefunctionType, TPZCompMesh::GetDefaultOrder(), SetDegree(), TPZGeoEl::SetReference(), and SetTrueUseQsiEta().
TPZCompElDisc::TPZCompElDisc | ( | TPZCompMesh & | mesh, |
int64_t & | index | ||
) |
Constructor.
Definition at line 118 of file TPZCompElDisc.cpp.
References CreateIntegrationRule(), pzshape::TPZShapeDisc::ETensorial, fIntRule, fShapefunctionType, and SetTrueUseQsiEta().
TPZCompElDisc::TPZCompElDisc | ( | TPZCompMesh & | mesh, |
const TPZCompElDisc & | copy | ||
) |
Copy constructor.
Definition at line 126 of file TPZCompElDisc.cpp.
References TPZIntPoints::Clone(), fExternalShape, fIntRule, fShapefunctionType, fUseQsiEta, GetIntegrationRule(), and SetExternalShapeFunction().
TPZCompElDisc::TPZCompElDisc | ( | TPZCompMesh & | mesh, |
const TPZCompElDisc & | copy, | ||
std::map< int64_t, int64_t > & | gl2lcConMap, | ||
std::map< int64_t, int64_t > & | gl2lcElMap | ||
) |
Creates a clone of the given element in a pathc mesh.
mesh | patch mesh |
copy | element to be copied |
gl2lcConMap | map between the connect indexes in original and patch mesh |
gl2lcElMap | map between the element indexes in original an patch mesh |
Definition at line 141 of file TPZCompElDisc.cpp.
References TPZIntPoints::Clone(), fExternalShape, TPZCompEl::fIndex, fIntRule, fShapefunctionType, fUseQsiEta, GetIntegrationRule(), and SetExternalShapeFunction().
TPZCompElDisc::TPZCompElDisc | ( | TPZCompMesh & | mesh, |
const TPZCompElDisc & | copy, | ||
int64_t & | index | ||
) |
Definition at line 162 of file TPZCompElDisc.cpp.
References TPZIntPoints::Clone(), CreateMidSideConnect(), Degree(), fConstC, fExternalShape, fIntRule, fShapefunctionType, fUseQsiEta, GetIntegrationRule(), TPZCompEl::Reference(), SetDegree(), SetExternalShapeFunction(), and TPZGeoEl::SetReference().
|
virtual |
Default destructor.
Definition at line 101 of file TPZCompElDisc.cpp.
References TPZGeoEl::Reference(), and TPZGeoEl::ResetReference().
Referenced by ClonePatchEl().
|
virtual |
Reimplemented in TPZAgglomerateElement.
Definition at line 699 of file TPZCompElDisc.cpp.
References TPZGeoEl::CreateSideIntegrationRule(), degree(), fabs, TPZGeoEl::Jacobian(), TPZIntPoints::NPoints(), TPZGeoEl::NSides(), TPZIntPoints::Point(), TPZStack< T, NumExtAlloc >::Push(), PZError, TPZCompEl::Reference(), and TPZGeoEl::X().
Referenced by TPZAgglomerateElement::AccumulateIntegrationRule(), TPZAgglomerateElement::ProjectSolution(), and VolumeOfEl().
|
virtual |
Accumulates the vertices of the agglomerated elements.
Reimplemented in TPZAgglomerateElement.
Definition at line 846 of file TPZCompElDisc.cpp.
References TPZGeoEl::NNodes(), TPZGeoEl::NodePtr(), TPZStack< T, NumExtAlloc >::Push(), PZError, and TPZCompEl::Reference().
Referenced by TPZAgglomerateElement::AccumulateVertices(), and VolumeOfEl().
void TPZCompElDisc::AppendExternalShapeFunctions | ( | TPZVec< REAL > & | X, |
TPZFMatrix< REAL > & | phi, | ||
TPZFMatrix< REAL > & | dphi | ||
) |
Add extenal shape function into already computed phi and dphi discontinuous functions.
Definition at line 277 of file TPZCompElDisc.cpp.
References TPZMatrix< TVar >::Cols(), DebugStop, Degree(), Dimension(), TPZFunction< TVar >::Execute(), fExternalShape, fShapefunctionType, TPZFunction< TVar >::NFunctions(), PZError, TPZFMatrix< TVar >::Resize(), TPZMatrix< TVar >::Rows(), and TPZFMatrix< TVar >::Zero().
Referenced by ClonePatchEl(), and ShapeX().
|
overridevirtual |
adds the connect indexes associated with base shape functions to the set
Implements TPZCompEl.
Definition at line 1216 of file TPZCompElDisc.cpp.
References ConnectIndex().
Referenced by NCornerConnects().
void TPZCompElDisc::BuildTransferMatrix | ( | TPZCompElDisc & | coarsel, |
TPZTransfer< STATE > & | transfer | ||
) |
Definition at line 742 of file TPZCompElDisc.cpp.
References TPZTransfer< TVar >::AddBlockNumbers(), TPZCompEl::Connect(), ConnectIndex(), TPZCompMesh::ConnectVec(), TPZGeoEl::CreateSideIntegrationRule(), Degree(), dimension, Dimension(), ELDLt, TPZVec< T >::Fill(), TPZMatrix< TVar >::GetSub(), TPZTransfer< TVar >::HasRowDefinition(), TPZGeoEl::Jacobian(), TPZCompEl::Mesh(), Norm(), TPZIntPoints::NPoints(), NShapeF(), TPZGeoEl::NSides(), TPZIntPoints::Point(), TPZStack< T, NumExtAlloc >::Push(), PZError, TPZCompEl::Reference(), TPZConnect::SequenceNumber(), TPZTransfer< TVar >::SetBlockMatrix(), SetDegree(), Shape(), TPZMatrix< TVar >::SolveDirect(), pzgeom::tol, TPZGeoEl::X(), and TPZFMatrix< TVar >::Zero().
Referenced by TPZCompMesh::BuildTransferMatrixDesc(), and VolumeOfEl().
|
inline |
Definition at line 310 of file TPZCompElDisc.h.
Referenced by TPZAgglomerateElement::CenterPoint(), TPZAgglomerateElement::CreateAgglomerateMesh(), and TPZAgglomerateElement::Print().
|
virtual |
Reimplemented in TPZAgglomerateElement.
Definition at line 727 of file TPZCompElDisc.cpp.
References TPZGeoEl::CenterPoint(), EDiscontinuous, TPZGeoEl::NSides(), PZError, TPZCompEl::Reference(), and Type().
|
overridevirtual |
Returns the unique identifier for reading/writing objects to streams.
returns the unique identifier for reading/writing objects to streams
Reimplemented from TPZInterpolationSpace.
Definition at line 897 of file TPZCompElDisc.cpp.
References TPZInterpolationSpace::ClassId(), and Hash().
Referenced by TPZAgglomerateElement::ClassId(), and VolumeOfEl().
|
inlineoverridevirtual |
Method for creating a copy of the element.
Implements TPZCompEl.
Definition at line 153 of file TPZCompElDisc.h.
References TPZCompElDisc().
Referenced by TPZAgglomerateElement::CreateAgglomerateMesh().
|
inlinevirtual |
Definition at line 157 of file TPZCompElDisc.h.
References TPZCompElDisc().
|
inlineoverridevirtual |
Implements TPZCompEl.
Definition at line 164 of file TPZCompElDisc.h.
References AppendExternalShapeFunctions(), ComputeShape(), Divide(), GetIntegrationRule(), Shape(), ShapeX(), TPZCompElDisc(), and ~TPZCompElDisc().
|
overrideprotectedvirtual |
Compute shape functions based on master element in the classical FEM manner.
Reimplemented from TPZInterpolationSpace.
Definition at line 223 of file TPZCompElDisc.cpp.
References TPZInterpolationSpace::Convert2Axes(), fUseQsiEta, TPZGeoEl::Jacobian(), PZError, TPZCompEl::Reference(), TPZFMatrix< TVar >::Resize(), TPZMatrix< TVar >::Rows(), Shape(), ShapeX(), TPZGeoEl::X(), and TPZFMatrix< TVar >::Zero().
Referenced by ClonePatchEl(), ComputeShape(), ComputeSolution(), and EvaluateSquareResidual2D().
|
overridevirtual |
Compute shape functions based on master element in the classical FEM manne.
[in] | intpoint | point in master element coordinates |
[in] | data | stores all input data |
Reimplemented from TPZInterpolationSpace.
Definition at line 250 of file TPZCompElDisc.cpp.
References TPZMaterialData::axes, ComputeShape(), TPZMaterialData::detjac, TPZMaterialData::dphi, TPZMaterialData::dphix, TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZMaterialData::phi, and TPZMaterialData::x.
|
overridevirtual |
Computes solution and its derivatives in the local coordinate qsi.
qsi | master element coordinate |
sol | finite element solution |
dsol | solution derivatives |
axes | axes associated with the derivative of the solution |
Reimplemented from TPZCompEl.
Definition at line 995 of file TPZCompElDisc.cpp.
References TPZMaterialData::axes, ComputeShape(), TPZGeoEl::Dimension(), TPZMaterialData::dphix, TPZMaterialData::dsol, TPZMaterialData::jacinv, TPZMaterialData::jacobian, NShapeF(), TPZMaterialData::phi, TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), TPZFMatrix< TVar >::Resize(), TPZMaterialData::sol, and TPZMaterialData::x.
Referenced by ComputeSolution(), EvaluateSquareResidual2D(), and VolumeOfEl().
|
overridevirtual |
Compute shape functions based on master element in the classical FEM manne.
[in] | qsi | point in master element coordinates |
[in] | data | stores all input data |
Reimplemented from TPZCompEl.
Definition at line 988 of file TPZCompElDisc.cpp.
References TPZMaterialData::axes, ComputeSolution(), TPZMaterialData::dphix, TPZMaterialData::dsol, TPZMaterialData::phi, and TPZMaterialData::sol.
|
overridevirtual |
Computes solution and its derivatives in local coordinate qsi.
qsi | master element coordinate |
phi | matrix containing shape functions compute in qsi point |
dphix | matrix containing the derivatives of shape functions with respect of global coordinates: D[phi,x], D[phi,y], D[phi,z] |
axes | axes associated with the derivative of the solution |
sol | finite element solution |
dsol | solution derivatives |
Reimplemented from TPZCompEl.
Definition at line 1015 of file TPZCompElDisc.cpp.
References TPZCompMesh::Block(), TPZMatrix< TVar >::Cols(), TPZCompEl::Connect(), TPZVec< T >::Fill(), TPZCompEl::Material(), TPZCompEl::Mesh(), NConnects(), TPZMaterial::NStateVariables(), TPZBlock< TVar >::Position(), TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::resize(), TPZMatrix< TVar >::Rows(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Size(), and TPZCompMesh::Solution().
|
overridevirtual |
Computes solution and its derivatives in the local coordinate qsi.
This method will function for both volumetric and interface elements.
qsi | master element coordinate of the interface element |
normal | unitary normal vector |
leftsol | finite element solution |
dleftsol | solution derivatives |
leftaxes | axes associated with the left solution |
rightsol | finite element solution |
drightsol | solution derivatives |
rightaxes | axes associated with the right solution |
Reimplemented from TPZCompEl.
Definition at line 1054 of file TPZCompElDisc.cpp.
References TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::Resize(), TPZVec< T >::resize(), and TPZFMatrix< TVar >::Zero().
|
overridevirtual |
Returns the connect index from the element.
Implements TPZCompEl.
Definition at line 377 of file TPZCompElDisc.cpp.
References fConnectIndex.
Referenced by BuildCornerConnectList(), BuildTransferMatrix(), TPZAgglomerateElement::CalcStiff(), TPZMHMeshControl::CreateLagrangeMultiplierMesh(), TPZAgglomerateElement::CreateMidSideConnect(), Dimension(), and TPZAgglomerateElement::Print().
|
inline |
It returns the constant that normalizes the bases of the element.
Definition at line 214 of file TPZCompElDisc.h.
References fConstC.
Referenced by TPZAgglomerateElement::Print().
|
inlinestatic |
Creates discontinuous computational element.
Definition at line 431 of file TPZCompElDisc.h.
References TPZGeoEl::NumInterfaces(), TPZGeoEl::Reference(), and TPZCompElDisc().
Referenced by TPZCreateApproximationSpace::SetAllCreateFunctionsDiscontinuous().
|
overridevirtual |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files.
grmesh | graphical mesh where the element will be created |
dimension | target dimension of the graphical element |
Reimplemented from TPZCompEl.
Definition at line 609 of file TPZCompElDisc.cpp.
References TPZMaterial::Id(), TPZCompEl::Material(), TPZGraphMesh::Material_Is_PostProcessed(), NConnects(), TPZGeoEl::NSides(), and TPZCompEl::Reference().
Referenced by VolumeOfEl().
|
private |
Definition at line 1068 of file TPZCompElDisc.cpp.
References TPZGeoEl::CreateSideIntegrationRule(), Degree(), Max(), TPZGeoEl::NSides(), and TPZCompEl::Reference().
Referenced by TPZCompElDisc().
|
protectedvirtual |
It creates new conect that it associates the degrees of freedom of the element and returns its index.
if the CompelDisc has no connect NShapeF() return -1
therefore nshape is initialize to 1
Reimplemented in TPZAgglomerateElement.
Definition at line 385 of file TPZCompElDisc.cpp.
References TPZCompMesh::AllocateNewConnect(), TPZCompMesh::Block(), TPZCompMesh::ConnectVec(), TPZCompMesh::Dimension(), Dimension(), TPZCompElSide::EqualLevelElementList(), fConnectIndex, TPZConnect::IncrementElConnected(), TPZCompEl::Material(), TPZCompEl::Mesh(), TPZVec< T >::NElements(), NShapeF(), TPZGeoEl::NSides(), TPZMaterial::NStateVariables(), PZError, TPZCompEl::Reference(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), SetConnectIndex(), and TPZConnect::SetNShape().
Referenced by TPZCompElDisc().
|
virtual |
Returns the degree of interpolation of the element.
Definition at line 1225 of file TPZCompElDisc.cpp.
References TPZCompEl::Connect(), fConnectIndex, and TPZConnect::Order().
Referenced by AppendExternalShapeFunctions(), BuildTransferMatrix(), TPZAgglomerateElement::CalcStiff(), TPZFlowCompMesh::ComputeTimeStep(), CreateIntegrationRule(), Divide(), TPZAgglomerateElement::InitializeElement(), NConnectShapeF(), NShapeF(), TPZAgglomerateElement::Print(), Print(), TPZAgglomerateElement::ProjectSolution(), SetFalseUseQsiEta(), ShapeX(), TPZCompElDisc(), and TPZNonLinMultGridAnalysis::UniformlyRefineMesh().
|
inlineoverridevirtual |
Returns dimension from the element.
Implements TPZCompEl.
Definition at line 267 of file TPZCompElDisc.h.
References ConnectIndex(), TPZGeoEl::Dimension(), NormalizeConst(), and TPZCompEl::Reference().
Referenced by AppendExternalShapeFunctions(), BuildTransferMatrix(), TPZAgglomerateElement::ComputeNeighbours(), CreateMidSideConnect(), Divide(), EvaluateSquareResidual2D(), NShapeF(), Print(), SetFalseUseQsiEta(), ShapeX(), and SolutionX().
|
overridevirtual |
Divide the computational element.
Reimplemented from TPZCompEl.
Definition at line 507 of file TPZCompElDisc.cpp.
References TPZCompMesh::CreateCompEl(), Degree(), TPZMaterial::Dimension(), Dimension(), TPZGeoEl::Divide(), TPZCompMesh::ElementVec(), TPZCompMesh::ExpandSolution(), fShapefunctionType, TPZInterpolationSpace::InterpolateSolution(), LOGPZ_ERROR, TPZCompEl::Material(), TPZCompEl::Mesh(), TPZVec< T >::NElements(), TPZGeoEl::NSubElements(), TPZGeoMesh::Print(), TPZCompMesh::Print(), PZError, TPZCompEl::Reference(), TPZCompMesh::Reference(), TPZInterpolationSpace::RemoveInterfaces(), TPZGeoEl::ResetReference(), TPZVec< T >::Resize(), TPZCompMesh::SetAllCreateFunctions(), and SetDegree().
Referenced by ClonePatchEl().
|
static |
Compute the integral of the square residual over the element domain.
For instance, let us take the Poisson's equation: -Laplac(u) = f. Then this method compute the integral of ( -Laplac(u) - f )^2. For the given example it is observed that approximation orders < 2 will not work properly since Laplac(u) is always = 0. It works only for elements that lay in the same space dimension of the master element.
Definition at line 1120 of file TPZCompElDisc.cpp.
References TPZMaterialData::axes, TPZIntPoints::Clone(), ComputeShape(), ComputeSolution(), TPZMaterial::ComputeSquareResidual(), DebugStop, TPZMaterialData::detjac, Dimension(), TPZMaterialData::dphix, TPZMaterialData::dsol, fabs, fExternalShape, TPZInterpolationSpace::GetIntegrationRule(), TPZIntPoints::GetMaxOrder(), TPZMaterial::HasForcingFunction(), TPZInterpolationSpace::InitMaterialData(), TPZCompMesh::InsertMaterialObject(), TPZMaterial::IntegrationRuleOrder(), TPZInterpolationSpace::InterpolateSolution(), TPZCompEl::LoadElementReference(), TPZCompMesh::LoadReferences(), TPZCompEl::Material(), TPZInterpolationSpace::MaxOrder(), MaxOrder(), TPZCompEl::Mesh(), TPZCompEl::NConnects(), TPZIntPoints::NPoints(), TPZMaterialData::p, TPZMaterialData::phi, TPZIntPoints::Point(), PZError, TPZCompEl::Reference(), TPZCompMesh::Reference(), SetDegree(), TPZIntPoints::SetOrder(), SetTensorialShapeFull(), TPZMaterialData::sol, TPZCompElDisc(), and TPZMaterialData::x.
Referenced by EvaluateSquareResidual2D(), and PRefine().
|
static |
Evaluates the square residual for every element in mesh.
Definition at line 1188 of file TPZCompElDisc.cpp.
References TPZGeoEl::Dimension(), TPZCompMesh::ElementVec(), EvaluateSquareResidual2D(), TPZVec< T >::Fill(), TPZCompMesh::NElements(), TPZCompEl::Reference(), and TPZVec< T >::Resize().
|
overridevirtual |
Returns a reference to an integration rule suitable for integrating the interior of the element.
Implements TPZInterpolationSpace.
Definition at line 1080 of file TPZCompElDisc.cpp.
References DebugStop, TPZCompEl::fIntegrationRule, and fIntRule.
Referenced by ClonePatchEl(), and TPZCompElDisc().
|
overridevirtual |
Returns a reference to an integration rule suitable for integrating the interior of the element.
Implements TPZInterpolationSpace.
Definition at line 1093 of file TPZCompElDisc.cpp.
References DebugStop, TPZCompEl::fIntegrationRule, and fIntRule.
int TPZCompElDisc::GetMaterial | ( | const TPZGeoElSide & | gside | ) |
bool TPZCompElDisc::HasExternalShapeFunction | ( | ) |
Return whether element has external shape functions set to.
Definition at line 890 of file TPZCompElDisc.cpp.
References fExternalShape.
void TPZCompElDisc::InternalPoint | ( | TPZVec< REAL > & | point | ) |
Returns the center point.
Definition at line 474 of file TPZCompElDisc.cpp.
References fCenterPoint, and TPZVec< T >::Resize().
Referenced by SetFalseUseQsiEta().
|
overridevirtual |
Returns the max order of interpolation.
Reimplemented from TPZInterpolationSpace.
Definition at line 1111 of file TPZCompElDisc.cpp.
References fExternalShape, TPZInterpolationSpace::MaxOrder(), and TPZFunction< TVar >::PolynomialOrder().
Referenced by EvaluateSquareResidual2D(), and SideConnectLocId().
int TPZCompElDisc::MaxOrderExceptExternalShapes | ( | ) |
Returns the max order of interpolation excluding external shape order.
Definition at line 1107 of file TPZCompElDisc.cpp.
References TPZInterpolationSpace::MaxOrder().
Referenced by SideConnectLocId().
|
overridevirtual |
Returns the number of connects.
Implements TPZCompEl.
Definition at line 381 of file TPZCompElDisc.cpp.
References fConnectIndex.
Referenced by TPZAgglomerateElement::CalcStiff(), ComputeSolution(), CreateGraphicalElement(), NSideConnects(), and SetFalseUseQsiEta().
|
overridevirtual |
Returns the number of shapefunctions associated with a connect.
Implements TPZInterpolationSpace.
Definition at line 461 of file TPZCompElDisc.cpp.
References DebugStop, Degree(), NShapeF(), and PZError.
Referenced by SideConnectLocId().
|
inline |
Amount of vertices of the element.
Definition at line 261 of file TPZCompElDisc.h.
References BuildCornerConnectList(), TPZGeoEl::NNodes(), and TPZCompEl::Reference().
|
virtual |
Returns the number of interfaces.
Reimplemented in TPZAgglomerateElement.
Definition at line 658 of file TPZCompElDisc.cpp.
References DebugStop, NSides(), and PZError.
Referenced by SetNInterfaces().
|
virtual |
Calculates the normalizing constant of the bases of the element.
Reimplemented in TPZAgglomerateElement.
Definition at line 200 of file TPZCompElDisc.cpp.
References TPZGeoNode::Coord(), dist(), fCenterPoint, TPZGeoEl::Mesh(), TPZGeoEl::NNodes(), TPZGeoEl::NodeIndex(), TPZGeoMesh::NodeVec(), pow(), TPZCompEl::Reference(), and sqrt.
Referenced by Dimension(), TPZAgglomerateElement::NormalizeConst(), and SetFalseUseQsiEta().
|
overridevirtual |
Returns the shapes number of the element.
Implements TPZInterpolationSpace.
Definition at line 448 of file TPZCompElDisc.cpp.
References Degree(), Dimension(), fConnectIndex, fExternalShape, fShapefunctionType, and TPZFunction< TVar >::NFunctions().
Referenced by BuildTransferMatrix(), TPZAgglomerateElement::CalcStiff(), ComputeSolution(), CreateMidSideConnect(), TPZAgglomerateElement::CreateMidSideConnect(), NConnectShapeF(), TPZAgglomerateElement::ProjectSolution(), SetDegree(), SetExternalShapeFunction(), SideConnectLocId(), and SolutionX().
|
inlineoverridevirtual |
Returns the number of dof nodes along side iside.
Implements TPZInterpolationSpace.
Definition at line 277 of file TPZCompElDisc.h.
References NConnects().
int TPZCompElDisc::NSides | ( | ) |
Definition at line 653 of file TPZCompElDisc.cpp.
References TPZGeoEl::NSides(), and TPZCompEl::Reference().
Referenced by NInterfaces(), SetFalseUseQsiEta(), and VolumeOfEl().
|
inlineoverridevirtual |
Change the preferred order for the element and proceed the adjust of the aproximation space taking in acount the type
of formulation and the neighbours of the element.
Implements TPZInterpolationSpace.
Definition at line 413 of file TPZCompElDisc.h.
References error(), EvaluateSquareResidual2D(), SetDegree(), and verbose.
|
overridevirtual |
Prints the features of the element.
Reimplemented from TPZInterpolationSpace.
Reimplemented in TPZAgglomerateElement.
Definition at line 349 of file TPZCompElDisc.cpp.
References Degree(), Dimension(), fCenterPoint, fConnectIndex, fConstC, fUseQsiEta, TPZGeoEl::Index(), TPZGeoEl::MaterialId(), TPZVec< T >::NElements(), TPZCompEl::Print(), TPZCompEl::Reference(), and TPZGeoEl::X().
Referenced by SetFalseUseQsiEta().
|
overridevirtual |
Read the element data from a stream.
Read the element data from a stream
Reimplemented from TPZInterpolationSpace.
Definition at line 946 of file TPZCompElDisc.cpp.
References TPZGeoEl::CreateSideIntegrationRule(), fCenterPoint, fConnectIndex, fConstC, fIntRule, fShapefunctionType, TPZPersistenceManager::GetInstance(), TPZGeoEl::NSides(), TPZStream::Read(), TPZInterpolationSpace::Read(), and TPZIntPoints::SetOrder().
Referenced by TPZAgglomerateElement::Read(), and VolumeOfEl().
|
inline |
Definition at line 314 of file TPZCompElDisc.h.
References SizeOfElement().
Referenced by TPZAgglomerateElement::CenterPoint(), Hdiv2dPaper201504::CMeshPressure(), hdivCurvedJCompAppMath::CMeshPressure(), Hdiv3dPaper201504::CMeshPressure(), TPZBuildMultiphysicsMesh::UniformRefineCompEl(), and TPZBuildMultiphysicsMesh::UniformRefineCompMesh().
|
inlineoverridevirtual |
Set the index i to node inode.
inode | node to set index |
index | index to be seted |
Implements TPZCompEl.
Definition at line 274 of file TPZCompElDisc.h.
Referenced by CreateMidSideConnect(), and TPZAgglomerateElement::CreateMidSideConnect().
|
inline |
Definition at line 216 of file TPZCompElDisc.h.
Referenced by Hdiv2dPaper201504::CMeshPressure(), hdivCurvedJCompAppMath::CMeshPressure(), Hdiv3dPaper201504::CMeshPressure(), TPZAgglomerateElement::InitializeElement(), TPZBuildMultiphysicsMesh::UniformRefineCompEl(), and TPZBuildMultiphysicsMesh::UniformRefineCompMesh().
|
overridevirtual |
Set create function in TPZCompMesh to create elements of this type.
Reimplemented from TPZCompEl.
Definition at line 1221 of file TPZCompElDisc.cpp.
References TPZCompMesh::SetAllCreateFunctionsDiscontinuous().
Referenced by SetNInterfaces().
|
virtual |
Assigns the degree of the element.
Definition at line 860 of file TPZCompElDisc.cpp.
References TPZCompMesh::Block(), TPZCompMesh::ConnectVec(), degree(), fConnectIndex, TPZInterpolationSpace::fPreferredOrder, TPZCompEl::Material(), TPZCompEl::Mesh(), NShapeF(), TPZMaterial::NStateVariables(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZConnect::SetNShape(), TPZConnect::SetNState(), and TPZConnect::SetOrder().
Referenced by BuildTransferMatrix(), TPZCompMesh::Coarsen(), TPZAgglomerateElement::CreateMidSideConnect(), Divide(), EvaluateSquareResidual2D(), TPZHybridizeHDiv::HybridizeInternalSides(), TPZAgglomerateElement::InitializeElement(), PRefine(), TPZAgglomerateElement::ProjectSolution(), SetFalseUseQsiEta(), SetPreferredOrder(), TPZCompElDisc(), and TPZNonLinMultGridAnalysis::UniformlyRefineMesh().
void TPZCompElDisc::SetExternalShapeFunction | ( | TPZAutoPointer< TPZFunction< STATE > > | externalShapes | ) |
Define external shape functions which are stored in class attribute fExternalShape.
Definition at line 875 of file TPZCompElDisc.cpp.
References TPZCompMesh::Block(), TPZCompMesh::ConnectVec(), fConnectIndex, fExternalShape, TPZCompEl::Material(), TPZCompEl::Mesh(), NShapeF(), TPZMaterial::NStateVariables(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZConnect::SetNShape(), and TPZConnect::SetNState().
Referenced by TPZCompElDisc().
|
inline |
Definition at line 235 of file TPZCompElDisc.h.
References TPZGeoEl::CenterPoint(), DebugStop, Degree(), degree(), Dimension(), InternalPoint(), NConnects(), NormalizeConst(), NSides(), Print(), TPZCompEl::Reference(), SetDegree(), and TPZGeoEl::X().
Referenced by TPZMHMeshControl::CreateLagrangeMultiplierMesh(), and TPZMHMixedMeshControl::CreateRotationMesh().
|
inlinevirtual |
Sets the inner radius value.
Reimplemented in TPZAgglomerateElement.
Definition at line 117 of file TPZCompElDisc.h.
References PZError.
|
inlinevirtual |
Sets element's number of interfaces.
Reimplemented in TPZAgglomerateElement.
Definition at line 121 of file TPZCompElDisc.h.
References NInterfaces(), PZError, SetCreateFunctions(), and TPZCompElDisc().
|
inlinestatic |
Sets the orthogonal function which will be used throughout the program.
orthogonal | pointer to a function which will be used to generate the shape functions |
Definition at line 112 of file TPZCompElDisc.h.
References pzshape::TPZShapeDisc::fOrthogonal.
|
inlineoverridevirtual |
Define the desired order for entire element.
Implements TPZInterpolationSpace.
Definition at line 406 of file TPZCompElDisc.h.
References SetDegree().
|
static |
Sets tensorial shape functions for all Discontinuous elements in cmesh.
Definition at line 77 of file TPZCompElDisc.cpp.
References TPZCompMesh::ElementVec(), TPZCompMesh::NElements(), and SetTensorialShape().
Referenced by Hdiv2dPaper201504::CMeshPressure(), hdivCurvedJCompAppMath::CMeshPressure(), and SetTensorialShape().
void TPZCompElDisc::SetTensorialShape | ( | ) |
Set tensorial shape functions.
Definition at line 57 of file TPZCompElDisc.cpp.
References pzshape::TPZShapeDisc::ETensorial.
void TPZCompElDisc::SetTensorialShapeFull | ( | ) |
Set tensorial shape functions with many derivatives.
Available only for 2D shape functions.
Definition at line 67 of file TPZCompElDisc.cpp.
References pzshape::TPZShapeDisc::ETensorialFull.
Referenced by EvaluateSquareResidual2D().
|
static |
Set total order shape functions for all Discontinuous elements in cmesh.
Definition at line 89 of file TPZCompElDisc.cpp.
References TPZCompMesh::ElementVec(), TPZCompMesh::NElements(), and SetTotalOrderShape().
Referenced by Hdiv2dPaper201504::CMeshPressure(), hdivCurvedJCompAppMath::CMeshPressure(), TPZMHMeshControl::CreateLagrangeMultiplierMesh(), TPZMHMixedMeshControl::CreateRotationMesh(), and SetTotalOrderShape().
void TPZCompElDisc::SetTotalOrderShape | ( | ) |
Set total order shape functions.
Definition at line 62 of file TPZCompElDisc.cpp.
References pzshape::TPZShapeDisc::EOrdemTotal.
Referenced by TPZMHMeshControl::CreateLagrangeMultiplierMesh().
void TPZCompElDisc::SetTotalOrderShapeFull | ( | ) |
Set total order shape functions.
Available only for 2D shape functions.
Definition at line 72 of file TPZCompElDisc.cpp.
References pzshape::TPZShapeDisc::EOrdemTotalFull.
|
inline |
Definition at line 218 of file TPZCompElDisc.h.
References TPZGeoEl::CenterPoint(), DebugStop, TPZGeoEl::Dimension(), TPZVec< T >::Fill(), TPZGeoEl::NSides(), TPZCompEl::Reference(), and TPZVec< T >::resize().
Referenced by Hdiv2dPaper201504::CMeshPressure(), hdivCurvedJCompAppMath::CMeshPressure(), Hdiv3dPaper201504::CMeshPressure(), TPZHybridizeHDiv::HybridizeInternalSides(), TPZCompElDisc(), TPZBuildMultiphysicsMesh::UniformRefineCompEl(), and TPZBuildMultiphysicsMesh::UniformRefineCompMesh().
|
overridevirtual |
Computes the shape function set at the point x. This method uses the order of interpolation of the element along the sides to compute the number of shapefunctions.
qsi | point in master element coordinates |
phi | vector of values of shapefunctions, dimension (numshape,1) |
dphi | matrix of derivatives of shapefunctions, dimension (dim,numshape) |
Implements TPZInterpolationSpace.
Definition at line 255 of file TPZCompElDisc.cpp.
References fUseQsiEta, TPZCompEl::Reference(), ShapeX(), and TPZGeoEl::X().
Referenced by BuildTransferMatrix(), ClonePatchEl(), and ComputeShape().
|
virtual |
Definition at line 267 of file TPZCompElDisc.cpp.
References AppendExternalShapeFunctions(), Degree(), Dimension(), fCenterPoint, fConstC, fShapefunctionType, and Shape().
Referenced by TPZAgglomerateElement::CalcStiff(), ClonePatchEl(), ComputeShape(), TPZAgglomerateElement::ProjectSolution(), Shape(), and SolutionX().
|
inlineoverridevirtual |
Returns the local node number of icon along is.
icon | connect number along side is |
is | side which is being queried |
Implements TPZInterpolationSpace.
Definition at line 287 of file TPZCompElDisc.h.
References DebugStop, MaxOrder(), MaxOrderExceptExternalShapes(), NConnectShapeF(), and NShapeF().
REAL TPZCompElDisc::SizeOfElement | ( | ) |
Definition at line 482 of file TPZCompElDisc.cpp.
References TPZGeoNode::Coord(), TPZGeoEl::Dimension(), TPZGeoEl::Distance(), TPZCompEl::Mesh(), TPZGeoEl::NodeIndex(), TPZGeoMesh::NodeVec(), TPZGeoEl::NSides(), PZError, TPZCompEl::Reference(), TPZCompMesh::Reference(), and TPZGeoEl::SideArea().
Referenced by SetCenterPoint().
Computes the solution in function of a point in cartesian space.
Deprecated shape function method. It is kept because of TPZAgglomerateElement.
It does not include singular shape functions if they exist.
Definition at line 588 of file TPZCompElDisc.cpp.
References TPZCompMesh::Block(), TPZCompEl::Connect(), Dimension(), TPZVec< T >::Fill(), TPZCompEl::Material(), TPZCompEl::Mesh(), NShapeF(), TPZMaterial::NStateVariables(), TPZBlock< TVar >::Position(), TPZConnect::SequenceNumber(), ShapeX(), TPZBlock< TVar >::Size(), and TPZCompMesh::Solution().
Referenced by TPZAgglomerateElement::ProjectSolution(), and VolumeOfEl().
|
inlineoverridevirtual |
Type of the element.
Reimplemented from TPZCompEl.
Reimplemented in TPZAgglomerateElement.
Definition at line 211 of file TPZCompElDisc.h.
References EDiscontinuous.
Referenced by TPZCompMesh::BuildTransferMatrixDesc(), CenterPoint(), and TPZAgglomerateElement::ListOfDiscEl().
|
inlineoverridevirtual |
Returns the volume of the geometric element associated.
Reimplemented from TPZCompEl.
Reimplemented in TPZAgglomerateElement.
Definition at line 319 of file TPZCompElDisc.h.
References AccumulateIntegrationRule(), AccumulateVertices(), BuildTransferMatrix(), ClassId(), ComputeSolution(), CreateGraphicalElement(), dimension, NSides(), Read(), TPZCompEl::Reference(), SolutionX(), TPZGeoEl::Volume(), and Write().
Referenced by TPZAgglomerateElement::CenterPoint(), and TPZAgglomerateElement::InnerRadius().
|
overridevirtual |
Save the element data to a stream.
Save the element data to a stream
Reimplemented from TPZInterpolationSpace.
Definition at line 909 of file TPZCompElDisc.cpp.
References fCenterPoint, fConnectIndex, fConstC, fExternalShape, fIntRule, fShapefunctionType, TPZIntPoints::GetOrder(), TPZMaterial::Id(), TPZCompEl::Material(), TPZCompEl::Reference(), TPZStream::Write(), TPZFunction< TVar >::Write(), TPZInterpolationSpace::Write(), and TPZPersistenceManager::WritePointer().
Referenced by VolumeOfEl(), and TPZAgglomerateElement::Write().
|
protected |
It keeps the interior point coordinations of the element.
Definition at line 87 of file TPZCompElDisc.h.
Referenced by TPZAgglomerateElement::CenterPoint(), InternalPoint(), NormalizeConst(), Print(), Read(), ShapeX(), and Write().
|
protected |
It preserves index of connect associated to the element.
Definition at line 73 of file TPZCompElDisc.h.
Referenced by ConnectIndex(), CreateMidSideConnect(), Degree(), NConnects(), NShapeF(), Print(), Read(), SetDegree(), SetExternalShapeFunction(), and Write().
|
protected |
Normalizing constant for shape functions.
Definition at line 76 of file TPZCompElDisc.h.
Referenced by ConstC(), Print(), Read(), ShapeX(), TPZCompElDisc(), and Write().
|
protected |
A pz function to allow the inclusion of extra shape functions which are defined externally.
Definition at line 82 of file TPZCompElDisc.h.
Referenced by AppendExternalShapeFunctions(), EvaluateSquareResidual2D(), HasExternalShapeFunction(), MaxOrder(), NShapeF(), SetExternalShapeFunction(), TPZCompElDisc(), and Write().
|
protected |
Definition at line 43 of file TPZCompElDisc.h.
Referenced by GetIntegrationRule(), Read(), TPZCompElDisc(), and Write().
|
protected |
Shape function type used by the element.
Definition at line 46 of file TPZCompElDisc.h.
Referenced by AppendExternalShapeFunctions(), Divide(), NShapeF(), Read(), ShapeX(), TPZCompElDisc(), and Write().
|
protected |
Variable to choose the qsi point or the X point in the calculus of the phis and dphis.
Definition at line 79 of file TPZCompElDisc.h.
Referenced by ComputeShape(), Print(), Shape(), and TPZCompElDisc().