NeoPZ
|
Implements a group of computational elements as a mesh and an element. Computational Mesh. More...
#include <pzsubcmesh.h>
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 TPZCompEl * | Clone (TPZCompMesh &mesh) const override |
Method for creating a copy of the element. More... | |
virtual TPZCompEl * | ClonePatchEl (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< TPZAnalysis > | Analysis () |
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 TPZCompMesh * | RootMesh (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 TPZCompMesh * | CommonMesh (TPZCompMesh *mesh) override |
Gives the commom father mesh of the specified mesh and the current submesh. More... | |
virtual TPZCompMesh * | FatherMesh () 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 constructor. More... | |
TPZCompMesh & | operator= (const TPZCompMesh ©) |
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... | |
TPZMaterial * | FindMaterial (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) |
TPZCompMesh * | Clone () 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 () |
TPZCompMesh * | ComputeMesh (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... | |
TPZCompEl * | Element (int64_t iel) |
const TPZCompEl * | Element (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... | |
TPZGeoMesh * | Reference () 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 () |
TPZCompEl * | CreateCompEl (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... | |
TPZCreateApproximationSpace & | ApproxSpace () |
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 ©) | |
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 | 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< TPZOneShapeRestraint > | GetShapeRestraints () 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 TPZIntPoints & | GetIntegrationRule () const |
virtual MElementType | Type () |
Return the type of the element. 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 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... | |
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... | |
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 TPZSavable * | CreateInstance (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< TPZAnalysis > | fAnalysis |
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 | |
TPZGeoMesh * | fReference |
Geometric grid to which this grid refers. More... | |
TPZAutoPointer< TPZGeoMesh > | fGMesh |
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< TPZConnect > | fConnectVec |
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 | |
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 | |
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... | |
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.
TPZSubCompMesh::TPZSubCompMesh | ( | TPZCompMesh & | mesh, |
int64_t & | index | ||
) |
Constructor.
mesh | reference mesh |
index | reference mesh element index to transfer to submesh |
Definition at line 182 of file pzsubcmesh.cpp.
References TPZCompMesh::Dimension(), fAnalysis, and TPZCompMesh::SetDimModel().
TPZSubCompMesh::TPZSubCompMesh | ( | ) |
Default constructor.
Definition at line 189 of file pzsubcmesh.cpp.
References fAnalysis.
Referenced by main().
|
virtual |
Destructor.
Definition at line 194 of file pzsubcmesh.cpp.
References TPZAdmChunkVector< T, EXP >::CompactDataStructure(), ComputeNodElCon(), cond, TPZCompMesh::fConnectVec, TPZCompMesh::fElementVec, TPZCompMesh::LoadReferences(), TPZCompMesh::MaterialVec(), TPZCompMesh::NElements(), TPZAdmChunkVector< T, EXP >::NOW, TPZCompMesh::Reference(), TPZGeoMesh::ResetReference(), TPZAdmChunkVector< T, EXP >::Resize(), TPZCondensedCompEl::Unwrap(), and TPZElementGroup::Unwrap().
|
inline |
Set the connect/degree of freedom as Lagrange variable.
Definition at line 388 of file pzsubcmesh.h.
References HasMaterial(), main(), NumberRigidBodyModes(), and SetNumberRigidBodyModes().
|
overridevirtual |
Virtual Method to allocate new connect.
Reimplemented from TPZCompMesh.
Definition at line 386 of file pzsubcmesh.cpp.
References TPZCompMesh::AllocateNewConnect(), TPZCompMesh::fBlock, TPZCompMesh::fConnectVec, fExternalLocIndex, TPZVec< T >::NElements(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZBlock< TVar >::Set().
Referenced by Analysis(), GetFromSuperMesh(), and SetNumberRigidBodyModes().
|
overridevirtual |
Virtual Method to allocate new connect.
Reimplemented from TPZCompMesh.
Definition at line 404 of file pzsubcmesh.cpp.
References TPZCompMesh::AllocateNewConnect(), TPZCompMesh::fBlock, TPZCompMesh::fConnectVec, fExternalLocIndex, TPZVec< T >::NElements(), TPZConnect::NShape(), TPZConnect::NState(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZBlock< TVar >::Set().
|
inline |
Definition at line 123 of file pzsubcmesh.h.
References AllocateNewConnect(), Assemble(), BuildCornerConnectList(), CalcResidual(), CalcStiff(), ClassId(), CommonMesh(), CompareElement(), ComputeNodElCon(), ComputePermutationInternalFirst(), ComputeSolution(), ConnectIndex(), CreateGraphicalElement(), dimension, Dimension(), EvaluateError(), fAnalysis, FatherMesh(), GetFromSuperMesh(), InitializeEF(), IntegrateSolution(), InternalIndex(), IsAllowedElement(), LoadElementReference(), LoadSolution(), MakeAllInternal(), MakeExternal(), MakeInternal(), NConnects(), NeedsComputing(), NodeIndex(), NumInternalEquations(), PermuteExternalConnects(), PermuteInternalFirst(), PotentialInternal(), Print(), PutinSuperMesh(), Read(), RootMesh(), SetConnectIndex(), SkylineInternal(), TransferElement(), TransferMultiphysicsElementSolution(), val(), VerifyDatastructureConsistency(), and Write().
Referenced by TPZStructMatrixBase::SetMaterialIds().
|
overridevirtual |
Assemble the stiffness matrix in locally kept datastructure.
Reimplemented from TPZCompEl.
Definition at line 1008 of file pzsubcmesh.cpp.
References TPZAnalysis::Assemble(), TPZCompMesh::CleanUpUnconnectedNodes(), DebugStop, fAnalysis, TPZSubMeshAnalysis::Matrix(), NeedsComputing(), PermuteExternalConnects(), TPZAnalysis::Rhs(), TPZMatRed< TVar, TSideMatrix >::SetF(), and TPZAnalysis::StructMatrix().
Referenced by Analysis().
|
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().
|
overridevirtual |
Computes the element right hand side.
ef | element 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().
|
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().
|
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().
|
inlineoverridevirtual |
Method for creating a copy of the element.
Implements TPZCompEl.
Definition at line 93 of file pzsubcmesh.h.
|
inlineoverridevirtual |
Method for creating a copy of the element in a patch mesh.
mesh | Patch clone mesh |
gl2lcConMap | map the connects indexes from global element (original) to the local copy. |
gl2lcElMap | map 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().
|
overridevirtual |
Gives the commom father mesh of the specified mesh and the current submesh.
mesh | pointer 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().
|
overridevirtual |
This method will initiate the comparison between the current computational mesh and the mesh which is referenced by the geometric mesh.
var | state variable number |
matname | pointer to material name |
Reimplemented from TPZCompEl.
Definition at line 1818 of file pzsubcmesh.cpp.
References TPZCompMesh::CompareMesh().
Referenced by Analysis().
|
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().
|
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.
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().
|
overridevirtual |
Computes solution and its derivatives in the local coordinate qsi. SHOULD NEVER BE CALLED.
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 1903 of file pzsubcmesh.cpp.
References PZError.
Referenced by Analysis().
|
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 1913 of file pzsubcmesh.cpp.
References PZError.
|
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 in the direction of the axes |
axes | [in] indicating the direction of the derivatives |
sol | finite element solution |
dsol | solution derivatives |
Reimplemented from TPZCompEl.
Definition at line 1908 of file pzsubcmesh.cpp.
References PZError.
|
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().
|
overridevirtual |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files.
graphmesh | graphical mesh where the element will be created |
dimension | target dimension of the graphical element |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files
graphmesh | graphical mesh where the element will be created |
dimension | target 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().
|
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().
|
overridevirtual |
Performs an error estimate on the elemen.
fp | function 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().
|
overridevirtual |
Returns the current submesh father mesh.
Reimplemented from TPZCompMesh.
Definition at line 260 of file pzsubcmesh.cpp.
References TPZCompEl::Mesh().
Referenced by Analysis(), CommonMesh(), ComputePermutationInternalFirst(), GetFromSuperMesh(), MakeAllInternal(), MakeExternal(), NodeIndex(), PotentialInternal(), PutinSuperMesh(), RootMesh(), SetNumberRigidBodyModes(), TransferDependencies(), TransferElementFrom(), TransferElementTo(), and TPZBuildMultiphysicsMesh::TransferFromMeshes().
|
overridevirtual |
Gets an external connection from the supermesh - Supermesh is one mesh who contains the analised submesh.
superind | index of the element to be trasnfered |
super | pointer 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().
|
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().
void TPZSubCompMesh::InitializeEF | ( | TPZElementMatrix & | ef | ) |
Initialize the datastructure of ef.
Definition at line 1048 of file pzsubcmesh.cpp.
References TPZCompMesh::Block(), TPZCompEl::Connect(), ConnectIndex(), TPZElementMatrix::EF, TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, TPZElementMatrix::fMesh, TPZElementMatrix::fType, TPZCompMesh::MaterialVec(), TPZCompEl::Mesh(), NConnects(), TPZMaterial::NStateVariables(), TPZMaterial::NumLoadCases(), TPZManVector< T, NumExtAlloc >::Resize(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZBlock< TVar >::SetNBlocks(), and TPZBlock< TVar >::Size().
Referenced by Analysis(), and CalcResidual().
|
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().
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().
int TPZSubCompMesh::IsAllowedElement | ( | TPZCompMesh * | mesh, |
int64_t | elindex | ||
) |
Verifies the transfer possibility of the connection elindex from the mesh to the current submesh.
mesh | pointer to given mesh |
elindex | given mesh element index |
Definition at line 994 of file pzsubcmesh.cpp.
References CommonMesh(), TPZCompMesh::FatherMesh(), and TPZCompEl::Index().
Referenced by Analysis(), and TransferElementFrom().
|
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().
|
overridevirtual |
Load the father mesh solution to all submesh connects - (internal and external).
Reimplemented from TPZCompEl.
Definition at line 1728 of file pzsubcmesh.cpp.
References TPZCompMesh::Block(), TPZCompMesh::ConnectVec(), fAnalysis, TPZCompMesh::fBlock, fConnectIndex, TPZCompMesh::fConnectVec, fExternalLocIndex, TPZCompMesh::fSolution, TPZAnalysis::LoadSolution(), TPZCompMesh::LoadSolution(), TPZCompEl::Mesh(), TPZChunkVector< T, EXP >::NElements(), TPZBlock< TVar >::Position(), TPZConnect::SequenceNumber(), and TPZCompMesh::Solution().
Referenced by Analysis(), and main().
|
static |
Static function for validation tests.
Definition at line 63 of file pzsubcmesh.cpp.
References TPZCompMesh::AutoBuild(), TPZGeoMesh::BuildConnectivity(), TPZMaterial::CreateBC(), TPZGeoMesh::CreateGeoElement(), DebugStop, ECube, ELDLt, Forcing(), TPZCompMesh::InitializeBlock(), TPZCompMesh::InsertMaterialObject(), TPZNonLinearAnalysis::IterativeProcess(), LoadSolution(), MakeAllInternal(), TPZGeoMesh::NodeVec(), numel, Print(), TPZStepSolver< TVar >::SetDirect(), TPZMaterial::SetForcingFunction(), TPZCompMesh::SetName(), TPZAnalysis::SetSolver(), TPZAnalysis::SetStructuralMatrix(), TPZAnalysis::Solution(), TPZSubCompMesh(), TransferElement(), and TPZFMatrix< TVar >::Zero().
Referenced by AddLagrangeDOF().
|
overridevirtual |
Makes all mesh connections internal mesh connections.
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().
void TPZSubCompMesh::MakeExternal | ( | int64_t | local | ) |
Changes an local internal connection to a external connection in the father mesh.
local | makes the connect with index local an external node |
Definition at line 424 of file pzsubcmesh.cpp.
References TPZCompMesh::AllocateNewConnect(), TPZMatrix< TVar >::Cols(), TPZCompMesh::ConnectVec(), FatherMesh(), fConnectIndex, TPZCompMesh::fConnectVec, TPZConnect::TPZDepend::fDepConnectIndex, TPZConnect::TPZDepend::fDepMatrix, fExternalLocIndex, fFatherToLocal, TPZVec< T >::NElements(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZMatrix< TVar >::Rows().
Referenced by Analysis(), PutinSuperMesh(), and TransferElementTo().
|
overridevirtual |
Makes a specified connection a internal mesh connection.
local | connection 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().
|
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().
|
overridevirtual |
Returns the number of connections.
Implements TPZCompEl.
Definition at line 342 of file pzsubcmesh.cpp.
References fConnectIndex, and TPZVec< T >::NElements().
Referenced by Analysis(), CalcStiff(), InitializeEF(), TPZCompMeshTools::PutinSubmeshes(), TPZGenSubStruct::SubStructure(), and TPZMHMeshControl::SubStructure().
|
inlinevirtual |
Definition at line 88 of file pzsubcmesh.h.
References PZError.
|
overridevirtual |
Verifies if any element needs to be computed corresponding to the material ids.
Verifies if any element needs to be computed corresponding to the material ids
Reimplemented from TPZCompEl.
Definition at line 1942 of file pzsubcmesh.cpp.
References TPZCompMesh::ElementVec(), TPZMaterial::Id(), LOGPZ_DEBUG, LOGPZ_WARN, TPZCompEl::Material(), NeedsComputing(), and TPZChunkVector< T, EXP >::NElements().
Referenced by Analysis(), Assemble(), CalcStiff(), NeedsComputing(), TPZPairStructMatrix::ThreadData::NextElement(), TPZStructMatrixCS::ThreadData::NextElement(), TPZStructMatrixGCTP::Serial_Assemble(), TPZStructMatrixGC::Serial_Assemble(), TPZStructMatrixCS::Serial_Assemble(), TPZStructMatrixOT::Serial_Assemble(), TPZStructMatrixOR::Serial_Assemble(), and TPZPairStructMatrix::TPZPairStructMatrix().
int64_t TPZSubCompMesh::NodeIndex | ( | int64_t | nolocal, |
TPZCompMesh * | super | ||
) |
Gives the id node of one local node in containing mesh.
Definition at line 358 of file pzsubcmesh.cpp.
References CommonMesh(), FatherMesh(), fConnectIndex, fExternalLocIndex, and NodeIndex().
Referenced by Analysis(), TPZDohrStructMatrix::IdentifyCornerNodes(), TPZGenSubStruct::IdentifyEqNumbers(), TPZDohrStructMatrix::IdentifyEqNumbers(), NodeIndex(), and TPZGenSubStruct::ReorderInternalNodes().
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().
int64_t TPZSubCompMesh::NumInternalEquations | ( | ) |
Computes the number of internal equations.
Definition at line 1792 of file pzsubcmesh.cpp.
References TPZCompMesh::Block(), DebugStop, TPZCompMesh::fConnectVec, fExternalLocIndex, TPZConnect::HasDependency(), TPZConnect::IsCondensed(), TPZConnect::NElConnected(), TPZChunkVector< T, EXP >::NElements(), TPZConnect::NShape(), TPZConnect::NState(), TPZConnect::SequenceNumber(), and TPZBlock< TVar >::Size().
Referenced by Analysis(), TPZSubMeshAnalysis::Assemble(), AssembleMatrices(), TPZDohrStructMatrix::Create(), InitializeMatrices(), TPZSubMeshAnalysis::LoadSolution(), TPZSubMeshFrontalAnalysis::LoadSolution(), SetAnalysisSkyline(), TPZMatRedStructMatrix< TStructMatrix, TSparseMatrix >::SetMesh(), SkylineInternal(), and TPZMatRedStructMatrix< TStructMatrix, TSparseMatrix >::TPZMatRedStructMatrix().
void TPZSubCompMesh::PermuteExternalConnects | ( | ) |
Optimizes the connections positions on block.
Definition at line 1627 of file pzsubcmesh.cpp.
References ComputeNodElCon(), TPZCompMesh::fConnectVec, fExternalLocIndex, TPZConnect::HasDependency(), TPZConnect::IsCondensed(), LOGPZ_DEBUG, TPZConnect::NElConnected(), TPZChunkVector< T, EXP >::NElements(), TPZCompMesh::Permute(), TPZConnect::SequenceNumber(), and TPZVec< T >::size().
Referenced by Analysis(), Assemble(), TPZBlockDiagonalStructMatrix::BlockSizes(), CalcStiff(), SetAnalysisFrontal(), and SetAnalysisSkyline().
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().
void TPZSubCompMesh::PotentialInternal | ( | std::list< int64_t > & | connectindices | ) | const |
Puts the nodes which can be transferred in an ordered list.
Definition at line 789 of file pzsubcmesh.cpp.
References TPZCompMesh::ComputeNodElCon(), TPZCompMesh::ConnectVec(), FatherMesh(), fConnectIndex, TPZCompMesh::fConnectVec, fExternalLocIndex, and TPZChunkVector< T, EXP >::NElements().
Referenced by Analysis(), ComputePermutationInternalFirst(), and TPZGenSubStruct::NInternalEq().
|
overridevirtual |
Prints the submesh information on the specified device/file out.
out | indicates 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().
|
overridevirtual |
Puts an local connection in the supermesh - Supermesh is one mesh who contains the analised submesh.
local | local index of the element to be trasnfered |
super | pointer 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().
|
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().
|
overridevirtual |
Returns the rootmesh who have the specified connection.
local | connection local index |
Reimplemented from TPZCompMesh.
Definition at line 590 of file pzsubcmesh.cpp.
References FatherMesh(), fConnectIndex, and fExternalLocIndex.
Referenced by Analysis(), and TransferDependencies().
void TPZSubCompMesh::SetAnalysisFrontal | ( | int | numThreads, |
TPZAutoPointer< TPZGuiInterface > | guiInterface | ||
) |
Sets the analysis type.
Definition at line 1470 of file pzsubcmesh.cpp.
References TPZCompMesh::ComputeFillIn(), ELU, fAnalysis, LOGPZ_DEBUG, PermuteExternalConnects(), TPZStepSolver< TVar >::SetDirect(), TPZAnalysis::SetGuiInterface(), TPZStructMatrixBase::SetNumThreads(), TPZAnalysis::SetSolver(), TPZAnalysis::SetStructuralMatrix(), and VisualMatrix().
Referenced by ClonePatchEl().
void TPZSubCompMesh::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.
Definition at line 1335 of file pzsubcmesh.cpp.
References TPZCompMesh::ComputeFillIn(), TPZStructMatrixOR::Create(), ELDLt, TPZStructMatrixBase::EquationFilter(), fAnalysis, LOGPZ_DEBUG, NumInternalEquations(), PermuteExternalConnects(), Print(), TPZEquationFilter::Reset(), TPZCompMesh::SaddlePermute(), TPZStepSolver< TVar >::SetDirect(), TPZStepSolver< TVar >::SetGMRES(), TPZAnalysis::SetGuiInterface(), TPZEquationFilter::SetMinMaxEq(), TPZStructMatrixBase::SetNumThreads(), TPZMatrixSolver< TVar >::SetReferenceMatrix(), TPZAnalysis::SetSolver(), TPZAnalysis::SetStructuralMatrix(), and VisualMatrix().
Referenced by ClonePatchEl(), TPZMHMixedMeshControl::GroupandCondenseElements(), TPZMHMixedHybridMeshControl::GroupandCondenseElements(), and TPZMHMeshControl::SubStructure().
void TPZSubCompMesh::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.
Definition at line 1402 of file pzsubcmesh.cpp.
References TPZCompMesh::ComputeFillIn(), TPZStructMatrixOR::Create(), ELDLt, TPZStructMatrixBase::EquationFilter(), fAnalysis, LOGPZ_DEBUG, NumInternalEquations(), PermuteExternalConnects(), Print(), TPZEquationFilter::Reset(), TPZCompMesh::SaddlePermute(), TPZAnalysis::SetCompMesh(), TPZStepSolver< TVar >::SetDirect(), TPZStepSolver< TVar >::SetGMRES(), TPZEquationFilter::SetMinMaxEq(), TPZStructMatrixBase::SetNumThreads(), TPZMatrixSolver< TVar >::SetReferenceMatrix(), TPZAnalysis::SetRenumber(), TPZAnalysis::SetSolver(), TPZAnalysis::SetStructuralMatrix(), and VisualMatrix().
|
overridevirtual |
Changes the current node index -inode- to the specified node- index.
inode | node index to change |
index | new node index for connect |
Implements TPZCompEl.
Definition at line 813 of file pzsubcmesh.cpp.
References fConnectIndex.
Referenced by Analysis().
void TPZSubCompMesh::SetNumberRigidBodyModes | ( | int | nrigid, |
unsigned char | lagrange = 0 |
||
) |
Set the number of rigid body modes associated with the internal degrees of freedom.
Definition at line 2076 of file pzsubcmesh.cpp.
References TPZCompMesh::AllocateNewConnect(), AllocateNewConnect(), TPZCompMesh::Block(), TPZCompMesh::ConnectVec(), DebugStop, TPZCompMesh::ExpandSolution(), FatherMesh(), TPZCompMesh::FatherMesh(), TPZCompMesh::fBlock, fConnectIndex, TPZCompMesh::fConnectVec, fExternalLocIndex, fFatherToLocal, fSingularConnect, TPZVec< T >::NElements(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZBlock< TVar >::Set().
Referenced by AddLagrangeDOF().
|
virtual |
This method computes the skyline of the system of equations.
skyline | vector 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().
|
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().
|
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().
|
overrideprivatevirtual |
Transfers one element from a specified mesh to the current submesh.
Reimplemented from TPZCompMesh.
Definition at line 817 of file pzsubcmesh.cpp.
References TPZAdmChunkVector< T, EXP >::AllocateNewElement(), CommonMesh(), TPZCompEl::ConnectIndex(), DebugStop, TPZCompMesh::ElementVec(), FatherMesh(), TPZCompMesh::fElementVec, TPZCompMesh::FindMaterial(), GetFromSuperMesh(), TPZMaterial::Id(), IsAllowedElement(), TPZMultiphysicsInterfaceElement::LeftElement(), TPZInterfaceElement::LeftElement(), TPZCompEl::Material(), TPZBndCond::Material(), TPZCompMesh::MaterialVec(), TPZCompEl::NConnects(), TPZCompEl::Reference(), TPZMultiphysicsInterfaceElement::RightElement(), TPZInterfaceElement::RightElement(), TPZCompEl::SetConnectIndex(), TPZAdmChunkVector< T, EXP >::SetFree(), TPZCompEl::SetIndex(), TPZCompEl::SetMesh(), and TPZCompMesh::TransferElementFrom().
Referenced by TransferElement().
|
overrideprivatevirtual |
Transfers one element from a submesh to another mesh.
Reimplemented from TPZCompMesh.
Definition at line 945 of file pzsubcmesh.cpp.
References TPZAdmChunkVector< T, EXP >::AllocateNewElement(), CommonMesh(), TPZCompEl::ConnectIndex(), TPZCompMesh::ElementVec(), FatherMesh(), fConnectIndex, fExternalLocIndex, MakeExternal(), TPZCompEl::NConnects(), TPZCompMesh::NElements(), TPZCompEl::SetConnectIndex(), TPZAdmChunkVector< T, EXP >::SetFree(), TPZCompEl::SetIndex(), TPZCompEl::SetMesh(), and TPZCompMesh::TransferElementTo().
|
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().
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().
|
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().
|
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().
|
protected |
Pointer to external location index of the connection.
If the connection hasn't external location return the local id.
Definition at line 46 of file pzsubcmesh.h.
Referenced by BuildCornerConnectList(), CalcStiff(), ComputePermutationInternalFirst(), ConnectIndex(), GetFromSuperMesh(), LoadSolution(), MakeAllInternal(), MakeExternal(), MakeInternal(), MakeInternalFast(), NConnects(), NodeIndex(), PotentialInternal(), Print(), PutinSuperMesh(), Read(), RootMesh(), SetConnectIndex(), SetNumberRigidBodyModes(), TransferDependencies(), TransferElementTo(), VerifyDatastructureConsistency(), and Write().
|
protected |
Indexes of the external connections.
If the connection isn't external id is -1!
Definition at line 50 of file pzsubcmesh.h.
Referenced by AllocateNewConnect(), BuildCornerConnectList(), CalcStiff(), ComputePermutationInternalFirst(), GetFromSuperMesh(), LoadSolution(), MakeAllInternal(), MakeExternal(), MakeInternal(), MakeInternalFast(), NodeIndex(), NumInternalEquations(), PermuteExternalConnects(), PotentialInternal(), Print(), PutinSuperMesh(), Read(), RootMesh(), SetNumberRigidBodyModes(), TransferDependencies(), TransferElementTo(), VerifyDatastructureConsistency(), and Write().
|
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().
|
protected |
List of connect/degree of freedom which are used as Lagrange multipliers.
Definition at line 58 of file pzsubcmesh.h.
|
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().