32 #ifndef CDPL_MOLPROP_PEOESIGMACHARGECALCULATOR_HPP
33 #define CDPL_MOLPROP_PEOESIGMACHARGECALCULATOR_HPP
55 class MHMOPiChargeCalculator;
80 static constexpr std::size_t DEF_NUM_ITERATIONS = 20;
85 static constexpr
double DEF_DAMPING_FACTOR = 0.48;
157 double getNbrElectronegativityAvg(std::size_t idx)
const;
168 void linkTo(AtomState* nbr_state);
170 double getCharge()
const;
171 double getElectronegativity()
const;
173 void shiftCharges(
double att_fact);
174 void updateElectronegativity();
176 double getNbrElectronegativityAvg()
const;
179 typedef std::vector<AtomState*> AtomStateList;
181 AtomStateList nbrAtomStates;
186 double enegativityP1;
190 typedef std::vector<AtomState::SharedPointer> AtomStateList;
192 std::size_t numIterations;
193 double dampingFactor;
194 AtomStateList atomStates;
195 AtomStateList implHStates;
Definition of the preprocessor macro CDPL_MOLPROP_API.
#define CDPL_MOLPROP_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Abstract base class representing a chemical atom and its bonded neighborhood.
Definition: Atom.hpp:57
Abstract base class for representations of a chemical structure as a graph of bonded atoms.
Definition: MolecularGraph.hpp:57
Calculator that uses a Modified Hückel Molecular Orbital (MHMO) treatment to compute pi-electron dens...
Definition: MHMOPiChargeCalculator.hpp:74
Calculator that uses the Partial Equalization of Orbital Electronegativities (PEOE) method of Gasteig...
Definition: PEOESigmaChargeCalculator.hpp:69
void setNumIterations(std::size_t num_iter)
Allows to specify the number of charge shifting iterations that have to be performed.
void setDampingFactor(double factor)
Allows to specify the applied damping factor.
std::shared_ptr< PEOESigmaChargeCalculator > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated PEOESigmaChargeCalculator instanc...
Definition: PEOESigmaChargeCalculator.hpp:75
double getCharge(std::size_t idx) const
Returns the calculated sigma charge of the atom with index idx.
void calculate(const Chem::MolecularGraph &molgraph)
Calculates the sigma charges and electronegativities of the atoms in the molecular graph molgraph by ...
PEOESigmaChargeCalculator & operator=(const PEOESigmaChargeCalculator &)=delete
double getDampingFactor() const
Returns the applied damping factor.
PEOESigmaChargeCalculator(const PEOESigmaChargeCalculator &)=delete
PEOESigmaChargeCalculator()
Constructs the PEOESigmaChargeCalculator instance.
double getElectronegativity(std::size_t idx) const
Returns the calculated sigma electronegativity of the atom with index idx.
PEOESigmaChargeCalculator(const Chem::MolecularGraph &molgraph)
Constructs the PEOESigmaChargeCalculator instance and calculates the sigma charges and electronegativ...
std::size_t getNumIterations() const
Returns the number of performed charge shifting iterations.
The namespace of the Chemical Data Processing Library.