49 #define SLOAN_TIME_CHUNK 60 87 std::vector< SloanGraphNode >
nodes;
89 std::vector< DofManager* >
dmans;
128 void resetAll() { startNode = endNode = nodeDistancesFlag = 0; }
134 void findPeripheralNodes();
136 int computeTrueDiameter();
138 int giveFullProfileSize();
142 double giveOptimalProfileDensity();
149 int computeProfileSize();
151 void askNewOptimalNumbering(
TimeStep *tStep);
154 void writeRenumberingTable(FILE *file);
155 int writeOptimalRenumberingTable(FILE *file);
176 void printParameters();
178 void setParameters(
int wdeg,
int wdis);
184 void tryParameters(
int wdeg,
int wdis);
188 int giveNodeWithMinDegree();
196 void initStatusAndPriority();
198 void evaluateNodeDistances();
200 void assignOldNumbers();
202 void assignNewNumbers();
204 void insertNeigborsOf(
int);
206 void modifyPriorityAround(
int);
208 int findTopPriorityInQueue();
210 void numberIsolatedNodes(
int &NextNumber,
int &labeledNodes);
222 int operator() (
const int n1,
const int n2) {
227 #endif // sloangraph_h
int startNode
Start peripheral node.
void resetAll()
Resets the receiver state. Clears the startNode, endNode and nodeDistancesFlag values.
SloanNodalDegreeOrderingCrit(SloanGraph *g)
void setWeightDegree(int w)
Sets weight degree to given value.
Class representing level structure for Sloan profile optimizer.
int giveDegree()
Return the receiver's degree.
Class representing node in undirected graph, used by Sloan profile optimizer.
Class implementing an array of integers.
int nodeDistancesFlag
Flag indicating that node distances from endNode were already computed.
int endNode
End peripheral node.
int MinimalProfileSize
Minimal profile size obtained.
Domain * domain
Domain asoociated to graph.
int WeightDistance
Integer distance weight.
void setSpineQuality(SpineQualityType q)
Select spine quality generation.
IntArray OptimalRenumberingTable
Inverse renumbering table.
std::list< int > queue
Priority queue of active or preactive nodes.
int WeightDegree
Integer degree weight.
SpineQualityType SpineQuality
std::vector< DofManager * > dmans
List of dof managers corresponding to nodes.
std::vector< SloanGraphNode > nodes
List of graph nodes.
Graph representing the undirected graph used for Sloan algorithm for symmetric matrix profile reducti...
void setWeightDistance(int w)
Sets weight distance to given value.
int OptimalWeightDistance
Optimal distance weight.
SpineQualityType
Quality type definition.
int OptimalWeightDegree
Optimal degree weight.
Domain * giveDomain()
Returns associated domain.
the oofem namespace is to define a context or scope in which all oofem names are defined.
int giveOptimalProfileSize()
Returns the optimal profile found.
IntArray & giveOptimalRenumberingTable()
Returns the optimal reverse renumbering table.
SloanGraphNode & giveNode(int num)
Return graph node.
Class representing solution step.