27 BlockSizes(blocksizes);
36 for(el=0; el<
numel; el++) {
44 for(c=0; c<ncon; c++) {
47 int64_t eqnum = fMesh->Block().Position(seqnum);
48 if(seqnum <0 || seqnum >= nblock)
continue;
49 int bsize = blocksizes[seqnum];
50 int64_t numactive = fEquationFilter.NumActive(eqnum, eqnum+bsize);
54 if (numactive != bsize) {
58 if(con.
NDof(*fMesh) != bsize ) {
59 cout <<
"TPZBlockDiagonalStructMatrix::AssembleBlockDiagonal wrong data structure\n";
71 if(fMesh->FatherMesh() != 0) {
84 blocksizes.
Resize(nblocks);
90 blsize = con.
NDof(*fMesh);
91 int64_t blpos = fMesh->Block().Position(bl);
92 int64_t numactiv = fEquationFilter.NumActive(blpos, blpos+blsize);
93 if (numactiv && numactiv != blsize) {
102 blocksizes[bl] = blsize;
111 int64_t neq = fMesh->NEquations();
114 Assemble(rhs,guiInterface);
115 AssembleBlockDiagonal(*block);
120 BlockSizes(blocksize);
int ClassId() const override
Define the class id associated with the class.
const int64_t numel
Number of elements to test.
Represents a set of shape functions associated with a computational element/side. Computational Eleme...
Implements Block Diagonal Structural Matrices. Structural Matrix.
virtual TPZMatrix< STATE > * CreateAssemble(TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) override
Templated vector implementation.
MBlockStructure fBlockStructure
virtual TPZMatrix< STATE > * Create() override
Creates a sparse blockdiagonal matrix, overlapping should be assumed.
Declarates the TPZBlock<REAL>class which implements block matrices.
int64_t NElements() const
Access method to query the number of elements of the vector.
int NDof(TPZCompMesh &mesh)
Number of degrees of freedom associated with the object.
Implements a chunk vector with free store administration. Utility.
Contains TPZBlockDiagonal class which defines block diagonal matrices.
virtual void CalcBlockDiagonal(TPZStack< int64_t > &connectlist, TPZBlockDiagonal< STATE > &block)
Calculates the diagonal block.
void BlockSizes(TPZVec< int > &blocksizes)
Refines geometrical mesh (all the elements) num times.
Contains the TPZBlockDiagonalStructMatrix class which implements Block Diagonal Structural Matrices...
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object reallocating the necessary storage, copying the existing objects to the new...
Contains declaration of TPZMesh class which defines a geometrical mesh and contains a corresponding l...
int64_t SequenceNumber() const
Returns the Sequence number of the connect object.
Implements a group of computational elements as a mesh and an element. Computational Mesh...
#define DebugStop()
Returns a message to user put a breakpoint in.
Contains declaration of TPZConnect class which represents a set of shape functions associated with a ...
int HasDependency() const
Returns whether exist dependecy information.
TPZBlockDiagonalStructMatrix()
Contains TPZSkyline class which implements a skyline storage format.
void AddBlock(int64_t i, TPZFMatrix< TVar > &block)
Adds a block to current matrix.
Contains declaration of TPZCompMesh class which is a repository for computational elements...
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
int32_t Hash(std::string str)
void PermuteExternalConnects()
Optimizes the connections positions on block.
void Initialize(const TPZVec< int > &blocksize)
Initializes current matrix based on blocksize.
Contains declaration of TPZSubCompMesh class which implements a group of computational elements as a ...
int ClassId() const override
Define the class id associated with the class.
void GetBlock(int64_t i, TPZFMatrix< TVar > &block)
Gets a block from current matrix.
Implements computational mesh. Computational Mesh.
Contains TPZSolver class which defines a abstract class of solvers which will be used by matrix class...
~TPZBlockDiagonalStructMatrix()
Contains TPZStepSolver class which defines step solvers class.
virtual TPZStructMatrix * Clone() override
int64_t NElements() const
Returns the number of elements of the vector.
void AssembleBlockDiagonal(TPZBlockDiagonal< STATE > &block)
Defines the interface of a computational element. Computational Element.
bool IsCondensed() const
Access method to return the indication whether the connect is condensed or not.