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_EXCEPTION_H
36 #ifndef BALL_SYSTEM_TIMER_H
40 #ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENTSTRATEGY_H
44 #ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H
48 #ifndef BALL_STRUCTURE_BONDORDERS_PARTIALBONDORDERASSIGNMENT_H
96 friend class PQ_Entry_;
321 virtual bool start();
346 virtual bool finish();
364 if (i >= solutions_.size())
366 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
369 int num_hydrogens = 0;
372 for (; it != solutions_[i].number_of_virtual_hydrogens.end(); it++)
373 num_hydrogens += it->second;
374 return num_hydrogens;
416 if (i >= solutions_.size())
418 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
424 return getTotalCharge_(solutions_[i]);
435 if (i >= solutions_.size())
437 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
442 return getTotalPenalty_(solutions_[i]);
452 if (i >= solutions_.size())
454 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
459 return getNumberOfNodeExpansions_(solutions_[i]);
469 if (i >= solutions_.size())
471 Log.
error() <<
"AssignBondOrderProcessor: No solution with index " << i << std::endl;
476 return getQueueSize_(solutions_[i]);
498 void resetBondOrders();
507 bool computeNextSolution(
bool apply_solution =
true);
511 void setDefaultOptions();
548 bool readAtomPenalties_() throw(Exception::FileNotFound());
558 bool preassignPenaltyClasses_();
566 int getPenaltyClass_(
Atom* atom);
584 bool precomputeBondLengthPenalties_();
597 float computeVirtualHydrogens_(
Atom* atom);
606 void storeOriginalConfiguration_();
787 #endif // BALL_STRUCTURE_ASSIGNBONDORDERPROCESSOR_H