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

Refines geometrical mesh (all the elements) num times. More...

#include <pzstrmatrixot.h>

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

Classes

struct  ThreadData
 Structure to manipulate thread to solve system equations. More...
 

Public Member Functions

 TPZStructMatrixOT ()
 
 TPZStructMatrixOT (TPZCompMesh *)
 
 TPZStructMatrixOT (TPZAutoPointer< TPZCompMesh > cmesh)
 
 TPZStructMatrixOT (const TPZStructMatrixOT &copy)
 
virtual ~TPZStructMatrixOT ()
 
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 TPZStructMatrixOTClone () 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...
 
virtual void FilterEquations (TPZVec< int64_t > &origindex, TPZVec< int64_t > &destindex) const override
 Filter out the equations which are out of the range. More...
 
void SetMaterialIds (const std::set< int > &materialids) override
 Set the set of material ids which will be considered when assembling the system. More...
 
bool ShouldCompute (int matid) const override
 Establish whether the element should be computed. More...
 
const std::set< int > & MaterialIds () override
 Returns the material ids. More...
 
- Public Member Functions inherited from TPZStructMatrixBase
virtual void SetMesh (TPZCompMesh *)
 
virtual void SetMesh (TPZAutoPointer< TPZCompMesh >)
 
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 TPZEquationFilterEquationFilter ()
 access method for the equation filter More...
 
virtual int64_t NReducedEquations () const
 number of equations after applying the filter More...
 
virtual TPZCompMeshMesh () const
 Access method for the mesh pointer. 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, TPZVec< int64_t > &NumelColors)
 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 TPZSavableCreateInstance (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 > fElBlocked
 Vectors for mesh coloring. More...
 
TPZVec< int64_t > fElSequenceColor
 
TPZVec< int64_t > fElementsComputed
 vector of the size of the elements containing 0 or 1 if the element has been computed (in the order of computation sequence) More...
 
int64_t fElementCompleted
 All elements below or equal this index have been computed. More...
 
int fSomeoneIsSleeping
 variable indicating if a thread is sleeping More...
 
pthread_mutex_t fAccessElement
 Mutexes (to choose which element is next) More...
 
pthread_cond_t fCondition
 
- Protected Attributes inherited from TPZStructMatrixBase
TPZCompMeshfMesh
 Pointer to the computational mesh from which the matrix will be generated. More...
 
TPZAutoPointer< TPZCompMeshfCompMesh
 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
 

Detailed Description

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 44 of file pzstrmatrixot.h.

Constructor & Destructor Documentation

◆ TPZStructMatrixOT() [1/4]

TPZStructMatrixOT::TPZStructMatrixOT ( )
inline

Definition at line 48 of file pzstrmatrixot.h.

◆ TPZStructMatrixOT() [2/4]

TPZStructMatrixOT::TPZStructMatrixOT ( TPZCompMesh mesh)

◆ TPZStructMatrixOT() [3/4]

TPZStructMatrixOT::TPZStructMatrixOT ( TPZAutoPointer< TPZCompMesh cmesh)

◆ TPZStructMatrixOT() [4/4]

TPZStructMatrixOT::TPZStructMatrixOT ( const TPZStructMatrixOT copy)

◆ ~TPZStructMatrixOT()

virtual TPZStructMatrixOT::~TPZStructMatrixOT ( )
inlinevirtual

Definition at line 56 of file pzstrmatrixot.h.

References Create().

Member Function Documentation

◆ Assemble() [1/3]

void TPZStructMatrixOT::Assemble ( TPZMatrix< STATE > &  mat,
TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface 
)
overridevirtual

◆ Assemble() [2/3]

virtual void TPZStructMatrixOT::Assemble ( TPZMatrix< STATE > &  mat,
TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface,
unsigned  numthreads_assemble,
unsigned  numthreads_decompose 
)
inlinevirtual

◆ Assemble() [3/3]

void TPZStructMatrixOT::Assemble ( TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface 
)
overridevirtual

◆ ClassId()

int TPZStructMatrixOT::ClassId ( ) const
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 1555 of file pzstrmatrixot.cpp.

References TPZStructMatrixBase::ClassId(), and Hash().

Referenced by Assemble().

◆ Clone()

TPZStructMatrixOT * TPZStructMatrixOT::Clone ( )
overridevirtual

Implements TPZStructMatrixBase.

Definition at line 90 of file pzstrmatrixot.cpp.

References ass_rhs, and ass_stiff.

Referenced by CreateAssemble().

◆ Create()

TPZMatrix< STATE > * TPZStructMatrixOT::Create ( )
overridevirtual

Implements TPZStructMatrixBase.

Definition at line 85 of file pzstrmatrixot.cpp.

Referenced by CreateAssemble(), and ~TPZStructMatrixOT().

◆ CreateAssemble() [1/2]

virtual TPZMatrix<STATE>* TPZStructMatrixOT::CreateAssemble ( TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface,
unsigned  numthreads_assemble,
unsigned  numthreads_decompose 
)
inlinevirtual

Definition at line 60 of file pzstrmatrixot.h.

References Assemble(), Clone(), and TPZStructMatrixBase::SetNumThreads().

◆ CreateAssemble() [2/2]

TPZMatrix< STATE > * TPZStructMatrixOT::CreateAssemble ( TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface 
)
overridevirtual

◆ ElementColoring()

void TPZStructMatrixOT::ElementColoring ( TPZCompMesh cmesh,
TPZVec< int64_t > &  elSequence,
TPZVec< int64_t > &  elSequenceColor,
TPZVec< int64_t > &  elBlocked,
TPZVec< int64_t > &  NumelColors 
)
static

Create blocks of elements to parallel processing.

elSequence (input) element sequence according to the connect sequence numbers elSequenceColor (output) the colored element sequence elBlocked the element index which needs to have been computed before assembling the element elColors (output) number of elements in each color

Definition at line 1378 of file pzstrmatrixot.cpp.

References AssembleColor(), TPZCompEl::BuildConnectList(), DebugStop, TPZCompMesh::Element(), TPZVec< T >::Fill(), MinPassIndex(), TPZCompMesh::NConnects(), TPZCompMesh::NElements(), TPZVec< T >::NElements(), TPZVec< T >::Resize(), TPZVec< T >::size(), and WhoBlockedMe().

Referenced by Assemble(), Serial_Assemble(), and TPZStructMatrixOT().

◆ FilterEquations()

virtual void TPZStructMatrixOT::FilterEquations ( TPZVec< int64_t > &  origindex,
TPZVec< int64_t > &  destindex 
) const
overridevirtual

Filter out the equations which are out of the range.

Reimplemented from TPZStructMatrixBase.

Referenced by Assemble(), TPZStructMatrixOT::ThreadData::ThreadWork(), and TPZStructMatrixOT::ThreadData::ThreadWorkResidual().

◆ MaterialIds()

const std::set<int>& TPZStructMatrixOT::MaterialIds ( )
inlineoverridevirtual

Returns the material ids.

Reimplemented from TPZStructMatrixBase.

Definition at line 120 of file pzstrmatrixot.h.

References TPZStructMatrixBase::fMaterialIds.

◆ MultiThread_Assemble() [1/2]

void TPZStructMatrixOT::MultiThread_Assemble ( TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface 
)
protectedvirtual

◆ MultiThread_Assemble() [2/2]

void TPZStructMatrixOT::MultiThread_Assemble ( TPZMatrix< STATE > &  mat,
TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface 
)
protectedvirtual

◆ OrderElement()

void TPZStructMatrixOT::OrderElement ( TPZCompMesh cmesh,
TPZVec< int64_t > &  ElementOrder 
)
static

◆ Read()

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

◆ Serial_Assemble() [1/2]

void TPZStructMatrixOT::Serial_Assemble ( TPZMatrix< STATE > &  mat,
TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface 
)
protectedvirtual

◆ Serial_Assemble() [2/2]

void TPZStructMatrixOT::Serial_Assemble ( TPZFMatrix< STATE > &  rhs,
TPZAutoPointer< TPZGuiInterface guiInterface 
)
protectedvirtual

◆ SetMaterialIds()

void TPZStructMatrixOT::SetMaterialIds ( const std::set< int > &  materialids)
overridevirtual

Set the set of material ids which will be considered when assembling the system.

Reimplemented from TPZStructMatrixBase.

Referenced by Assemble().

◆ ShouldCompute()

bool TPZStructMatrixOT::ShouldCompute ( int  matid) const
inlineoverridevirtual

Establish whether the element should be computed.

Reimplemented from TPZStructMatrixBase.

Definition at line 114 of file pzstrmatrixot.h.

References TPZStructMatrixBase::fMaterialIds.

Referenced by Serial_Assemble(), and TPZStructMatrixOT::ThreadData::ShouldCompute().

◆ Write()

void TPZStructMatrixOT::Write ( TPZStream buf,
int  withclassid 
) const
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 1633 of file pzstrmatrixot.cpp.

References TPZStructMatrixOT::ThreadData::fElBlocked, TPZStructMatrixOT::ThreadData::fElementCompleted, TPZStructMatrixOT::ThreadData::fElSequenceColor, TPZStructMatrixOT::ThreadData::fSomeoneIsSleeping, TPZStream::Write(), and TPZStructMatrixBase::Write().

Referenced by Assemble().

Friends And Related Function Documentation

◆ ThreadData

friend struct ThreadData
friend

Definition at line 190 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble().

Member Data Documentation

◆ fAccessElement

pthread_mutex_t TPZStructMatrixOT::fAccessElement
protected

Mutexes (to choose which element is next)

Definition at line 211 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble().

◆ fCondition

pthread_cond_t TPZStructMatrixOT::fCondition
protected

Definition at line 213 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble().

◆ fElBlocked

TPZVec<int64_t> TPZStructMatrixOT::fElBlocked
protected

Vectors for mesh coloring.

Definition at line 194 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble(), Serial_Assemble(), and TPZStructMatrixOT().

◆ fElementCompleted

int64_t TPZStructMatrixOT::fElementCompleted
protected

All elements below or equal this index have been computed.

Definition at line 200 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble(), and TPZStructMatrixOT().

◆ fElementsComputed

TPZVec<int64_t> TPZStructMatrixOT::fElementsComputed
protected

vector of the size of the elements containing 0 or 1 if the element has been computed (in the order of computation sequence)

Definition at line 197 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble(), and TPZStructMatrixOT().

◆ fElSequenceColor

TPZVec<int64_t> TPZStructMatrixOT::fElSequenceColor
protected

Definition at line 194 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble(), Serial_Assemble(), and TPZStructMatrixOT().

◆ fSomeoneIsSleeping

int TPZStructMatrixOT::fSomeoneIsSleeping
protected

variable indicating if a thread is sleeping

Definition at line 203 of file pzstrmatrixot.h.

Referenced by MultiThread_Assemble(), and TPZStructMatrixOT().


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