5 #ifndef BALL_STRUCTURE_ASSIGNBONDORDERPROCESSOR_H
6 #define BALL_STRUCTURE_ASSIGNBONDORDERPROCESSOR_H
8 #ifndef BALL_CONCEPT_PROCESSOR_H
12 #ifndef BALL_KERNEL_ATOMCONTAINER_H
16 #ifndef BALL_DATATYPE_HASHMAP_H
20 #ifndef BALL_DATATYPE_HASHSET_H
24 #ifndef BALL_KERNEL_BOND_H
28 #ifndef BALL_DATATYPE_OPTIONS_H
32 #ifndef BALL_COMMON_LIMITS_H
36 #ifndef BALL_COMMON_EXCEPTION_H
40 #ifndef BALL_SYSTEM_TIMER_H
44 #ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENTSTRATEGY_H
48 #ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H
52 #ifndef BALL_STRUCTURE_BONDORDERS_PARTIALBONDORDERASSIGNMENT_H
100 friend class PQ_Entry_;
325 virtual bool start();
350 virtual bool finish();
368 if (i >= solutions_.size())
370 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
373 int num_hydrogens = 0;
376 for (; it != solutions_[i].number_of_virtual_hydrogens.end(); it++)
377 num_hydrogens += it->second;
378 return num_hydrogens;
420 if (i >= solutions_.size())
422 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
428 return getTotalCharge_(solutions_[i]);
439 if (i >= solutions_.size())
441 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
446 return getTotalPenalty_(solutions_[i]);
456 if (i >= solutions_.size())
458 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
463 return getNumberOfNodeExpansions_(solutions_[i]);
473 if (i >= solutions_.size())
475 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
480 return getQueueSize_(solutions_[i]);
502 void resetBondOrders();
511 bool computeNextSolution(
bool apply_solution =
true);
515 void setDefaultOptions();
552 bool readAtomPenalties_() throw(Exception::FileNotFound());
562 bool preassignPenaltyClasses_();
570 int getPenaltyClass_(
Atom* atom);
588 bool precomputeBondLengthPenalties_();
601 float computeVirtualHydrogens_(
Atom* atom);
610 void storeOriginalConfiguration_();
791 #endif // BALL_STRUCTURE_ASSIGNBONDORDERPROCESSOR_H