NeoPZ
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
TPZSloanRenumbering Class Reference

#include <TPZSloanRenumbering.h>

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

Classes

struct  SList
 
struct  TNo
 

Public Member Functions

virtual void Resequence (TPZVec< int64_t > &permGather, TPZVec< int64_t > &permScatter)
 
virtual void Resequence2 (TPZVec< int64_t > &permGather, TPZVec< int64_t > &permScatter)
 
 TPZSloanRenumbering (int64_t NElements, int64_t NNodes)
 
 TPZSloanRenumbering ()
 
virtual ~TPZSloanRenumbering ()
 
- Public Member Functions inherited from TPZRenumbering
 TPZRenumbering ()
 
 TPZRenumbering (int64_t NElements, int64_t NNodes)
 
virtual ~TPZRenumbering ()
 
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...
 
void SetElementsNodes (int64_t NElements, int64_t NNodes)
 
void SetElementGraph (TPZVec< int64_t > &elgraph, TPZVec< int64_t > &elgraphindex)
 This method declares the element graph to the object. More...
 
void SetNodeWeights (TPZVec< int > &weights)
 Sets the number of equations associated with each node. More...
 
virtual void ClearDataStructures ()
 This will reset all datastructures the object may contain. More...
 
void ConvertGraph (TPZVec< int64_t > &elgraph, TPZVec< int64_t > &elgraphindex, TPZManVector< int64_t > &nodegraph, TPZManVector< int64_t > &nodegraphindex)
 Will convert an element graph defined by elgraph and elgraphindex into a node graph defined by nodegraph and nodegraphindex. More...
 
void ConvertToElementoToElementGraph (TPZVec< int64_t > &elgraph, TPZVec< int64_t > &elgraphindex, TPZVec< int64_t > &eltotelgraph, TPZVec< int > &eltoelweight, TPZVec< int64_t > &eltoelgraphindex)
 Convert a traditional elgraph to an element to element graph. More...
 
void NodeToElGraph (TPZVec< int64_t > &elgraph, TPZVec< int64_t > &elgraphindex, TPZVec< int64_t > &nodetoelgraph, TPZVec< int64_t > &nodetoelgraphindex)
 Stores the graph of nodes to elements. More...
 
int64_t ColorNodes (TPZVec< int64_t > &nodegraph, TPZVec< int64_t > &nodegraphindex, TPZVec< int > &family, TPZVec< int > &colors)
 Will assign a color to the nodes in the graph such that no two connected nodes have the same color the return value indicates the number of colors in the graph. More...
 
void Print (TPZVec< int64_t > &grapho, TPZVec< int64_t > &graphoindex, const char *name=0, std::ostream &out=std::cout)
 Prints graph. More...
 
void CornerEqs (unsigned int mincorners, int64_t nelconsider, std::set< int > &eligible, std::set< int > &cornernodes)
 Analyzes the graph, finds the corner nodes
Number of elements which should be considered for determining corner nodes. 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
 

Private Types

enum  ENodeStatus { EInactive, EPreActive, EActive, EPostActive }
 

Private Member Functions

int64_t W1 () const
 
int64_t W2 () const
 
int64_t FindHighestPriority (const SList &Q, const TPZVec< int64_t > &priority, int64_t &Qindex) const
 
void InsertNode (TNo *node)
 
TNoPopHighestPriorityNode ()
 
void TransferPriority (TNo *no, int newpriority)
 

Private Attributes

std::map< int, TNo * > fActive
 
TPZVec< TNofAllNodes
 

Additional Inherited Members

- Static Public Member Functions inherited from TPZRenumbering
static int64_t ColorElements (const TPZCompMesh *cmesh, const TPZVec< int64_t > &elementIndices, TPZVec< int64_t > &elementColors)
 Assigns a color to the elements in the elementIndices list such that two elements that share a connect have different colors. The return value indicates the number of colors. 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)
 
- Public Attributes inherited from TPZRenumbering
int fHDivPermute
 
- Protected Attributes inherited from TPZRenumbering
int64_t fNElements
 Number of elements in the graph. More...
 
int64_t fNNodes
 Number of nodes in the graph. More...
 
TPZVec< int > fNodeWeights
 Number of equations associated with each node. More...
 
TPZVec< int64_t > fElementGraph
 Node number of each element. More...
 
TPZVec< int64_t > fElementGraphIndex
 Indicates for each element the index of the first entry with fElementGraph for that element The size of this vector is fNElements+1. More...
 

Detailed Description

Definition at line 13 of file TPZSloanRenumbering.h.

Member Enumeration Documentation

◆ ENodeStatus

Enumerator
EInactive 
EPreActive 
EActive 
EPostActive 

Definition at line 92 of file TPZSloanRenumbering.h.

Constructor & Destructor Documentation

◆ TPZSloanRenumbering() [1/2]

TPZSloanRenumbering::TPZSloanRenumbering ( int64_t  NElements,
int64_t  NNodes 
)

Definition at line 6 of file TPZSloanRenumbering.cpp.

◆ TPZSloanRenumbering() [2/2]

TPZSloanRenumbering::TPZSloanRenumbering ( )

Definition at line 10 of file TPZSloanRenumbering.cpp.

Referenced by TransferPriority().

◆ ~TPZSloanRenumbering()

TPZSloanRenumbering::~TPZSloanRenumbering ( )
virtual

Definition at line 14 of file TPZSloanRenumbering.cpp.

Referenced by TransferPriority().

Member Function Documentation

◆ FindHighestPriority()

int64_t TPZSloanRenumbering::FindHighestPriority ( const SList Q,
const TPZVec< int64_t > &  priority,
int64_t &  Qindex 
) const
private

◆ InsertNode()

void TPZSloanRenumbering::InsertNode ( TNo node)
inlineprivate

◆ PopHighestPriorityNode()

TNo* TPZSloanRenumbering::PopHighestPriorityNode ( )
inlineprivate

◆ Resequence()

void TPZSloanRenumbering::Resequence ( TPZVec< int64_t > &  permGather,
TPZVec< int64_t > &  permScatter 
)
virtual

◆ Resequence2()

void TPZSloanRenumbering::Resequence2 ( TPZVec< int64_t > &  permGather,
TPZVec< int64_t > &  permScatter 
)
virtual

◆ TransferPriority()

void TPZSloanRenumbering::TransferPriority ( TNo no,
int  newpriority 
)
inlineprivate

◆ W1()

int64_t TPZSloanRenumbering::W1 ( ) const
inlineprivate

Definition at line 89 of file TPZSloanRenumbering.h.

Referenced by Resequence(), and Resequence2().

◆ W2()

int64_t TPZSloanRenumbering::W2 ( ) const
inlineprivate

Definition at line 90 of file TPZSloanRenumbering.h.

Referenced by Resequence(), and Resequence2().

Member Data Documentation

◆ fActive

std::map<int, TNo *> TPZSloanRenumbering::fActive
private

Definition at line 119 of file TPZSloanRenumbering.h.

Referenced by Resequence2().

◆ fAllNodes

TPZVec<TNo> TPZSloanRenumbering::fAllNodes
private

Definition at line 121 of file TPZSloanRenumbering.h.

Referenced by Resequence2().


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