49#define SLOAN_TIME_CHUNK 60
87 std::vector< SloanGraphNode >
nodes;
89 std::vector< DofManager* >
dmans;
136 void findPeripheralNodes();
139 int computeTrueDiameter();
141 int giveFullProfileSize();
145 double giveOptimalProfileDensity();
152 int computeProfileSize();
154 void askNewOptimalNumbering(
TimeStep *tStep);
157 void writeRenumberingTable(FILE *file);
158 int writeOptimalRenumberingTable(FILE *file);
179 void printParameters();
181 void setParameters(
int wdeg,
int wdis);
187 void tryParameters(
int wdeg,
int wdis);
191 int giveNodeWithMinDegree();
199 void initStatusAndPriority();
201 void evaluateNodeDistances();
203 void assignOldNumbers();
205 void assignNewNumbers();
207 void insertNeigborsOf(
int);
209 void modifyPriorityAround(
int);
211 int findTopPriorityInQueue();
214 void numberIsolatedNodes(
int &NextNumber,
int &labeledNodes);
225 int operator() (
const int n1,
const int n2) {
226 return graph->giveNode(n1).giveDegree() -
graph->giveNode(n2).giveDegree();
int WeightDistance
Integer distance weight.
int numberOfNodes
number of graph nodes (=numberOfNodes+numberOfElementInternalNodes)
void resetAll()
Resets the receiver state. Clears the startNode, endNode and nodeDistancesFlag values.
SpineQualityType SpineQuality
SloanGraph(Domain *d)
Constructor. Creates the graph associated to given domain.
int WeightDegree
Integer degree weight.
Domain * giveDomain()
Returns associated domain.
std::vector< DofManager * > dmans
List of dof managers corresponding to nodes.
std::vector< SloanGraphNode > nodes
List of graph nodes.
std ::list< int > queue
Priority queue of active or preactive nodes.
Domain * domain
Domain asoociated to graph.
int OptimalWeightDegree
Optimal degree weight.
IntArray OptimalRenumberingTable
SpineQualityType
Quality type definition.
int OptimalWeightDistance
Optimal distance weight.
void setWeightDegree(int w)
Sets weight degree to given value.
int MinimalProfileSize
Minimal profile size obtained.
void setWeightDistance(int w)
Sets weight distance to given value.
int nodeDistancesFlag
Flag indicating that node distances from endNode were already computed.
void setSpineQuality(SpineQualityType q)
Select spine quality generation.
int endNode
End peripheral node.
int startNode
Start peripheral node.
IntArray & giveOptimalRenumberingTable()
Returns the optimal reverse renumbering table.
int giveOptimalProfileSize()
Returns the optimal profile found.
SloanNodalDegreeOrderingCrit(SloanGraph *g)