MADNESS  version 0.9
Public Member Functions | Public Attributes | List of all members
Molecule Class Reference

#include <molecule.h>

Public Member Functions

 Molecule ()
 Makes a molecule with zero atoms. More...
 
 Molecule (const std::string &filename, const std::string &geomname="")
 Read coordinates from a file. More...
 
void read_file (const std::string &filename)
 
void read_file (const std::string &filename, const std::string &geomname)
 
void read_core_file (const std::string &filename)
 
std::string guess_file () const
 
unsigned int n_core_orb_all () const
 
unsigned int n_core_orb (unsigned int atn) const
 
unsigned int get_core_l (unsigned int atn, unsigned int c) const
 
double get_core_bc (unsigned int atn, unsigned int c) const
 
double core_eval (int atom, unsigned int core, int m, double x, double y, double z) const
 
double core_derivative (int atom, int axis, unsigned int core, int m, double x, double y, double z) const
 
bool is_potential_defined (unsigned int atn) const
 
bool is_potential_defined_atom (int i) const
 
void add_atom (double x, double y, double z, double q, int atn)
 
int natom () const
 
void set_atom_coords (unsigned int i, double x, double y, double z)
 
madness::Tensor< double > get_all_coords () const
 
std::vector< madness::Vector
< double, 3 > > 
get_all_coords_vec () const
 
void set_all_coords (const madness::Tensor< double > &newcoords)
 
void set_eprec (double value)
 updates rcuts with given eprec More...
 
void set_rcut (double value)
 
void set_core_eprec (double value)
 
void set_core_rcut (double value)
 
double get_eprec () const
 
double bounding_cube () const
 Returns the half width of the bounding cube. More...
 
const Atomget_atom (unsigned int i) const
 
void print () const
 
double inter_atomic_distance (unsigned int i, unsigned int j) const
 
double nuclear_repulsion_energy () const
 
double nuclear_repulsion_derivative (int i, int j) const
 
double nuclear_dipole (int axis) const
 
double nuclear_charge_density (double x, double y, double z) const
 
double smallest_length_scale () const
 
void identify_point_group ()
 
void center ()
 Moves the center of nuclear charge to the origin. More...
 
void orient ()
 Centers and orients the molecule in a standard manner. More...
 
double total_nuclear_charge () const
 
double nuclear_attraction_potential (double x, double y, double z) const
 
double molecular_core_potential (double x, double y, double z) const
 
double core_potential_derivative (int atom, int axis, double x, double y, double z) const
 
double nuclear_attraction_potential_derivative (int atom, int axis, double x, double y, double z) const
 
template<typename Archive >
void serialize (Archive &ar)
 
 Molecule ()
 Makes a molecule with zero atoms. More...
 
void read_file (const std::string &filename)
 
void read_core_file (const std::string &filename)
 
std::string guess_file () const
 
unsigned int n_core_orb_all () const
 
unsigned int n_core_orb (unsigned int atn) const
 
unsigned int get_core_l (unsigned int atn, unsigned int c) const
 
double get_core_bc (unsigned int atn, unsigned int c) const
 
double core_eval (int atom, unsigned int core, int m, double x, double y, double z) const
 
double core_derivative (int atom, int axis, unsigned int core, int m, double x, double y, double z) const
 
bool is_potential_defined (unsigned int atn) const
 
bool is_potential_defined_atom (int i) const
 
void add_atom (double x, double y, double z, double q, int atn)
 
int natom () const
 
void set_atom_coords (unsigned int i, double x, double y, double z)
 
madness::Tensor< double > get_all_coords () const
 
std::vector< madness::Vector
< double, 3 > > 
get_all_coords_vec () const
 
std::vector< double > charge_center ()
 get the coordinates of the nuclear charge center More...
 
void set_all_coords (const madness::Tensor< double > &newcoords)
 
void set_eprec (double value)
 
void set_rcut (double value)
 
void set_core_eprec (double value)
 
void set_core_rcut (double value)
 
double get_eprec () const
 
double bounding_cube () const
 
const Atomget_atom (unsigned int i) const
 
void print () const
 
double inter_atomic_distance (unsigned int i, unsigned int j) const
 
double nuclear_repulsion_energy () const
 
double nuclear_repulsion_derivative (int i, int j) const
 
double nuclear_dipole (int axis) const
 
double nuclear_charge_density (double x, double y, double z) const
 
double smallest_length_scale () const
 
void identify_point_group ()
 
void center ()
 
void orient ()
 
double Qnxx () const
 
double Qnyy () const
 
double Qnzz () const
 
double Qnxz () const
 
double Qnxy () const
 
double Qnyz () const
 
double total_nuclear_charge () const
 
double nuclear_attraction_potential (double x, double y, double z) const
 
double molecular_core_potential (double x, double y, double z) const
 
double core_potential_derivative (int atom, int axis, double x, double y, double z) const
 
double nuclear_attraction_potential_derivative (int atom, int axis, double x, double y, double z) const
 
template<typename Archive >
void serialize (Archive &ar)
 

Public Attributes

std::vector< double > atomic_radii
 

Constructor & Destructor Documentation

Molecule::Molecule ( )
inline

Makes a molecule with zero atoms.

References L.

Molecule::Molecule ( const std::string &  filename,
const std::string &  geomname = "" 
)

Read coordinates from a file.

Scans the file for the first geometry block in the format

geometry
tag x y z
...
end

The charge q is inferred from the tag which is assumed to be the standard symbol for an element. Same as the simplest NWChem format. For ghost atoms (bq ) the charge is read as a fifth field on the line.

This code is just for the examples ... don't trust it!

References read_file().

Molecule::Molecule ( )
inline

Makes a molecule with zero atoms.

References L.

Member Function Documentation

void Molecule::add_atom ( double  x,
double  y,
double  z,
double  q,
int  atn 
)
void Molecule::add_atom ( double  x,
double  y,
double  z,
double  q,
int  atn 
)

References c, and madness::smoothing_parameter().

Referenced by read_file().

double Molecule::bounding_cube ( ) const
double Molecule::bounding_cube ( ) const

Returns the half width of the bounding cube.

The molecule will be contained in the cube [-L,+L].

References mpfr::fabs(), L, and max.

Referenced by SCFParameters::set_molecular_info().

void Molecule::center ( )
void Molecule::center ( )

Moves the center of nuclear charge to the origin.

Referenced by orient().

std::vector< double > Molecule::charge_center ( )

get the coordinates of the nuclear charge center

References c.

double Molecule::core_derivative ( int  atom,
int  axis,
unsigned int  core,
int  m,
double  x,
double  y,
double  z 
) const
double Molecule::core_derivative ( int  atom,
int  axis,
unsigned int  core,
int  m,
double  x,
double  y,
double  z 
) const
double Molecule::core_eval ( int  atom,
unsigned int  core,
int  m,
double  x,
double  y,
double  z 
) const
double Molecule::core_eval ( int  atom,
unsigned int  core,
int  m,
double  x,
double  y,
double  z 
) const
double Molecule::core_potential_derivative ( int  atom,
int  axis,
double  x,
double  y,
double  z 
) const
double Molecule::core_potential_derivative ( int  atom,
int  axis,
double  x,
double  y,
double  z 
) const
madness::Tensor<double> Molecule::get_all_coords ( ) const
madness::Tensor< double > Molecule::get_all_coords ( ) const

References c, get_atom(), natom(), Atom::x, Atom::y, and Atom::z.

std::vector< madness::Vector<double,3> > Molecule::get_all_coords_vec ( ) const
std::vector< madness::Vector< double, 3 > > Molecule::get_all_coords_vec ( ) const

References c, get_atom(), natom(), Atom::x, Atom::y, and Atom::z.

const Atom& Molecule::get_atom ( unsigned int  i) const
const Atom & Molecule::get_atom ( unsigned int  i) const
double Molecule::get_core_bc ( unsigned int  atn,
unsigned int  c 
) const
inline
double Molecule::get_core_bc ( unsigned int  atn,
unsigned int  c 
) const
inline
unsigned int Molecule::get_core_l ( unsigned int  atn,
unsigned int  c 
) const
inline
unsigned int Molecule::get_core_l ( unsigned int  atn,
unsigned int  c 
) const
inline
double Molecule::get_eprec ( ) const
inline
double Molecule::get_eprec ( ) const
inline
std::string Molecule::guess_file ( ) const
inline
std::string Molecule::guess_file ( ) const
inline
void Molecule::identify_point_group ( )
void Molecule::identify_point_group ( )

References madness::print().

Referenced by orient().

double Molecule::inter_atomic_distance ( unsigned int  i,
unsigned int  j 
) const
double Molecule::inter_atomic_distance ( unsigned int  i,
unsigned int  j 
) const
bool Molecule::is_potential_defined ( unsigned int  atn) const
inline
bool Molecule::is_potential_defined ( unsigned int  atn) const
inline
bool Molecule::is_potential_defined_atom ( int  i) const
inline
bool Molecule::is_potential_defined_atom ( int  i) const
inline
double Molecule::molecular_core_potential ( double  x,
double  y,
double  z 
) const
double Molecule::molecular_core_potential ( double  x,
double  y,
double  z 
) const
unsigned int Molecule::n_core_orb ( unsigned int  atn) const
inline
unsigned int Molecule::n_core_orb ( unsigned int  atn) const
inline
unsigned int Molecule::n_core_orb_all ( ) const
unsigned int Molecule::n_core_orb_all ( ) const
int Molecule::natom ( ) const
inline
int Molecule::natom ( ) const
inline
double Molecule::nuclear_attraction_potential ( double  x,
double  y,
double  z 
) const
double Molecule::nuclear_attraction_potential ( double  x,
double  y,
double  z 
) const
double Molecule::nuclear_attraction_potential_derivative ( int  atom,
int  axis,
double  x,
double  y,
double  z 
) const
double Molecule::nuclear_attraction_potential_derivative ( int  atom,
int  axis,
double  x,
double  y,
double  z 
) const
double Molecule::nuclear_charge_density ( double  x,
double  y,
double  z 
) const
double Molecule::nuclear_charge_density ( double  x,
double  y,
double  z 
) const
double Molecule::nuclear_dipole ( int  axis) const
double Molecule::nuclear_dipole ( int  axis) const
double Molecule::nuclear_repulsion_derivative ( int  i,
int  j 
) const
double Molecule::nuclear_repulsion_derivative ( int  i,
int  j 
) const
double Molecule::nuclear_repulsion_energy ( ) const
double Molecule::nuclear_repulsion_energy ( ) const
void Molecule::orient ( )
void Molecule::orient ( )

Centers and orients the molecule in a standard manner.

References center(), mpfr::fabs(), I(), identify_point_group(), madness::inner(), k, L, madness::print(), and madness::syev().

void Molecule::print ( ) const
void Molecule::print ( ) const
double Molecule::Qnxx ( ) const

References mpfr::sum().

double Molecule::Qnxy ( ) const

References mpfr::sum().

double Molecule::Qnxz ( ) const

References mpfr::sum().

double Molecule::Qnyy ( ) const

References mpfr::sum().

double Molecule::Qnyz ( ) const

References mpfr::sum().

double Molecule::Qnzz ( ) const

References mpfr::sum().

void Molecule::read_core_file ( const std::string &  filename)
void Molecule::read_core_file ( const std::string &  filename)
void Molecule::read_file ( const std::string &  filename)
void Molecule::read_file ( const std::string &  filename)

Referenced by Molecule().

void Molecule::read_file ( const std::string &  filename,
const std::string &  geomname 
)
template<typename Archive >
void Molecule::serialize ( Archive &  ar)
inline
template<typename Archive >
void Molecule::serialize ( Archive &  ar)
inline

References atomic_radii.

void Molecule::set_all_coords ( const madness::Tensor< double > &  newcoords)
void Molecule::set_all_coords ( const madness::Tensor< double > &  newcoords)

References c, and natom().

void Molecule::set_atom_coords ( unsigned int  i,
double  x,
double  y,
double  z 
)
void Molecule::set_atom_coords ( unsigned int  i,
double  x,
double  y,
double  z 
)
void Molecule::set_core_eprec ( double  value)
inline
void Molecule::set_core_eprec ( double  value)
inline
void Molecule::set_core_rcut ( double  value)
inline
void Molecule::set_core_rcut ( double  value)
inline
void Molecule::set_eprec ( double  value)
void Molecule::set_eprec ( double  value)

updates rcuts with given eprec

References CorePotentialManager::set_eprec(), and madness::smoothing_parameter().

void Molecule::set_rcut ( double  value)
void Molecule::set_rcut ( double  value)
double Molecule::smallest_length_scale ( ) const
double Molecule::smallest_length_scale ( ) const

References max.

Referenced by SCFParameters::set_molecular_info().

double Molecule::total_nuclear_charge ( ) const
double Molecule::total_nuclear_charge ( ) const

Member Data Documentation

std::vector<double> Molecule::atomic_radii

Referenced by serialize().


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