Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
core::chemical::ElectronConfiguration Class Reference

describes the electron configuration of atoms More...

#include <ElectronConfiguration.hh>

Public Types

enum  PrincipalQuantumNumber {
  e_1, e_2, e_3, e_4,
  e_5, e_6, e_7, MaxPrincipleQuantumNumber
}
 
enum  AngularMomentumQuantumNumber {
  e_S, e_P, e_D, e_F,
  MaxAngularMomentumQuantumNumber
}
 

Public Member Functions

 ElectronConfiguration ()
 default constructor More...
 
 ElectronConfiguration (const core::Size VALENCE_ELECTRONS_SP, const core::Size VALENCE_ELECTRONS_SPD, const core::Size NUMBER_ELECTRONS_1S, const core::Size NUMBER_ELECTRONS_1P, const core::Size NUMBER_ELECTRONS_1D, const core::Size NUMBER_ELECTRONS_1F, const core::Size NUMBER_ELECTRONS_2S, const core::Size NUMBER_ELECTRONS_2P, const core::Size NUMBER_ELECTRONS_2D, const core::Size NUMBER_ELECTRONS_2F, const core::Size NUMBER_ELECTRONS_3S, const core::Size NUMBER_ELECTRONS_3P, const core::Size NUMBER_ELECTRONS_3D, const core::Size NUMBER_ELECTRONS_3F, const core::Size NUMBER_ELECTRONS_4S, const core::Size NUMBER_ELECTRONS_4P, const core::Size NUMBER_ELECTRONS_4D, const core::Size NUMBER_ELECTRONS_4F, const core::Size NUMBER_ELECTRONS_5S, const core::Size NUMBER_ELECTRONS_5P, const core::Size NUMBER_ELECTRONS_5D, const core::Size NUMBER_ELECTRONS_5F, const core::Size NUMBER_ELECTRONS_6S, const core::Size NUMBER_ELECTRONS_6P, const core::Size NUMBER_ELECTRONS_6D, const core::Size NUMBER_ELECTRONS_6F, const core::Size NUMBER_ELECTRONS_7S, const core::Size NUMBER_ELECTRONS_7P, const core::Size NUMBER_ELECTRONS_7D, const core::Size NUMBER_ELECTRONS_7F)
 construct from actual number of electrons More...
 
core::Size valence_electrons_s () const
 return number ValenceElectrons in the sigma valence orbitals More...
 
core::Size unpaired_valence_electrons_sp () const
 return the number of valence electrons in SP orbitals More...
 
core::Size valence_electrons_p () const
 
core::Size valence_electrons_sp () const
 
core::Size max_valence_electrons_sp () const
 
core::Size valence_electrons_spd () const
 
core::Size operator() (const PrincipalQuantumNumber PRINCIPAL_QUANTUM_NUMBER, const AngularMomentumQuantumNumber ANGULAR_MOMENTUM_QUANTUM_NUMBER) const
 number of electrons in that orbital More...
 
core::Size operator() (const AngularMomentumQuantumNumber ANGULAR_MOMENTUM_QUANTUM_NUMBER) const
 number of electrons in the valence orbital More...
 
std::istream & read (std::istream &ISTREAM)
 read from std::istream More...
 
std::ostream & write (std::ostream &OSTREAM) const
 write to std::ostream More...
 

Static Public Member Functions

static std::vector
< std::string > const & 
PrincipalQuantumNumber_strings ()
 
static std::vector
< std::string > const & 
AngularMomentumQuantumNumber_strings ()
 
static const std::string & get_descriptor (const PrincipalQuantumNumber &NUM)
 PrincipalQuantumNumber as string. More...
 
static PrincipalQuantumNumber get_principal_quantum_number (std::string const &STR)
 PrincipalQuantumNumber from string. More...
 
static const std::string & get_descriptor (const AngularMomentumQuantumNumber &NUM)
 AngularMomentumQuantumNumber as string. More...
 
static AngularMomentumQuantumNumber get_angular_momentum_quantum_number (std::string const &STR)
 AngularMomentumQuantumNumber as string. More...
 

Static Private Member Functions

static std::vector
< std::vector< core::Size >
> const & 
s_MaxElectronsInOrbital ()
 maximum electron for each orbital More...
 

Private Attributes

core::Size valence_electrons_sp_
 number S and P valence electrons (main group 1,...,8) More...
 
core::Size valence_electrons_spd_
 number S, P, and D valence electrons (group 1,...,18) More...
 
core::Size electrons_ [MaxPrincipleQuantumNumber][4]
 ElectronConfiguration. More...
 
core::Size valence_quantum_number_
 last quantum number with a non-zero number of electrons More...
 

Detailed Description

describes the electron configuration of atoms

Describes the electron configuration of an atom on quantum chemistry level.

See also
example_chemistry_electron_configuration.cpp
Author
woetzen, karakam
Date
10/28/2007

Member Enumeration Documentation

Enumerator
e_S 
e_P 
e_D 
e_F 
MaxAngularMomentumQuantumNumber 
Enumerator
e_1 
e_2 
e_3 
e_4 
e_5 
e_6 
e_7 
MaxPrincipleQuantumNumber 

Constructor & Destructor Documentation

core::chemical::ElectronConfiguration::ElectronConfiguration ( )
core::chemical::ElectronConfiguration::ElectronConfiguration ( const core::Size  VALENCE_ELECTRONS_SP,
const core::Size  VALENCE_ELECTRONS_SPD,
const core::Size  NUMBER_ELECTRONS_1S,
const core::Size  NUMBER_ELECTRONS_1P,
const core::Size  NUMBER_ELECTRONS_1D,
const core::Size  NUMBER_ELECTRONS_1F,
const core::Size  NUMBER_ELECTRONS_2S,
const core::Size  NUMBER_ELECTRONS_2P,
const core::Size  NUMBER_ELECTRONS_2D,
const core::Size  NUMBER_ELECTRONS_2F,
const core::Size  NUMBER_ELECTRONS_3S,
const core::Size  NUMBER_ELECTRONS_3P,
const core::Size  NUMBER_ELECTRONS_3D,
const core::Size  NUMBER_ELECTRONS_3F,
const core::Size  NUMBER_ELECTRONS_4S,
const core::Size  NUMBER_ELECTRONS_4P,
const core::Size  NUMBER_ELECTRONS_4D,
const core::Size  NUMBER_ELECTRONS_4F,
const core::Size  NUMBER_ELECTRONS_5S,
const core::Size  NUMBER_ELECTRONS_5P,
const core::Size  NUMBER_ELECTRONS_5D,
const core::Size  NUMBER_ELECTRONS_5F,
const core::Size  NUMBER_ELECTRONS_6S,
const core::Size  NUMBER_ELECTRONS_6P,
const core::Size  NUMBER_ELECTRONS_6D,
const core::Size  NUMBER_ELECTRONS_6F,
const core::Size  NUMBER_ELECTRONS_7S,
const core::Size  NUMBER_ELECTRONS_7P,
const core::Size  NUMBER_ELECTRONS_7D,
const core::Size  NUMBER_ELECTRONS_7F 
)

construct from actual number of electrons

Member Function Documentation

std::vector< std::string > const & core::chemical::ElectronConfiguration::AngularMomentumQuantumNumber_strings ( )
static
ElectronConfiguration::AngularMomentumQuantumNumber core::chemical::ElectronConfiguration::get_angular_momentum_quantum_number ( std::string const &  STR)
static

AngularMomentumQuantumNumber as string.

Returns
NUM the AngularMomentumQuantumNumber desired
Parameters
theAngularMomentumQuantumNumber as string

References AngularMomentumQuantumNumber_strings(), and MaxAngularMomentumQuantumNumber.

const std::string & core::chemical::ElectronConfiguration::get_descriptor ( const PrincipalQuantumNumber NUM)
static

PrincipalQuantumNumber as string.

Parameters
NUMthe PrincipalQuantumNumber desired
Returns
the PrincipalQuantumNumber as string

References PrincipalQuantumNumber_strings().

const std::string & core::chemical::ElectronConfiguration::get_descriptor ( const AngularMomentumQuantumNumber NUM)
static

AngularMomentumQuantumNumber as string.

Parameters
NUMthe AngularMomentumQuantumNumber desired
Returns
the AngularMomentumQuantumNumber as string

References AngularMomentumQuantumNumber_strings().

ElectronConfiguration::PrincipalQuantumNumber core::chemical::ElectronConfiguration::get_principal_quantum_number ( std::string const &  STR)
static

PrincipalQuantumNumber from string.

Returns
NUM the PrincipalQuantumNumber desired
Parameters
thePrincipalQuantumNumber as string

References MaxPrincipleQuantumNumber, and PrincipalQuantumNumber_strings().

core::Size core::chemical::ElectronConfiguration::max_valence_electrons_sp ( ) const
Returns
the maximum number of electrons in SP orbitals for the noble gas in this period

References e_P, e_S, s_MaxElectronsInOrbital(), and valence_quantum_number_.

Referenced by unpaired_valence_electrons_sp().

core::Size core::chemical::ElectronConfiguration::operator() ( const PrincipalQuantumNumber  PRINCIPAL_QUANTUM_NUMBER,
const AngularMomentumQuantumNumber  ANGULAR_MOMENTUM_QUANTUM_NUMBER 
) const
inline

number of electrons in that orbital

Parameters
PRINCIPAL_QUANTUM_NUMBER1, 2, 3, 4, 5, 6. or 7
ANGULAR_MOMENTUM_QUANTUM_NUMBERS, P, D, or F
Returns
number of electrons in that particular orbital indicated by PRINCIPAL_QUANTUM_NUMBER and ANGULAR_MOMENTUM_QUANTUM_NUMBER

References electrons_.

core::Size core::chemical::ElectronConfiguration::operator() ( const AngularMomentumQuantumNumber  ANGULAR_MOMENTUM_QUANTUM_NUMBER) const
inline

number of electrons in the valence orbital

Parameters
ANGULAR_MOMENTUM_QUANTUM_NUMBERS, P, D, or F
Returns
number of electrons in the valence orbital indicated by ANGULAR_MOMENTUM_QUANTUM_NUMBER

References electrons_, and valence_quantum_number_.

std::vector< std::string > const & core::chemical::ElectronConfiguration::PrincipalQuantumNumber_strings ( )
static
std::istream & core::chemical::ElectronConfiguration::read ( std::istream &  ISTREAM)

read from std::istream

Parameters
ISTREAMinput stream
Returns
istream which was read from

References electrons_, MaxAngularMomentumQuantumNumber, MaxPrincipleQuantumNumber, core::chemical::gasteiger::safe_read(), valence_electrons_sp_, valence_electrons_spd_, and valence_quantum_number_.

Referenced by core::chemical::operator>>().

std::vector< std::vector< Size > > const & core::chemical::ElectronConfiguration::s_MaxElectronsInOrbital ( )
staticprivate

maximum electron for each orbital

Referenced by max_valence_electrons_sp().

core::Size core::chemical::ElectronConfiguration::unpaired_valence_electrons_sp ( ) const
inline

return the number of valence electrons in SP orbitals

References max_valence_electrons_sp(), protocols::mean_field::min(), and valence_electrons_sp_.

core::Size core::chemical::ElectronConfiguration::valence_electrons_p ( ) const
inline
Returns
number ValenceElectrons in the pi valence orbitals

References e_P, electrons_, and valence_quantum_number_.

Referenced by core::chemical::Element::is_conjugatable().

core::Size core::chemical::ElectronConfiguration::valence_electrons_s ( ) const
inline

return number ValenceElectrons in the sigma valence orbitals

References e_S, electrons_, and valence_quantum_number_.

core::Size core::chemical::ElectronConfiguration::valence_electrons_sp ( ) const
Returns
number valence_electrons_sp

References valence_electrons_sp_.

core::Size core::chemical::ElectronConfiguration::valence_electrons_spd ( ) const
Returns
number valence_electrons_spd
number valence_electrons_sp

References valence_electrons_spd_.

std::ostream & core::chemical::ElectronConfiguration::write ( std::ostream &  OSTREAM) const

write to std::ostream

Parameters
OSTREAMoutput stream
INDENTnumber of indentations
Returns
ostream which was written to
Parameters
OSTREAMoutput stream
Returns
ostream which was written to

References electrons_, MaxAngularMomentumQuantumNumber, MaxPrincipleQuantumNumber, core::chemical::gasteiger::safe_write(), valence_electrons_sp_, valence_electrons_spd_, and valence_quantum_number_.

Referenced by core::chemical::operator<<().

Member Data Documentation

core::Size core::chemical::ElectronConfiguration::electrons_[MaxPrincipleQuantumNumber][4]
private
core::Size core::chemical::ElectronConfiguration::valence_electrons_sp_
private

number S and P valence electrons (main group 1,...,8)

Referenced by read(), unpaired_valence_electrons_sp(), valence_electrons_sp(), and write().

core::Size core::chemical::ElectronConfiguration::valence_electrons_spd_
private

number S, P, and D valence electrons (group 1,...,18)

Referenced by read(), valence_electrons_spd(), and write().

core::Size core::chemical::ElectronConfiguration::valence_quantum_number_
private

last quantum number with a non-zero number of electrons

Referenced by max_valence_electrons_sp(), operator()(), read(), valence_electrons_p(), valence_electrons_s(), and write().


The documentation for this class was generated from the following files: