NeoPZ
|
#include <TPZSloanRenumbering.h>
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) |
TNo * | PopHighestPriorityNode () |
void | TransferPriority (TNo *no, int newpriority) |
Private Attributes | |
std::map< int, TNo * > | fActive |
TPZVec< TNo > | fAllNodes |
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 TPZSavable * | CreateInstance (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... | |
Definition at line 13 of file TPZSloanRenumbering.h.
|
private |
Enumerator | |
---|---|
EInactive | |
EPreActive | |
EActive | |
EPostActive |
Definition at line 92 of file TPZSloanRenumbering.h.
TPZSloanRenumbering::TPZSloanRenumbering | ( | int64_t | NElements, |
int64_t | NNodes | ||
) |
Definition at line 6 of file TPZSloanRenumbering.cpp.
TPZSloanRenumbering::TPZSloanRenumbering | ( | ) |
Definition at line 10 of file TPZSloanRenumbering.cpp.
Referenced by TransferPriority().
|
virtual |
Definition at line 14 of file TPZSloanRenumbering.cpp.
Referenced by TransferPriority().
|
private |
Definition at line 176 of file TPZSloanRenumbering.cpp.
References DebugStop, TPZSloanRenumbering::SList::fList, and TPZSloanRenumbering::SList::fSize.
Referenced by Resequence().
|
inlineprivate |
Definition at line 123 of file TPZSloanRenumbering.h.
References substruct_tst15.test::first, TPZSloanRenumbering::TNo::fnext, TPZSloanRenumbering::TNo::fprev, and TPZSloanRenumbering::TNo::fPriority.
Referenced by Resequence2(), and TransferPriority().
|
inlineprivate |
Definition at line 142 of file TPZSloanRenumbering.h.
References DebugStop, TPZSloanRenumbering::TNo::fnext, and TPZSloanRenumbering::TNo::fprev.
Referenced by Resequence2().
|
virtual |
Reimplemented from TPZRenumbering.
Definition at line 23 of file TPZSloanRenumbering.cpp.
References TPZCutHillMcKee::SGraph::AdjacentNodesPtr(), TPZRenumbering::ConvertGraph(), DebugStop, TPZCutHillMcKee::SGraph::Degree(), degree(), EActive, EInactive, EPostActive, EPreActive, TPZRenumbering::fElementGraph, TPZRenumbering::fElementGraphIndex, FindHighestPriority(), TPZCutHillMcKee::SGraph::fnodegraph, TPZCutHillMcKee::SGraph::fnodegraphindex, TPZSloanRenumbering::SList::fSize, MAX, TPZVec< T >::NElements(), TPZCutHillMcKee::SGraph::NNodes(), TPZCutHillMcKee::SGraph::PseudoPeripheralNodes(), TPZStack< T, NumExtAlloc >::Push(), TPZSloanRenumbering::SList::push_back(), TPZSloanRenumbering::SList::remove(), TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::Resize(), TPZCutHillMcKee::SGraph::RootedLevelStructure(), TPZManVector< T, NumExtAlloc >::Shrink(), W1(), and W2().
Referenced by TransferPriority().
|
virtual |
Definition at line 194 of file TPZSloanRenumbering.cpp.
References TPZCutHillMcKee::SGraph::AdjacentNodesPtr(), TPZRenumbering::ConvertGraph(), DebugStop, TPZCutHillMcKee::SGraph::Degree(), degree(), EActive, EInactive, EPostActive, EPreActive, fActive, fAllNodes, TPZRenumbering::fElementGraph, TPZRenumbering::fElementGraphIndex, TPZSloanRenumbering::TNo::fIndex, TPZCutHillMcKee::SGraph::fnodegraph, TPZCutHillMcKee::SGraph::fnodegraphindex, TPZSloanRenumbering::TNo::fSequenceNumber, TPZSloanRenumbering::TNo::fStatus, InsertNode(), TPZVec< T >::NElements(), TPZCutHillMcKee::SGraph::NNodes(), PopHighestPriorityNode(), TPZCutHillMcKee::SGraph::PseudoPeripheralNodes(), TPZCutHillMcKee::SGraph::RootedLevelStructure(), TPZManVector< T, NumExtAlloc >::Shrink(), TransferPriority(), W1(), and W2().
Referenced by TransferPriority().
|
inlineprivate |
Definition at line 163 of file TPZSloanRenumbering.h.
References DebugStop, substruct_tst15.test::first, TPZSloanRenumbering::TNo::fnext, TPZSloanRenumbering::TNo::fprev, TPZSloanRenumbering::TNo::fPriority, InsertNode(), Resequence(), Resequence2(), TPZSloanRenumbering(), and ~TPZSloanRenumbering().
Referenced by Resequence2().
|
inlineprivate |
Definition at line 89 of file TPZSloanRenumbering.h.
Referenced by Resequence(), and Resequence2().
|
inlineprivate |
Definition at line 90 of file TPZSloanRenumbering.h.
Referenced by Resequence(), and Resequence2().
|
private |
Definition at line 119 of file TPZSloanRenumbering.h.
Referenced by Resequence2().
Definition at line 121 of file TPZSloanRenumbering.h.
Referenced by Resequence2().