NeoPZ
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | List of all members

Implements a group of computational elements as a mesh and an element. Computational Mesh. More...

#include <pzsubcmesh.h>

Inheritance diagram for TPZSubCompMesh:
[legend]
Collaboration diagram for TPZSubCompMesh:
[legend]

Public Member Functions

 TPZSubCompMesh (TPZCompMesh &mesh, int64_t &index)
 Constructor. More...
 
 TPZSubCompMesh ()
 Default constructor. More...
 
virtual ~TPZSubCompMesh ()
 Destructor. More...
 
virtual int NConnectShapeF (int inod, int order)
 
virtual TPZCompElClone (TPZCompMesh &mesh) const override
 Method for creating a copy of the element. More...
 
virtual TPZCompElClonePatchEl (TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const override
 Method for creating a copy of the element in a patch mesh. More...
 
void SetAnalysisFrontal (int numThreads, TPZAutoPointer< TPZGuiInterface > guiInterface)
 Sets the analysis type. More...
 
void SetAnalysisSkyline (int numThreads, int preconditioned, TPZAutoPointer< TPZGuiInterface > guiInterface)
 Condense the internal equations using a skyline symetric matrix the preconditioned argument indicates whether the equations are condensed with a direct method (0) or with a GMRes solver preconditioned by the decomposed matrix. More...
 
void SetAnalysisSkyline (int numThreads, int preconditioned, TPZAutoPointer< TPZRenumbering > renumber)
 Condense the internal equations using a skyline symetric matrix the preconditioned argument indicates whether the equations are condensed with a direct method (0) or with a GMRes solver preconditioned by the decomposed matrix. More...
 
TPZAutoPointer< TPZAnalysisAnalysis ()
 
virtual void LoadElementReference () override
 This method will load the elements of the mesh in their corresponding geometric elements. More...
 
virtual REAL CompareElement (int var, char *matname) override
 This method will initiate the comparison between the current computational mesh and the mesh which is referenced by the geometric mesh. More...
 
int IsAllowedElement (TPZCompMesh *mesh, int64_t elindex)
 Verifies the transfer possibility of the connection elindex from the mesh to the current submesh. More...
 
int64_t NumInternalEquations ()
 Computes the number of internal equations. More...
 
virtual void SkylineInternal (TPZVec< int64_t > &skyline)
 This method computes the skyline of the system of equations. More...
 
void PotentialInternal (std::list< int64_t > &connectindices) const
 Puts the nodes which can be transferred in an ordered list. More...
 
void MakeExternal (int64_t local)
 Changes an local internal connection to a external connection in the father mesh. More...
 
void PermuteExternalConnects ()
 Optimizes the connections positions on block. More...
 
void ComputePermutationInternalFirst (TPZVec< int64_t > &permute) const
 Computes the permutation vector which puts the internal connects to the first on the list
Respect the previous order of the connects. More...
 
void PermuteInternalFirst (TPZVec< int64_t > &permute)
 Permutes the potentially internal connects to the first on the list
Respect the previous order of the connects. More...
 
virtual void Print (std::ostream &out=std::cout) const override
 Prints the submesh information on the specified device/file out. More...
 
bool NeedsComputing (const std::set< int > &matids) override
 Verifies if any element needs to be computed corresponding to the material ids. More...
 
virtual int64_t AllocateNewConnect (int nshape, int nstate, int order) override
 Virtual Method to allocate new connect. More...
 
virtual int64_t AllocateNewConnect (const TPZConnect &connect) override
 Virtual Method to allocate new connect. More...
 
int64_t NodeIndex (int64_t nolocal, TPZCompMesh *super)
 Gives the id node of one local node in containing mesh. More...
 
int64_t InternalIndex (int64_t IndexinFather)
 return the index in the subcompmesh of a connect with index within the father More...
 
virtual int Dimension () const override
 Virtual Method! See declaration in TPZCompEl class. More...
 
virtual void ComputeNodElCon () override
 Computes the number of elements connected to each connect object. More...
 
virtual void ComputeNodElCon (TPZVec< int > &nelconnected) const override
 Computes the number of elements connected to each connect object. More...
 
virtual int ClassId () const override
 Returns the unique identifier for reading/writing objects to streams. More...
 
virtual void Write (TPZStream &buf, int withclassid) const override
 Saves the element data to a stream. More...
 
virtual void Read (TPZStream &buf, void *context) override
 Reads the element data from a stream. More...
 
bool VerifyDatastructureConsistency ()
 Method to verify that the datastructures are consistent. More...
 
void AddLagrangeDOF (int64_t connectindex, int idf)
 Set the connect/degree of freedom as Lagrange variable. More...
 
void SetNumberRigidBodyModes (int nrigid, unsigned char lagrange=0)
 Set the number of rigid body modes associated with the internal degrees of freedom. More...
 
int NumberRigidBodyModes ()
 Return the number of rigid body modes associated with the internal degrees of freedom. More...
 
virtual bool HasMaterial (const std::set< int > &materialids) const override
 Verifies if the material associated with the element is contained in the set. More...
 
Mesh

Virtual methods derived from TPZCompMesh

virtual int64_t TransferElement (TPZCompMesh *mesh, int64_t elindex) override
 Transfer the element elindex belonging to mesh to the current mesh and returns its index. More...
 
virtual void MakeAllInternal () override
 Makes all mesh connections internal mesh connections. More...
 
virtual TPZCompMeshRootMesh (int64_t local) override
 Returns the rootmesh who have the specified connection. More...
 
virtual void MakeInternal (int64_t local) override
 Makes a specified connection a internal mesh connection. More...
 
virtual int64_t PutinSuperMesh (int64_t local, TPZCompMesh *super) override
 Puts an local connection in the supermesh - Supermesh is one mesh who contains the analised submesh. More...
 
virtual int64_t GetFromSuperMesh (int64_t superind, TPZCompMesh *super) override
 Gets an external connection from the supermesh - Supermesh is one mesh who contains the analised submesh. More...
 
virtual TPZCompMeshCommonMesh (TPZCompMesh *mesh) override
 Gives the commom father mesh of the specified mesh and the current submesh. More...
 
virtual TPZCompMeshFatherMesh () const override
 Returns the current submesh father mesh. More...
 
Element

Virtual methods derived from TPZCompEl

virtual void SetConnectIndex (int inode, int64_t index) override
 Changes the current node index -inode- to the specified node- index. More...
 
virtual void Assemble () override
 Assemble the stiffness matrix in locally kept datastructure. More...
 
virtual void CalcStiff (TPZElementMatrix &ek, TPZElementMatrix &ef) override
 Calculates the submesh stiffness matrix. More...
 
void InitializeEF (TPZElementMatrix &ef)
 Initialize the datastructure of ef. More...
 
virtual void CalcResidual (TPZElementMatrix &ef) override
 Computes the element right hand side. More...
 
virtual void CreateGraphicalElement (TPZGraphMesh &graphmesh, int dimension) override
 Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files. More...
 
virtual int64_t ConnectIndex (int i) const override
 Returns the connection index i. More...
 
virtual int NConnects () const override
 Returns the number of connections. More...
 
virtual void BuildCornerConnectList (std::set< int64_t > &connectindexes) const override
 adds the connect indexes associated with base shape functions to the set More...
 
virtual void LoadSolution () override
 Load the father mesh solution to all submesh connects - (internal and external). More...
 
virtual void TransferMultiphysicsElementSolution () override
 Transfer multiphysics solution. More...
 
virtual TPZVec< STATE > IntegrateSolution (const std::string &varname, const std::set< int > &matids) override
 Compute the integral of a variable defined by the string if the material id is included in matids. 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. SHOULD NEVER BE CALLED. 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 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 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...
 
- Public Member Functions inherited from TPZCompMesh
 TPZCompMesh (TPZGeoMesh *gr=0)
 Constructor from geometrical mesh. More...
 
 TPZCompMesh (TPZAutoPointer< TPZGeoMesh > &gmesh)
 Constructor based on an autopointer to a geometric mesh. More...
 
 TPZCompMesh (const TPZCompMesh &copy)
 Copy constructor. More...
 
TPZCompMeshoperator= (const TPZCompMesh &copy)
 copy the content of the mesh More...
 
virtual ~TPZCompMesh ()
 Simple Destructor. More...
 
virtual REAL CompareMesh (int var, char *matname)
 This method will initiate the comparison between the current computational mesh and the mesh which is referenced by the geometric mesh. More...
 
void GetRefPatches (std::set< TPZGeoEl *> &grpatch)
 Gives all patches of the mesh. More...
 
void GetNodeToElGraph (TPZVec< int64_t > &nodtoelgraph, TPZVec< int64_t > &nodtoelgraphinde, TPZStack< int64_t > &elgraph, TPZVec< int64_t > &elgraphindexx)
 Gives the conects graphs. More...
 
void GetElementPatch (TPZVec< int64_t > nodtoelgraph, TPZVec< int64_t > nodtoelgraphindex, TPZStack< int64_t > &elgraph, TPZVec< int64_t > &elgraphindex, int64_t elind, TPZStack< int64_t > &patch)
 Gives the element patch. More...
 
void SetName (const std::string &nm)
 Set the mesh name. More...
 
void SetDimModel (int dim)
 Set de dimension of the domain of the problem. More...
 
void SetReference (TPZGeoMesh *gmesh)
 Sets the geometric reference mesh. More...
 
void SetReference (TPZAutoPointer< TPZGeoMesh > &gmesh)
 Sets the geometric reference mesh. More...
 
int Dimension () const
 Returns the dimension of the simulation. More...
 
std::string & Name ()
 Returns the mesh name. More...
 
void CleanUp ()
 Delete all the dynamically allocated data structures. More...
 
TPZMaterialFindMaterial (int id)
 Find the material with identity id. More...
 
void LoadReferences ()
 Map this grid in the geometric grid. More...
 
virtual void CleanUpUnconnectedNodes ()
 Delete the nodes which have no elements connected to them. More...
 
void ComputeElGraph (TPZStack< int64_t > &elgraph, TPZVec< int64_t > &elgraphindex)
 Computes the connectivity graph of the elements, as appropriate for the TPZRenumbering class. More...
 
void ComputeElGraph (TPZStack< int64_t > &elgraph, TPZVec< int64_t > &elgraphindex, std::set< int > &mat_ids)
 Computes the connectivity graph of the elements, as appropriate for the TPZRenumbering class. More...
 
int GetDefaultOrder ()
 
void SetDefaultOrder (int order)
 
TPZCompMeshClone () const
 Clone this mesh. More...
 
void CopyMaterials (TPZCompMesh &mesh) const
 Copies the materials of this mesh to the given mesh. More...
 
REAL DeltaX ()
 
REAL MaximumRadiusOfMesh ()
 
REAL LesserEdgeOfMesh ()
 
TPZCompMeshComputeMesh (TPZVec< int64_t > &accumlist, int64_t numaggl)
 Creates a mesh inserting into accumlist the element list to more refined mesh. More...
 
void ComputeFillIn (int64_t resolution, TPZFMatrix< REAL > &fillin)
 This method will fill the matrix passed as parameter with a representation of the fillin of the global stiffness matrix, based on the sequence number of the connects. More...
 
int64_t NConnects () const
 Number of connects allocated including free nodes. More...
 
int64_t NIndependentConnects ()
 Number of independent connect objects. More...
 
int64_t NElements () const
 Number of computational elements allocated. More...
 
size_t NMaterials () const
 Number of materials. More...
 
TPZAdmChunkVector< TPZCompEl * > & ElementVec ()
 Returns a reference to the element pointers vector. More...
 
TPZCompElElement (int64_t iel)
 
const TPZCompElElement (int64_t iel) const
 
const TPZAdmChunkVector< TPZCompEl * > & ElementVec () const
 Returns a reference to the element pointers vector. More...
 
TPZAdmChunkVector< TPZConnect > & ConnectVec ()
 Return a reference to the connect pointers vector. More...
 
const TPZAdmChunkVector< TPZConnect > & ConnectVec () const
 
std::map< int,TPZMaterial *> & MaterialVec ()
 Returns a reference to the material pointers vector. More...
 
std::map< int,TPZMaterial *> MaterialVec () const
 Returns a reference to the material pointers vector. More...
 
TPZGeoMeshReference () const
 Returns a pointer to the geometrical mesh associated. More...
 
const TPZBlock< STATE > & Block () const
 Access the block structure of the solution vector. More...
 
TPZBlock< STATE > & Block ()
 Access the block structure of the solution vector. More...
 
TPZFMatrix< STATE > & Solution ()
 Access the solution vector. More...
 
TPZFMatrix< STATE > & SolutionN ()
 Access the previous solution vector. More...
 
TPZFMatrix< STATE > & ElementSolution ()
 Access method for the element solution vectors. More...
 
int InsertMaterialObject (TPZMaterial *mat)
 Insert a material object in the datastructure. More...
 
void InitializeBlock ()
 Resequence the block object, remove unconnected connect objects and reset the dimension of the solution vector. More...
 
virtual void ExpandSolution ()
 Adapt the solution vector to new block dimensions. More...
 
void SetElementSolution (int64_t i, TPZVec< STATE > &sol)
 Set a ith element solution, expanding the element-solution matrix if necessary. More...
 
void ConnectSolution (std::ostream &out)
 Print the solution by connect index. More...
 
int64_t NEquations ()
 This computes the number of equations associated with non-restrained nodes. More...
 
int BandWidth ()
 This method computes the bandwidth of the system of equations. More...
 
virtual void Skyline (TPZVec< int64_t > &skyline)
 This method computes the skyline of the system of equations. More...
 
void AssembleError (TPZFMatrix< REAL > &estimator, int errorid)
 Assemble the vector with errors estimators. More...
 
void BuildTransferMatrix (TPZCompMesh &coarsemesh, TPZTransfer< STATE > &transfer)
 Builds the transfer matrix from the current grid to the coarse grid. More...
 
void BuildTransferMatrixDesc (TPZCompMesh &transfermesh, TPZTransfer< STATE > &transfer)
 To discontinuous elements. More...
 
void ProjectSolution (TPZFMatrix< STATE > &projectsol)
 
void SetNMeshes (int64_t nmeshes)
 
int64_t GetNMeshes ()
 
TPZCompElCreateCompEl (TPZGeoEl *gel, int64_t &index)
 Create a computational element based on the geometric element. More...
 
virtual void AutoBuild (const std::set< int > &MaterialIDs)
 Creates the computational elements, and the degree of freedom nodes. More...
 
virtual void AutoBuild ()
 Creates the computational elements, and the degree of freedom nodes. More...
 
void AutoBuild (const TPZVec< int64_t > &gelindexes)
 build the computational elements for the geometric element indexes More...
 
virtual void AutoBuildContDisc (const TPZVec< TPZGeoEl *> &continuous, const TPZVec< TPZGeoEl *> &discontinuous)
 Creates the computational elements, and the degree of freedom nodes. More...
 
TPZCreateApproximationSpaceApproxSpace ()
 
void SetAllCreateFunctionsDiscontinuous ()
 
void SetAllCreateFunctionsContinuous ()
 
void SetAllCreateFunctionsDiscontinuousReferred ()
 
void SetAllCreateFunctionsContinuousReferred ()
 
void SetAllCreateFunctionsHDiv ()
 
void SetAllCreateFunctionsHDivPressure ()
 
void SetAllCreateFunctions (TPZCompEl &cel)
 
void SetAllCreateFunctionsMultiphysicElem ()
 
void SetAllCreateFunctionsMultiphysicElemWithMem ()
 
void SetAllCreateFunctionsContinuousWithMem ()
 
int Consolidate ()
 Will build the list of element boundary conditions build the list of connect boundary conditions. More...
 
int Check ()
 
void LoadSolution (const TPZFMatrix< STATE > &sol)
 Given the solution of the global system of equations, computes and stores the solution for the restricted nodes. More...
 
void UpdatePreviousState (STATE mult=1.0)
 
void TransferMultiphysicsSolution ()
 Transfer multiphysics mesh solution. More...
 
void Divide (int64_t index, TPZVec< int64_t > &subindex, int interpolate=0)
 Divide the element corresponding to index. More...
 
void Coarsen (TPZVec< int64_t > &elements, int64_t &index, bool CreateDiscontinuous=false)
 Create a computational element father for the comp. elem. into elements. More...
 
void RemakeAllInterfaceElements ()
 Deletes all interfaces and rebuild them all. More...
 
void AdjustBoundaryElements ()
 Will refine the elements associated with a boundary condition till there are no elements constrained by boundary condition elements. More...
 
void Permute (TPZVec< int64_t > &permute)
 Permute the sequence number of the connect objects It is a permute gather operation. More...
 
void SaddlePermute ()
 Put the sequence number of the pressure connects after the seq number of the flux connects. More...
 
void SaddlePermute2 ()
 
TPZVec< STATE > Integrate (const std::string &varname, const std::set< int > &matids)
 Integrate the variable name over the mesh. More...
 
void EvaluateError (std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)> fp, bool store_error, TPZVec< REAL > &errorSum)
 Evaluates the error given the two vectors of the analised parameters. More...
 
void ConvertDiscontinuous2Continuous (REAL eps, int opt, int dim, TPZVec< STATE > &celJumps)
 This method compute the jump solution of interface and convert discontinuous elements with jump less than eps in continuous elements. More...
 
void Discontinuous2Continuous (int64_t disc_index, int64_t &new_index)
 This method convert a discontinuous element with index disc_index in continuous element. 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
 
- Public Member Functions inherited from TPZCompEl
 TPZCompEl ()
 Simple Constructor. More...
 
virtual ~TPZCompEl ()
 Simple destructor. More...
 
 TPZCompEl (TPZCompMesh &mesh, const TPZCompEl &copy)
 Put a copy of the element in the referred mesh. More...
 
 TPZCompEl (TPZCompMesh &mesh, const TPZCompEl &copy, std::map< int64_t, int64_t > &gl2lcElMap)
 Put a copy of the element in the patch mesh. More...
 
 TPZCompEl (TPZCompMesh &mesh, const TPZCompEl &copy, 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 SetCreateFunctions (TPZCompMesh *mesh)
 Sets create function in TPZCompMesh to create elements of this type. More...
 
virtual REAL VolumeOfEl ()
 Returns the volume of the geometric element associated. More...
 
virtual void Divide (int64_t index, TPZVec< int64_t > &subindex, int interpolate=0)
 Divide the computational element. If interpolate = 1, the solution is interpolated to the sub elements. More...
 
virtual void ProjectFlux (TPZElementMatrix &ek, TPZElementMatrix &ef)
 Projects the flux function on the finite element space. More...
 
virtual void ComputeError (int errorid, TPZVec< REAL > &error)
 ComputeError computes the element error estimator. More...
 
virtual void Integrate (int variable, TPZVec< STATE > &value)
 Integrates a variable over the element. 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 SetMultiphysicsElementSolution ()
 
virtual void AddShapeRestraint (TPZOneShapeRestraint restraint)
 Add a shape restraint (meant to fit the pyramid to restraint. More...
 
virtual std::list< TPZOneShapeRestraintGetShapeRestraints () const
 Return a list with the shape restraints. More...
 
virtual void ResetShapeRestraints ()
 Return a list with the shape restraints. More...
 
virtual void Solution (TPZVec< REAL > &qsi, int var, TPZVec< STATE > &sol)
 Calculates the solution - sol - for the variable var at point qsi, where qsi is expressed in terms of the master element coordinates. More...
 
virtual TPZVec< STATE > IntegrateSolution (int var) const
 Compute the integral of a variable. More...
 
virtual void ComputeSolution (TPZVec< REAL > &qsi, TPZMaterialData &data)
 
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 int ComputeIntegrationOrder () const
 
virtual void SetIntegrationRule (TPZIntPoints *intrule)
 Method to set a dynamically allocated integration rule. More...
 
virtual void SetIntegrationRule (int order)
 
virtual const TPZIntPointsGetIntegrationRule () const
 
virtual MElementType Type ()
 Return the type of the element. More...
 
virtual int IsInterface ()
 
TPZGeoElReference () const
 Return a pointer to the corresponding geometric element if such exists, return 0 otherwise. More...
 
void SetReference (int64_t referenceindex)
 
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 TPZConnectConnect (int i) const
 Returns a pointer to the ith node. More...
 
virtual TPZMaterialMaterial () const
 Identify the material object associated with the element. More...
 
TPZGeoElGetRefElPatch ()
 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...
 
void SetMesh (TPZCompMesh *mesh)
 Sets the grid of the element. More...
 
TPZCompMeshMesh () 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...
 

Static Public Member Functions

static int main ()
 Static function for validation tests. 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 TPZSavableCreateInstance (const int &classId)
 
- 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...
 

Protected Attributes

TPZAutoPointer< TPZAnalysisfAnalysis
 Pointer to submesh analysis object. Defines the resolution type. More...
 
TPZManVector< int64_t > fConnectIndex
 Pointer to external location index of the connection. More...
 
TPZManVector< int64_t > fExternalLocIndex
 Indexes of the external connections. More...
 
std::map< int64_t, int64_t > fFatherToLocal
 Maps indicating the correspondence between the connect index of the father mesh and de local connect id. More...
 
int64_t fSingularConnect
 Number of rigid body modes expected by the internal matrix inversion. More...
 
std::list< std::pair< int64_t, int > > fLagrangeEquations
 List of connect/degree of freedom which are used as Lagrange multipliers. More...
 
- Protected Attributes inherited from TPZCompMesh
TPZGeoMeshfReference
 Geometric grid to which this grid refers. More...
 
TPZAutoPointer< TPZGeoMeshfGMesh
 Autopointer to the geometric mesh used in case the user has passed an autopointer. More...
 
std::string fName
 Grid name for model identification. More...
 
TPZAdmChunkVector< TPZCompEl * > fElementVec
 List of pointers to elements. More...
 
TPZAdmChunkVector< TPZConnectfConnectVec
 List of pointers to nodes. More...
 
std::map< int, TPZMaterial *> fMaterialVec
 Map of pointers to materials. More...
 
TPZBlock< STATE > fSolutionBlock
 Block structure of the solution vector ???? More...
 
TPZFMatrix< STATE > fSolution
 Solution vector. More...
 
TPZFMatrix< STATE > fSolN
 Solution at previous state. More...
 
TPZBlock< STATE > fBlock
 Block structure to right construction of the stiffness matrix and load vector. More...
 
TPZFMatrix< STATE > fElementSolution
 Solution vectors organized by element. More...
 
int fDimModel
 
int fDefaultOrder
 Default order for all elements of this mesh. More...
 
TPZCreateApproximationSpace fCreate
 The object which defines the type of space being created. More...
 
int64_t fNmeshes
 
- Protected Attributes inherited from TPZCompEl
TPZCompMeshfMesh
 Computational mesh to which the element belongs. More...
 
int64_t fIndex
 Element index into mesh element vector. More...
 
TPZIntPointsfIntegrationRule
 Integration rule established by the user. More...
 

Private Member Functions

int64_t TransferElementTo (TPZCompMesh *mesh, int64_t elindex) override
 Transfers one element from a submesh to another mesh. More...
 
int64_t TransferElementFrom (TPZCompMesh *mesh, int64_t elindex) override
 Transfers one element from a specified mesh to the current submesh. More...
 
void MakeInternalFast (int64_t local)
 Marks the connect to be local. More...
 
void TransferDependencies (int64_t local)
 Transfer the dependency list of a connect. This will make the dependency disappear for the corresponding father mesh. More...
 

Additional Inherited Members

- Protected Member Functions inherited from TPZCompMesh
void ModifyPermute (TPZVec< int64_t > &permute, int64_t lagrangeq, int64_t maxeq)
 Modify the permute vector swapping the lagrangeq with maxeq and shifting the intermediate equations. More...
 

Detailed Description

Implements a group of computational elements as a mesh and an element. Computational Mesh.

Class TPZSubCompMesh is derived from Computacional mesh and computacional element classes.

Definition at line 36 of file pzsubcmesh.h.

Constructor & Destructor Documentation

◆ TPZSubCompMesh() [1/2]

TPZSubCompMesh::TPZSubCompMesh ( TPZCompMesh mesh,
int64_t &  index 
)

Constructor.

Parameters
meshreference mesh
indexreference mesh element index to transfer to submesh

Definition at line 182 of file pzsubcmesh.cpp.

References TPZCompMesh::Dimension(), fAnalysis, and TPZCompMesh::SetDimModel().

◆ TPZSubCompMesh() [2/2]

TPZSubCompMesh::TPZSubCompMesh ( )

Default constructor.

Definition at line 189 of file pzsubcmesh.cpp.

References fAnalysis.

Referenced by main().

◆ ~TPZSubCompMesh()

TPZSubCompMesh::~TPZSubCompMesh ( )
virtual

Member Function Documentation

◆ AddLagrangeDOF()

void TPZSubCompMesh::AddLagrangeDOF ( int64_t  connectindex,
int  idf 
)
inline

Set the connect/degree of freedom as Lagrange variable.

Definition at line 388 of file pzsubcmesh.h.

References HasMaterial(), main(), NumberRigidBodyModes(), and SetNumberRigidBodyModes().

◆ AllocateNewConnect() [1/2]

int64_t TPZSubCompMesh::AllocateNewConnect ( int  nshape,
int  nstate,
int  order 
)
overridevirtual

◆ AllocateNewConnect() [2/2]

int64_t TPZSubCompMesh::AllocateNewConnect ( const TPZConnect connect)
overridevirtual

◆ Analysis()

TPZAutoPointer<TPZAnalysis> TPZSubCompMesh::Analysis ( )
inline

◆ Assemble()

void TPZSubCompMesh::Assemble ( )
overridevirtual

◆ BuildCornerConnectList()

void TPZSubCompMesh::BuildCornerConnectList ( std::set< int64_t > &  connectindexes) const
overridevirtual

adds the connect indexes associated with base shape functions to the set

Reimplemented from TPZCompMesh.

Definition at line 2124 of file pzsubcmesh.cpp.

References TPZCompEl::BuildCornerConnectList(), TPZCompMesh::ElementVec(), fConnectIndex, fExternalLocIndex, and TPZCompMesh::NElements().

Referenced by Analysis().

◆ CalcResidual()

void TPZSubCompMesh::CalcResidual ( TPZElementMatrix ef)
overridevirtual

Computes the element right hand side.

Parameters
efelement load vector(s)

Reimplemented from TPZCompEl.

Definition at line 1308 of file pzsubcmesh.cpp.

References TPZAnalysis::AssembleResidual(), DebugStop, fAnalysis, TPZElementMatrix::fMat, InitializeEF(), and TPZSubMeshAnalysis::ReducedRightHandSide().

Referenced by Analysis().

◆ CalcStiff()

void TPZSubCompMesh::CalcStiff ( TPZElementMatrix ek,
TPZElementMatrix ef 
)
overridevirtual

Calculates the submesh stiffness matrix.

Reimplemented from TPZCompEl.

Definition at line 1073 of file pzsubcmesh.cpp.

References TPZAnalysis::AmIKilled(), TPZCompMesh::Block(), TPZCompMesh::CleanUpUnconnectedNodes(), TPZSubMeshFrontalAnalysis::CondensedSolution(), TPZSubMeshAnalysis::CondensedSolution(), TPZCompEl::Connect(), ConnectIndex(), TPZCompMesh::ConnectVec(), TPZStructMatrixOR::CreateAssemble(), DebugStop, TPZElementMatrix::EF, TPZElementMatrix::EK, fAnalysis, TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, fConnectIndex, TPZCompMesh::fConnectVec, fExternalLocIndex, fFatherToLocal, TPZElementMatrix::fMat, TPZElementMatrix::fMesh, TPZElementMatrix::fType, TPZAbstractFrontMatrix< TVar >::GetFront(), TPZConnect::HasDependency(), TPZConnect::IsCondensed(), LOGPZ_DEBUG, LOGPZ_ERROR, TPZCompMesh::MaterialVec(), TPZMatrixSolver< TVar >::Matrix(), TPZCompEl::Mesh(), NConnects(), NeedsComputing(), TPZConnect::NElConnected(), TPZVec< T >::NElements(), TPZChunkVector< T, EXP >::NElements(), TPZCompMesh::NEquations(), TPZMaterial::NStateVariables(), TPZMaterial::NumLoadCases(), PermuteExternalConnects(), TPZBlock< TVar >::Position(), TPZElementMatrix::Print(), TPZConnect::Print(), TPZFMatrix< TVar >::Redim(), TPZElementMatrix::Reset(), TPZManVector< T, NumExtAlloc >::Resize(), TPZAnalysis::Run(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZSubMeshFrontalAnalysis::SetFront(), TPZBlock< TVar >::SetNBlocks(), TPZBlock< TVar >::Size(), TPZAnalysis::Solver(), and TPZAnalysis::StructMatrix().

Referenced by Analysis().

◆ ClassId()

int TPZSubCompMesh::ClassId ( ) const
overridevirtual

Returns the unique identifier for reading/writing objects to streams.

returns the unique identifier for reading/writing objects to streams

Reimplemented from TPZCompMesh.

Definition at line 1852 of file pzsubcmesh.cpp.

References TPZCompEl::ClassId(), TPZCompMesh::ClassId(), and Hash().

Referenced by Analysis().

◆ Clone()

virtual TPZCompEl* TPZSubCompMesh::Clone ( TPZCompMesh mesh) const
inlineoverridevirtual

Method for creating a copy of the element.

Implements TPZCompEl.

Definition at line 93 of file pzsubcmesh.h.

◆ ClonePatchEl()

virtual TPZCompEl* TPZSubCompMesh::ClonePatchEl ( TPZCompMesh mesh,
std::map< int64_t, int64_t > &  gl2lcConMap,
std::map< int64_t, int64_t > &  gl2lcElMap 
) const
inlineoverridevirtual

Method for creating a copy of the element in a patch mesh.

Parameters
meshPatch clone mesh
gl2lcConMapmap the connects indexes from global element (original) to the local copy.
gl2lcElMapmap the computational elements Otherwise of the previous clone function, this method don't copy entire mesh. Therefore it needs to map the connect index from the both meshes - original and patch

Implements TPZCompEl.

Definition at line 98 of file pzsubcmesh.h.

References SetAnalysisFrontal(), and SetAnalysisSkyline().

◆ CommonMesh()

TPZCompMesh * TPZSubCompMesh::CommonMesh ( TPZCompMesh mesh)
overridevirtual

Gives the commom father mesh of the specified mesh and the current submesh.

Parameters
meshpointer to other mesh whosw want to know the commom father mesh

Reimplemented from TPZCompMesh.

Definition at line 265 of file pzsubcmesh.cpp.

References FatherMesh(), TPZCompMesh::FatherMesh(), and TPZStack< T, NumExtAlloc >::Push().

Referenced by Analysis(), IsAllowedElement(), NodeIndex(), TransferElement(), TransferElementFrom(), and TransferElementTo().

◆ CompareElement()

REAL TPZSubCompMesh::CompareElement ( int  var,
char *  matname 
)
overridevirtual

This method will initiate the comparison between the current computational mesh and the mesh which is referenced by the geometric mesh.

Parameters
varstate variable number
matnamepointer to material name

Reimplemented from TPZCompEl.

Definition at line 1818 of file pzsubcmesh.cpp.

References TPZCompMesh::CompareMesh().

Referenced by Analysis().

◆ ComputeNodElCon() [1/2]

void TPZSubCompMesh::ComputeNodElCon ( )
overridevirtual

Computes the number of elements connected to each connect object.

Compute the number of elements connected to each connect object

Reimplemented from TPZCompMesh.

Definition at line 298 of file pzsubcmesh.cpp.

References TPZCompMesh::ComputeNodElCon(), TPZCompMesh::fConnectVec, fFatherToLocal, and fSingularConnect.

Referenced by Analysis(), TPZDohrStructMatrix::Create(), TPZMHMixedMeshControl::GroupandCondenseElements(), TPZMHMixedHybridMeshControl::GroupandCondenseElements(), PermuteExternalConnects(), and ~TPZSubCompMesh().

◆ ComputeNodElCon() [2/2]

void TPZSubCompMesh::ComputeNodElCon ( TPZVec< int > &  nelconnected) const
overridevirtual

Computes the number of elements connected to each connect object.

Compute the number of elements connected to each connect object

Reimplemented from TPZCompMesh.

Definition at line 324 of file pzsubcmesh.cpp.

References TPZCompMesh::ComputeNodElCon(), and fFatherToLocal.

◆ ComputePermutationInternalFirst()

void TPZSubCompMesh::ComputePermutationInternalFirst ( TPZVec< int64_t > &  permute) const

Computes the permutation vector which puts the internal connects to the first on the list
Respect the previous order of the connects.

Compute the permutation vector which puts the internal connects to the first on the list Respect the previous order of the connects

Definition at line 1514 of file pzsubcmesh.cpp.

References TPZCompMesh::ConnectVec(), FatherMesh(), fConnectIndex, TPZCompMesh::fConnectVec, fExternalLocIndex, TPZCompEl::Index(), LOGPZ_DEBUG, TPZChunkVector< T, EXP >::NElements(), PotentialInternal(), and TPZVec< T >::Resize().

Referenced by Analysis(), TPZGenSubStruct::ComputeInternalEquationPermutation(), TPZDohrStructMatrix::ComputeInternalEquationPermutation(), and PermuteInternalFirst().

◆ ComputeSolution() [1/3]

void TPZSubCompMesh::ComputeSolution ( TPZVec< REAL > &  qsi,
TPZSolVec sol,
TPZGradSolVec dsol,
TPZFMatrix< REAL > &  axes 
)
overridevirtual

Computes solution and its derivatives in the local coordinate qsi. SHOULD NEVER BE CALLED.

Parameters
qsimaster element coordinate
solfinite element solution
dsolsolution derivatives
axesaxes associated with the derivative of the solution

Reimplemented from TPZCompEl.

Definition at line 1903 of file pzsubcmesh.cpp.

References PZError.

Referenced by Analysis().

◆ ComputeSolution() [2/3]

void TPZSubCompMesh::ComputeSolution ( TPZVec< REAL > &  qsi,
TPZVec< REAL > &  normal,
TPZSolVec leftsol,
TPZGradSolVec dleftsol,
TPZFMatrix< REAL > &  leftaxes,
TPZSolVec rightsol,
TPZGradSolVec drightsol,
TPZFMatrix< REAL > &  rightaxes 
)
overridevirtual

Computes solution and its derivatives in the local coordinate qsi.
This method will function for both volumetric and interface elements.

Parameters
qsimaster element coordinate of the interface element
normalunitary normal vector
leftsolfinite element solution
dleftsolsolution derivatives
leftaxesaxes associated with the left solution
rightsolfinite element solution
drightsolsolution derivatives
rightaxesaxes associated with the right solution

Reimplemented from TPZCompEl.

Definition at line 1913 of file pzsubcmesh.cpp.

References PZError.

◆ ComputeSolution() [3/3]

void TPZSubCompMesh::ComputeSolution ( TPZVec< REAL > &  qsi,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphix,
const TPZFMatrix< REAL > &  axes,
TPZSolVec sol,
TPZGradSolVec dsol 
)
overridevirtual

Computes solution and its derivatives in local coordinate qsi.

Parameters
qsimaster element coordinate
phimatrix containing shape functions compute in qsi point
dphixmatrix containing the derivatives of shape functions in the direction of the axes
axes[in] indicating the direction of the derivatives
solfinite element solution
dsolsolution derivatives

Reimplemented from TPZCompEl.

Definition at line 1908 of file pzsubcmesh.cpp.

References PZError.

◆ ConnectIndex()

int64_t TPZSubCompMesh::ConnectIndex ( int  i) const
overridevirtual

Returns the connection index i.

Implements TPZCompEl.

Definition at line 346 of file pzsubcmesh.cpp.

References fConnectIndex.

Referenced by Analysis(), CalcStiff(), InitializeEF(), TPZGenSubStruct::SubStructure(), and TPZMHMeshControl::SubStructure().

◆ CreateGraphicalElement()

void TPZSubCompMesh::CreateGraphicalElement ( TPZGraphMesh graphmesh,
int  dimension 
)
overridevirtual

Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files.

Parameters
graphmeshgraphical mesh where the element will be created
dimensiontarget dimension of the graphical element

Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files

Parameters
graphmeshgraphical mesh where the element will be created
dimensiontarget dimension of the graphical element

Reimplemented from TPZCompEl.

Definition at line 1927 of file pzsubcmesh.cpp.

References TPZCompEl::CreateGraphicalElement(), TPZCompMesh::fElementVec, and TPZChunkVector< T, EXP >::NElements().

Referenced by Analysis().

◆ Dimension()

int TPZSubCompMesh::Dimension ( ) const
overridevirtual

Virtual Method! See declaration in TPZCompEl class.

The use of this method in submesh class return -1 == Error!

Implements TPZCompEl.

Definition at line 350 of file pzsubcmesh.cpp.

Referenced by Analysis().

◆ EvaluateError()

void TPZSubCompMesh::EvaluateError ( std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)>  func,
TPZVec< REAL > &  errors,
bool  store_error 
)
overridevirtual

Performs an error estimate on the elemen.

Parameters
fpfunction pointer which computes the exact solution
errors[out] the L2 norm of the error of the solution
flux[in] value of the interpolated flux values

Reimplemented from TPZCompEl.

Definition at line 2155 of file pzsubcmesh.cpp.

References TPZMatrix< TVar >::Cols(), DebugStop, TPZCompMesh::ElementSolution(), fAnalysis, TPZCompEl::Index(), TPZCompEl::Mesh(), TPZAnalysis::PostProcessError(), TPZAnalysis::SetExact(), and TPZVec< T >::size().

Referenced by Analysis().

◆ FatherMesh()

TPZCompMesh * TPZSubCompMesh::FatherMesh ( ) const
overridevirtual

◆ GetFromSuperMesh()

int64_t TPZSubCompMesh::GetFromSuperMesh ( int64_t  superind,
TPZCompMesh super 
)
overridevirtual

Gets an external connection from the supermesh - Supermesh is one mesh who contains the analised submesh.

Parameters
superindindex of the element to be trasnfered
superpointer to the destination mesh

Reimplemented from TPZCompMesh.

Definition at line 461 of file pzsubcmesh.cpp.

References AllocateNewConnect(), TPZCompMesh::ConnectVec(), FatherMesh(), fConnectIndex, fExternalLocIndex, fFatherToLocal, TPZCompMesh::GetFromSuperMesh(), LOGPZ_DEBUG, TPZVec< T >::NElements(), and TPZManVector< T, NumExtAlloc >::Resize().

Referenced by Analysis(), TransferDependencies(), and TransferElementFrom().

◆ HasMaterial()

bool TPZSubCompMesh::HasMaterial ( const std::set< int > &  materialids) const
overridevirtual

Verifies if the material associated with the element is contained in the set.

Verify if the material associated with the element is contained in the set

Reimplemented from TPZCompEl.

Definition at line 2048 of file pzsubcmesh.cpp.

References TPZCompMesh::ElementVec(), TPZCompEl::HasMaterial(), and TPZCompMesh::NElements().

Referenced by AddLagrangeDOF().

◆ InitializeEF()

void TPZSubCompMesh::InitializeEF ( TPZElementMatrix ef)

◆ IntegrateSolution()

TPZVec< STATE > TPZSubCompMesh::IntegrateSolution ( const std::string &  varname,
const std::set< int > &  matids 
)
overridevirtual

Compute the integral of a variable defined by the string if the material id is included in matids.

Reimplemented from TPZCompEl.

Definition at line 1761 of file pzsubcmesh.cpp.

References TPZCompMesh::Integrate().

Referenced by Analysis().

◆ InternalIndex()

int64_t TPZSubCompMesh::InternalIndex ( int64_t  IndexinFather)

return the index in the subcompmesh of a connect with index within the father

Definition at line 2147 of file pzsubcmesh.cpp.

References DebugStop, and fFatherToLocal.

Referenced by Analysis(), TPZMHMeshControl::SubStructure(), and TPZBuildMultiphysicsMesh::TransferFromMeshes().

◆ IsAllowedElement()

int TPZSubCompMesh::IsAllowedElement ( TPZCompMesh mesh,
int64_t  elindex 
)

Verifies the transfer possibility of the connection elindex from the mesh to the current submesh.

Parameters
meshpointer to given mesh
elindexgiven mesh element index

Definition at line 994 of file pzsubcmesh.cpp.

References CommonMesh(), TPZCompMesh::FatherMesh(), and TPZCompEl::Index().

Referenced by Analysis(), and TransferElementFrom().

◆ LoadElementReference()

void TPZSubCompMesh::LoadElementReference ( )
overridevirtual

This method will load the elements of the mesh in their corresponding geometric elements.

Reimplemented from TPZCompEl.

Definition at line 1823 of file pzsubcmesh.cpp.

References TPZCompMesh::LoadReferences().

Referenced by Analysis().

◆ LoadSolution()

void TPZSubCompMesh::LoadSolution ( )
overridevirtual

◆ main()

int TPZSubCompMesh::main ( )
static

◆ MakeAllInternal()

void TPZSubCompMesh::MakeAllInternal ( )
overridevirtual

Makes all mesh connections internal mesh connections.

Note
This method is not working right!!! See comments in pzsubcmesh.cpp

Este m�todo deve estar errado. Primeiro tem que por os connects que tem dependencias caso contrario n�s com dependencias serao duplicados

talvez primeiro copiar a estrutura dos n�s dependentes e DEPOIS tir� los da malha pai

Reimplemented from TPZCompMesh.

Definition at line 602 of file pzsubcmesh.cpp.

References TPZCompMesh::ConnectVec(), DebugStop, TPZCompMesh::ExpandSolution(), FatherMesh(), fConnectIndex, fExternalLocIndex, fFatherToLocal, GatherDependency(), LOGPZ_DEBUG, MakeInternalFast(), and TPZManVector< T, NumExtAlloc >::Resize().

Referenced by Analysis(), main(), TPZCompMeshTools::PutinSubmeshes(), TPZGenSubStruct::SubStructure(), and TPZMHMeshControl::SubStructure().

◆ MakeExternal()

void TPZSubCompMesh::MakeExternal ( int64_t  local)

◆ MakeInternal()

void TPZSubCompMesh::MakeInternal ( int64_t  local)
overridevirtual

Makes a specified connection a internal mesh connection.

Parameters
localconnection local number to be processed

Reimplemented from TPZCompMesh.

Definition at line 550 of file pzsubcmesh.cpp.

References fConnectIndex, TPZCompMesh::fConnectVec, fExternalLocIndex, fFatherToLocal, TPZVec< T >::NElements(), TPZChunkVector< T, EXP >::NElements(), TPZManVector< T, NumExtAlloc >::Resize(), and TransferDependencies().

Referenced by Analysis().

◆ MakeInternalFast()

void TPZSubCompMesh::MakeInternalFast ( int64_t  local)
private

Marks the connect to be local.

Definition at line 566 of file pzsubcmesh.cpp.

References TPZCompMesh::ConnectVec(), fConnectIndex, fExternalLocIndex, fFatherToLocal, TPZCompEl::Mesh(), and TransferDependencies().

Referenced by MakeAllInternal().

◆ NConnects()

int TPZSubCompMesh::NConnects ( ) const
overridevirtual

◆ NConnectShapeF()

virtual int TPZSubCompMesh::NConnectShapeF ( int  inod,
int  order 
)
inlinevirtual

Definition at line 88 of file pzsubcmesh.h.

References PZError.

◆ NeedsComputing()

bool TPZSubCompMesh::NeedsComputing ( const std::set< int > &  matids)
overridevirtual

◆ NodeIndex()

int64_t TPZSubCompMesh::NodeIndex ( int64_t  nolocal,
TPZCompMesh super 
)

◆ NumberRigidBodyModes()

int TPZSubCompMesh::NumberRigidBodyModes ( )

Return the number of rigid body modes associated with the internal degrees of freedom.

Definition at line 2064 of file pzsubcmesh.cpp.

References TPZCompMesh::fBlock, TPZCompMesh::fConnectVec, fSingularConnect, and TPZBlock< TVar >::Size().

Referenced by AddLagrangeDOF(), TPZSubMeshAnalysis::Assemble(), and TPZFrontStructMatrix< front >::CreateAssemble().

◆ NumInternalEquations()

int64_t TPZSubCompMesh::NumInternalEquations ( )

◆ PermuteExternalConnects()

void TPZSubCompMesh::PermuteExternalConnects ( )

◆ PermuteInternalFirst()

void TPZSubCompMesh::PermuteInternalFirst ( TPZVec< int64_t > &  permute)

Permutes the potentially internal connects to the first on the list
Respect the previous order of the connects.

Permute the potentially internal connects to the first on the list Respect the previous order of the connects

Definition at line 1620 of file pzsubcmesh.cpp.

References ComputePermutationInternalFirst(), LOGPZ_DEBUG, and TPZCompMesh::Permute().

Referenced by Analysis(), AssembleMatrices(), InitializeMatrices(), TPZGenSubStruct::ReorderInternalNodes(), and TPZGenSubStruct::ReorderInternalNodes2().

◆ PotentialInternal()

void TPZSubCompMesh::PotentialInternal ( std::list< int64_t > &  connectindices) const

◆ Print()

void TPZSubCompMesh::Print ( std::ostream &  out = std::cout) const
overridevirtual

Prints the submesh information on the specified device/file out.

Parameters
outindicates the device where the data will be printedThis method use the virtual method from Computacional Mesh class.

Reimplemented from TPZCompMesh.

Definition at line 498 of file pzsubcmesh.cpp.

References fConnectIndex, TPZCompMesh::fConnectVec, fExternalLocIndex, fFatherToLocal, TPZChunkVector< T, EXP >::NElements(), TPZCompEl::Print(), and TPZCompMesh::Print().

Referenced by Analysis(), TPZMHMixedMeshControl::GroupandCondenseElements(), TPZMHMixedHybridMeshControl::GroupandCondenseElements(), main(), SetAnalysisSkyline(), and TPZMHMeshControl::SubStructure().

◆ PutinSuperMesh()

int64_t TPZSubCompMesh::PutinSuperMesh ( int64_t  local,
TPZCompMesh super 
)
overridevirtual

Puts an local connection in the supermesh - Supermesh is one mesh who contains the analised submesh.

Parameters
locallocal index of the element to be trasnfered
superpointer to the destination mesh

Reimplemented from TPZCompMesh.

Definition at line 455 of file pzsubcmesh.cpp.

References FatherMesh(), fConnectIndex, fExternalLocIndex, MakeExternal(), and TPZCompMesh::PutinSuperMesh().

Referenced by Analysis().

◆ Read()

void TPZSubCompMesh::Read ( TPZStream buf,
void *  context 
)
overridevirtual

Reads the element data from a stream.

Read the element data from a stream

Reimplemented from TPZCompMesh.

Definition at line 1886 of file pzsubcmesh.cpp.

References fConnectIndex, fExternalLocIndex, fFatherToLocal, fSingularConnect, TPZCompMesh::MaterialVec(), TPZCompEl::Mesh(), TPZStream::Read(), TPZCompEl::Read(), TPZCompMesh::Read(), TPZCompMesh::Reference(), and TPZVec< T >::size().

Referenced by Analysis().

◆ RootMesh()

TPZCompMesh * TPZSubCompMesh::RootMesh ( int64_t  local)
overridevirtual

Returns the rootmesh who have the specified connection.

Parameters
localconnection local index

Reimplemented from TPZCompMesh.

Definition at line 590 of file pzsubcmesh.cpp.

References FatherMesh(), fConnectIndex, and fExternalLocIndex.

Referenced by Analysis(), and TransferDependencies().

◆ SetAnalysisFrontal()

void TPZSubCompMesh::SetAnalysisFrontal ( int  numThreads,
TPZAutoPointer< TPZGuiInterface guiInterface 
)

◆ SetAnalysisSkyline() [1/2]

void TPZSubCompMesh::SetAnalysisSkyline ( int  numThreads,
int  preconditioned,
TPZAutoPointer< TPZGuiInterface guiInterface 
)

◆ SetAnalysisSkyline() [2/2]

void TPZSubCompMesh::SetAnalysisSkyline ( int  numThreads,
int  preconditioned,
TPZAutoPointer< TPZRenumbering renumber 
)

◆ SetConnectIndex()

void TPZSubCompMesh::SetConnectIndex ( int  inode,
int64_t  index 
)
overridevirtual

Changes the current node index -inode- to the specified node- index.

Parameters
inodenode index to change
indexnew node index for connect

Implements TPZCompEl.

Definition at line 813 of file pzsubcmesh.cpp.

References fConnectIndex.

Referenced by Analysis().

◆ SetNumberRigidBodyModes()

void TPZSubCompMesh::SetNumberRigidBodyModes ( int  nrigid,
unsigned char  lagrange = 0 
)

◆ SkylineInternal()

void TPZSubCompMesh::SkylineInternal ( TPZVec< int64_t > &  skyline)
virtual

This method computes the skyline of the system of equations.

Parameters
skylinevector where the skyline will be computed

Definition at line 1787 of file pzsubcmesh.cpp.

References NumInternalEquations(), TPZVec< T >::Resize(), and TPZCompMesh::Skyline().

Referenced by Analysis().

◆ TransferDependencies()

void TPZSubCompMesh::TransferDependencies ( int64_t  local)
private

Transfer the dependency list of a connect. This will make the dependency disappear for the corresponding father mesh.

It is necessary that the number of elements connected to the connect be equal one

Transfer the dependency list of a connect. This will make the dependency disappear for the corresponding father mesh It is necessary that the number of elements connected to the connect be equal one

Definition at line 523 of file pzsubcmesh.cpp.

References TPZMatrix< TVar >::Cols(), TPZCompMesh::ConnectVec(), FatherMesh(), fConnectIndex, TPZConnect::TPZDepend::fDepConnectIndex, TPZConnect::TPZDepend::fDepMatrix, fExternalLocIndex, GetFromSuperMesh(), RootMesh(), and TPZMatrix< TVar >::Rows().

Referenced by MakeInternal(), and MakeInternalFast().

◆ TransferElement()

int64_t TPZSubCompMesh::TransferElement ( TPZCompMesh mesh,
int64_t  elindex 
)
overridevirtual

Transfer the element elindex belonging to mesh to the current mesh and returns its index.

Reimplemented from TPZCompMesh.

Definition at line 987 of file pzsubcmesh.cpp.

References CommonMesh(), TransferElementFrom(), and TPZCompMesh::TransferElementTo().

Referenced by Analysis(), main(), TPZCompMeshTools::PutinSubmeshes(), and TPZGenSubStruct::SubStructure().

◆ TransferElementFrom()

int64_t TPZSubCompMesh::TransferElementFrom ( TPZCompMesh mesh,
int64_t  elindex 
)
overrideprivatevirtual

◆ TransferElementTo()

int64_t TPZSubCompMesh::TransferElementTo ( TPZCompMesh mesh,
int64_t  elindex 
)
overrideprivatevirtual

◆ TransferMultiphysicsElementSolution()

void TPZSubCompMesh::TransferMultiphysicsElementSolution ( )
overridevirtual

Transfer multiphysics solution.

Reimplemented from TPZCompEl.

Definition at line 1767 of file pzsubcmesh.cpp.

References TPZCompMesh::Element(), TPZCompMesh::fSolution, LOGPZ_DEBUG, TPZCompMesh::NElements(), TPZMatrix< TVar >::Print(), and TPZCompEl::TransferMultiphysicsElementSolution().

Referenced by Analysis().

◆ VerifyDatastructureConsistency()

bool TPZSubCompMesh::VerifyDatastructureConsistency ( )

Method to verify that the datastructures are consistent.

Definition at line 2014 of file pzsubcmesh.cpp.

References DebugStop, fConnectIndex, fExternalLocIndex, fFatherToLocal, and TPZVec< T >::NElements().

Referenced by Analysis(), and TPZGenSubStruct::SubStructure().

◆ Write()

void TPZSubCompMesh::Write ( TPZStream buf,
int  withclassid 
) const
overridevirtual

Saves the element data to a stream.

Save the element data to a stream

Reimplemented from TPZCompMesh.

Definition at line 1863 of file pzsubcmesh.cpp.

References fConnectIndex, fExternalLocIndex, fFatherToLocal, TPZCompMesh::fMaterialVec, fSingularConnect, TPZStream::Write(), TPZCompEl::Write(), and TPZCompMesh::Write().

Referenced by Analysis().

Member Data Documentation

◆ fAnalysis

TPZAutoPointer<TPZAnalysis> TPZSubCompMesh::fAnalysis
protected

Pointer to submesh analysis object. Defines the resolution type.

Definition at line 42 of file pzsubcmesh.h.

Referenced by Analysis(), Assemble(), CalcResidual(), CalcStiff(), EvaluateError(), LoadSolution(), SetAnalysisFrontal(), SetAnalysisSkyline(), and TPZSubCompMesh().

◆ fConnectIndex

TPZManVector<int64_t> TPZSubCompMesh::fConnectIndex
protected

◆ fExternalLocIndex

TPZManVector<int64_t> TPZSubCompMesh::fExternalLocIndex
protected

◆ fFatherToLocal

std::map<int64_t,int64_t> TPZSubCompMesh::fFatherToLocal
protected

Maps indicating the correspondence between the connect index of the father mesh and de local connect id.

Definition at line 52 of file pzsubcmesh.h.

Referenced by CalcStiff(), ComputeNodElCon(), GetFromSuperMesh(), InternalIndex(), MakeAllInternal(), MakeExternal(), MakeInternal(), MakeInternalFast(), Print(), Read(), SetNumberRigidBodyModes(), VerifyDatastructureConsistency(), and Write().

◆ fLagrangeEquations

std::list<std::pair<int64_t,int> > TPZSubCompMesh::fLagrangeEquations
protected

List of connect/degree of freedom which are used as Lagrange multipliers.

Definition at line 58 of file pzsubcmesh.h.

◆ fSingularConnect

int64_t TPZSubCompMesh::fSingularConnect
protected

Number of rigid body modes expected by the internal matrix inversion.

Definition at line 55 of file pzsubcmesh.h.

Referenced by ComputeNodElCon(), NumberRigidBodyModes(), Read(), SetNumberRigidBodyModes(), and Write().


The documentation for this class was generated from the following files: