NeoPZ
|
Refines geometrical mesh (all the elements) num times. More...
#include <pzstrmatrixgc.h>
Classes | |
struct | ThreadData |
Structure to manipulate thread to solve system equations. More... | |
Public Member Functions | |
TPZStructMatrixGC () | |
TPZStructMatrixGC (TPZCompMesh *) | |
TPZStructMatrixGC (TPZAutoPointer< TPZCompMesh > cmesh) | |
TPZStructMatrixGC (const TPZStructMatrixGC ©) | |
virtual | ~TPZStructMatrixGC () |
virtual TPZMatrix< STATE > * | Create () override |
virtual TPZMatrix< STATE > * | CreateAssemble (TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface, unsigned numthreads_assemble, unsigned numthreads_decompose) |
virtual TPZMatrix< STATE > * | CreateAssemble (TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) override |
virtual TPZStructMatrixGC * | Clone () override |
virtual void | Assemble (TPZMatrix< STATE > &mat, TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) override |
Assemble the global system of equations into the matrix which has already been created. More... | |
virtual void | Assemble (TPZMatrix< STATE > &mat, TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface, unsigned numthreads_assemble, unsigned numthreads_decompose) |
virtual void | Assemble (TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) override |
Assemble the global right hand side. More... | |
int | ClassId () const override |
Define the class id associated with the class. More... | |
void | Read (TPZStream &buf, void *context) override |
read objects from the stream More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Writes this object to the TPZStream buffer. Include the classid if withclassid = true. More... | |
Public Member Functions inherited from TPZStructMatrixBase | |
virtual void | SetMesh (TPZCompMesh *) |
virtual void | SetMesh (TPZAutoPointer< TPZCompMesh >) |
virtual void | FilterEquations (TPZVec< int64_t > &origindex, TPZVec< int64_t > &destindex) const |
Filter out the equations which are out of the range. More... | |
virtual void | SetMaterialIds (const std::set< int > &materialids) |
Set the set of material ids which will be considered when assembling the system. More... | |
virtual void | SetNumThreads (int n) |
virtual int | GetNumThreads () const |
virtual void | SetEquationRange (int64_t mineq, int64_t maxeq) |
virtual bool | HasRange () const |
Verify if a range has been specified. More... | |
virtual TPZEquationFilter & | EquationFilter () |
access method for the equation filter More... | |
virtual int64_t | NReducedEquations () const |
number of equations after applying the filter More... | |
virtual TPZCompMesh * | Mesh () const |
Access method for the mesh pointer. More... | |
virtual bool | ShouldCompute (int matid) const |
Establish whether the element should be computed. More... | |
virtual const std::set< int > & | MaterialIds () |
Returns the material ids. More... | |
int | ClassId () const override |
Define the class id associated with the class. More... | |
void | Read (TPZStream &buf, void *context) override |
read objects from the stream More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Writes this object to the TPZStream buffer. Include the classid if withclassid = true. More... | |
virtual | ~TPZStructMatrixBase () |
Public Member Functions inherited from TPZSavable | |
TPZSavable () | |
virtual | ~TPZSavable () |
virtual std::list< std::map< std::string, uint64_t > > | VersionHistory () const |
virtual std::pair< std::string, uint64_t > | Version () const |
virtual bool | Compare (TPZSavable *copy, bool override=false) |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
virtual bool | Compare (TPZSavable *copy, bool override=false) const |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
Public Member Functions inherited from TPZRegisterClassId | |
template<typename T > | |
TPZRegisterClassId (int(T::*)() const) | |
TPZRegisterClassId ()=default | |
Static Public Member Functions | |
static void | OrderElement (TPZCompMesh *cmesh, TPZVec< int64_t > &ElementOrder) |
Find the order to assemble the elements. More... | |
static void | ElementColoring (TPZCompMesh *cmesh, TPZVec< int64_t > &elSequence, TPZVec< int64_t > &elSequenceColor, TPZVec< int64_t > &elBlocked) |
Create blocks of elements to parallel processing. More... | |
Static Public Member Functions inherited from TPZSavable | |
static std::set< TPZRestoreClassBase * > & | RestoreClassSet () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::map< int, TPZRestore_t > & | ClassIdMap () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::pair< std::string, uint64_t > | NeoPZVersion () |
static void | Register (TPZRestoreClassBase *restore) |
static void | RegisterClassId (int classid, TPZRestore_t fun) |
static TPZSavable * | CreateInstance (const int &classId) |
Protected Member Functions | |
virtual void | Serial_Assemble (TPZMatrix< STATE > &mat, TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) |
Assemble the global system of equations into the matrix which has already been created. More... | |
virtual void | Serial_Assemble (TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) |
Assemble the global right hand side. More... | |
virtual void | MultiThread_Assemble (TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) |
Assemble the global right hand side. More... | |
virtual void | MultiThread_Assemble (TPZMatrix< STATE > &mat, TPZFMatrix< STATE > &rhs, TPZAutoPointer< TPZGuiInterface > guiInterface) |
Assemble the global system of equations into the matrix which has already been created. More... | |
Protected Member Functions inherited from TPZStructMatrixBase | |
TPZStructMatrixBase () | |
TPZStructMatrixBase (const TPZStructMatrixBase &) | |
TPZStructMatrixBase (TPZCompMesh *) | |
TPZStructMatrixBase (TPZAutoPointer< TPZCompMesh >) | |
Protected Attributes | |
TPZVec< int64_t > | fnextBlocked |
Vectors for mesh coloring. More... | |
TPZVec< int64_t > | felSequenceColor |
Protected Attributes inherited from TPZStructMatrixBase | |
TPZCompMesh * | fMesh |
Pointer to the computational mesh from which the matrix will be generated. More... | |
TPZAutoPointer< TPZCompMesh > | fCompMesh |
Autopointer control of the computational mesh. More... | |
TPZEquationFilter | fEquationFilter |
Object which will determine which equations will be assembled. More... | |
std::set< int > | fMaterialIds |
Set of material ids to be considered. It is a private attribute. More... | |
int | fNumThreads |
Number of threads in Assemble process. More... | |
Friends | |
struct | ThreadData |
Refines geometrical mesh (all the elements) num times.
It is responsible for a interface among Matrix and Finite Element classes. Structural Matrix
Definition at line 34 of file pzstrmatrixgc.h.
|
inline |
Definition at line 38 of file pzstrmatrixgc.h.
TPZStructMatrixGC::TPZStructMatrixGC | ( | TPZCompMesh * | mesh | ) |
Definition at line 51 of file pzstrmatrixgc.cpp.
References ElementColoring(), felSequenceColor, fnextBlocked, TPZStructMatrixBase::Mesh(), OrderElement(), RunStatsTable::start(), stat_ass_graph, and RunStatsTable::stop().
TPZStructMatrixGC::TPZStructMatrixGC | ( | TPZAutoPointer< TPZCompMesh > | cmesh | ) |
Definition at line 59 of file pzstrmatrixgc.cpp.
References ElementColoring(), felSequenceColor, fnextBlocked, TPZStructMatrixBase::Mesh(), OrderElement(), RunStatsTable::start(), stat_ass_graph, and RunStatsTable::stop().
TPZStructMatrixGC::TPZStructMatrixGC | ( | const TPZStructMatrixGC & | copy | ) |
Definition at line 67 of file pzstrmatrixgc.cpp.
References felSequenceColor, and fnextBlocked.
|
inlinevirtual |
Definition at line 46 of file pzstrmatrixgc.h.
References Create().
|
overridevirtual |
Assemble the global system of equations into the matrix which has already been created.
Implements TPZStructMatrixBase.
Definition at line 86 of file pzstrmatrixgc.cpp.
References TPZMatrix< TVar >::Cols(), DebugStop, TPZStructMatrixBase::fEquationFilter, TPZStructMatrixBase::fNumThreads, TPZEquationFilter::IsActive(), MultiThread_Assemble(), TPZEquationFilter::NActiveEquations(), TPZMatrix< TVar >::Rows(), TPZEquationFilter::Scatter(), Serial_Assemble(), RunStatsTable::start(), and RunStatsTable::stop().
Referenced by Assemble(), and CreateAssemble().
|
inlinevirtual |
Definition at line 62 of file pzstrmatrixgc.h.
References Assemble(), ClassId(), ElementColoring(), MultiThread_Assemble(), OrderElement(), Read(), Serial_Assemble(), and Write().
|
overridevirtual |
Assemble the global right hand side.
Implements TPZStructMatrixBase.
Definition at line 117 of file pzstrmatrixgc.cpp.
References DebugStop, TPZStructMatrixBase::fEquationFilter, TPZStructMatrixBase::fNumThreads, TPZEquationFilter::IsActive(), MultiThread_Assemble(), TPZEquationFilter::NActiveEquations(), TPZEquationFilter::NEqExpand(), Norm(), TPZMatrix< TVar >::Rows(), TPZEquationFilter::Scatter(), Serial_Assemble(), RunStatsTable::start(), and RunStatsTable::stop().
|
overridevirtual |
Define the class id associated with the class.
This id has to be unique for all classes A non unique id is flagged at the startup of the program
Implements TPZSavable.
Definition at line 1115 of file pzstrmatrixgc.cpp.
References TPZStructMatrixBase::ClassId(), and Hash().
Referenced by Assemble().
|
overridevirtual |
Implements TPZStructMatrixBase.
Definition at line 77 of file pzstrmatrixgc.cpp.
References ass_rhs, and ass_stiff.
Referenced by CreateAssemble().
|
overridevirtual |
Implements TPZStructMatrixBase.
Definition at line 72 of file pzstrmatrixgc.cpp.
Referenced by CreateAssemble(), and ~TPZStructMatrixGC().
|
inlinevirtual |
Definition at line 50 of file pzstrmatrixgc.h.
References Assemble(), Clone(), and TPZStructMatrixBase::SetNumThreads().
|
overridevirtual |
Reimplemented from TPZStructMatrixBase.
Definition at line 403 of file pzstrmatrixgc.cpp.
References Assemble(), TPZMatrix< TVar >::Cols(), Create(), TPZStructMatrixBase::fEquationFilter, LOGPZ_DEBUG, MAX, TPZEquationFilter::NEqExpand(), TPZMatrix< TVar >::Print(), and TPZFMatrix< TVar >::Redim().
|
static |
Create blocks of elements to parallel processing.
Definition at line 960 of file pzstrmatrixgc.cpp.
References AssembleColor(), TPZCompEl::BuildConnectList(), CanAssemble(), DebugStop, TPZCompMesh::Element(), TPZVec< T >::Fill(), MinPassIndex(), TPZCompMesh::NConnects(), TPZCompMesh::NElements(), TPZVec< T >::NElements(), RemoveEl(), TPZVec< T >::Resize(), and WhoBlockedMe().
Referenced by Assemble(), and TPZStructMatrixGC().
|
protectedvirtual |
Assemble the global right hand side.
Definition at line 464 of file pzstrmatrixgc.cpp.
References TPZGuiInterface::AmIKilled(), TPZStructMatrixGC::ThreadData::felSequenceColor, felSequenceColor, TPZStructMatrixBase::fMaterialIds, TPZStructMatrixGC::ThreadData::fnextBlocked, fnextBlocked, TPZStructMatrixBase::fNumThreads, substruct_tst14.test::numthreads, PZ_PTHREAD_CREATE, PZ_PTHREAD_JOIN, and TPZStructMatrixGC::ThreadData::ThreadWorkResidual().
Referenced by Assemble().
|
protectedvirtual |
Assemble the global system of equations into the matrix which has already been created.
Definition at line 425 of file pzstrmatrixgc.cpp.
References TPZGuiInterface::AmIKilled(), EMathematicaInput, TPZStructMatrixGC::ThreadData::felSequenceColor, felSequenceColor, TPZStructMatrixBase::fMaterialIds, TPZStructMatrixGC::ThreadData::fnextBlocked, fnextBlocked, TPZStructMatrixBase::fNumThreads, LOGPZ_DEBUG, substruct_tst14.test::numthreads, TPZMatrix< TVar >::Print(), PZ_PTHREAD_CREATE, PZ_PTHREAD_JOIN, and TPZStructMatrixGC::ThreadData::ThreadWork().
|
static |
Find the order to assemble the elements.
Definition at line 1032 of file pzstrmatrixgc.cpp.
References TPZCompEl::BuildConnectList(), TPZCompMesh::ConnectVec(), TPZCompMesh::Element(), TPZCompMesh::ElementVec(), TPZVec< T >::Fill(), TPZCompMesh::NConnects(), TPZCompMesh::NElements(), TPZVec< T >::NElements(), TPZChunkVector< T, EXP >::NElements(), and TPZVec< T >::Resize().
Referenced by Assemble(), and TPZStructMatrixGC().
|
overridevirtual |
read objects from the stream
Reimplemented from TPZSavable.
Definition at line 1119 of file pzstrmatrixgc.cpp.
References TPZStructMatrixGC::ThreadData::felSequenceColor, TPZStructMatrixGC::ThreadData::fnextBlocked, TPZStructMatrixBase::Read(), and TPZStream::Read().
Referenced by Assemble().
|
protectedvirtual |
Assemble the global system of equations into the matrix which has already been created.
Definition at line 152 of file pzstrmatrixgc.cpp.
References TPZFMatrix< TVar >::AddFel(), TPZMatrix< TVar >::AddKel(), TPZGuiInterface::AmIKilled(), TPZElementMatrix::ApplyConstraints(), TPZCompEl::CalcStiff(), TPZGeoEl::CenterPoint(), DebugStop, TPZGeoEl::Dimension(), TPZElementMatrix::EF, TPZElementMatrix::EK, TPZCompMesh::ElementVec(), EMathematicaInput, TPZElementMatrix::fConstrMat, TPZStructMatrixBase::fEquationFilter, TPZEquationFilter::Filter(), TPZElementMatrix::fMat, TPZStructMatrixBase::fMaterialIds, TPZStructMatrixBase::fMesh, TPZCompEl::HasDependency(), TPZMaterial::Id(), TPZCompEl::Index(), TPZGeoEl::Index(), LOGPZ_DEBUG, LOGPZ_ERROR, TPZCompEl::Material(), TPZEquationFilter::NActiveEquations(), TPZSubCompMesh::NeedsComputing(), TPZCompMesh::NElements(), TPZGeoEl::NSides(), TPZElementMatrix::Print(), TPZMatrix< TVar >::Print(), TPZCompEl::Reference(), TPZMatrix< TVar >::Rows(), TPZStructMatrixBase::ShouldCompute(), TPZTimer::start(), TPZTimer::stop(), and TPZGeoEl::X().
Referenced by Assemble().
|
protectedvirtual |
Assemble the global right hand side.
Definition at line 345 of file pzstrmatrixgc.cpp.
References TPZFMatrix< TVar >::AddFel(), TPZElementMatrix::ApplyConstraints(), TPZCompEl::CalcResidual(), TPZElementMatrix::ComputeDestinationIndices(), TPZElementMatrix::EF, TPZCompMesh::ElementVec(), TPZElementMatrix::fConstrMat, TPZElementMatrix::fDestinationIndex, TPZStructMatrixBase::fEquationFilter, TPZEquationFilter::Filter(), TPZElementMatrix::fMat, TPZStructMatrixBase::fMesh, TPZElementMatrix::fSourceIndex, TPZCompEl::HasDependency(), TPZMaterial::Id(), LOGPZ_DEBUG, TPZCompEl::Material(), TPZCompMesh::NElements(), TPZTimer::processName(), TPZStructMatrixBase::ShouldCompute(), TPZTimer::start(), and TPZTimer::stop().
|
overridevirtual |
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
Writes this object to the TPZStream buffer. Include the classid if withclassid = true
Reimplemented from TPZSavable.
Definition at line 1125 of file pzstrmatrixgc.cpp.
References TPZStructMatrixGC::ThreadData::felSequenceColor, TPZStructMatrixGC::ThreadData::fnextBlocked, TPZStream::Write(), and TPZStructMatrixBase::Write().
Referenced by Assemble().
|
friend |
Definition at line 146 of file pzstrmatrixgc.h.
|
protected |
Definition at line 149 of file pzstrmatrixgc.h.
Referenced by MultiThread_Assemble(), and TPZStructMatrixGC().
|
protected |
Vectors for mesh coloring.
Definition at line 149 of file pzstrmatrixgc.h.
Referenced by MultiThread_Assemble(), and TPZStructMatrixGC().