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

#include <molecule.h>

Collaboration diagram for madness::Molecule:
Collaboration graph
[legend]

Public Member Functions

 Molecule ()
 Makes a molecule with zero atoms. More...
 
 Molecule (const std::string &filename)
 Read coordinates from a file. 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_charge (unsigned int i, double zeff)
 
unsigned int get_atom_number (unsigned int i)
 
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_energy_pseudo () 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 mol_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)
 

Public Attributes

std::string pointgroup_
 
std::vector< double > atomic_radii
 

Constructor & Destructor Documentation

madness::Molecule::Molecule ( )
inline

Makes a molecule with zero atoms.

References L.

Molecule::Molecule ( const std::string &  filename)

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().

Member Function Documentation

void Molecule::add_atom ( double  x,
double  y,
double  z,
double  q,
int  atn 
)
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 madness::CalculationParameters::set_molecular_info().

void Molecule::center ( )

Moves the center of nuclear charge to the origin.

Referenced by orient().

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_potential_derivative ( int  atom,
int  axis,
double  x,
double  y,
double  z 
) const
madness::Tensor< double > Molecule::get_all_coords ( ) const
std::vector< madness::Vector< double, 3 > > Molecule::get_all_coords_vec ( ) const
const Atom & Molecule::get_atom ( unsigned int  i) const
unsigned int Molecule::get_atom_number ( unsigned int  i)

Referenced by madness::SCF::SCF().

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

References pointgroup_, and madness::print().

Referenced by orient().

double Molecule::inter_atomic_distance ( unsigned int  i,
unsigned int  j 
) const
bool madness::Molecule::is_potential_defined ( unsigned int  atn) const
inline
bool madness::Molecule::is_potential_defined_atom ( int  i) const
inline
double Molecule::mol_nuclear_charge_density ( double  x,
double  y,
double  z 
) const
double Molecule::molecular_core_potential ( double  x,
double  y,
double  z 
) const
unsigned int madness::Molecule::n_core_orb ( unsigned int  atn) const
inline
unsigned int Molecule::n_core_orb_all ( ) const
int madness::Molecule::natom ( ) const
inline
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_charge_density ( double  x,
double  y,
double  z 
) const
double Molecule::nuclear_dipole ( int  axis) const
double Molecule::nuclear_repulsion_derivative ( int  i,
int  j 
) const
double Molecule::nuclear_repulsion_energy ( ) const
double Molecule::nuclear_repulsion_energy_pseudo ( ) const
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().

Referenced by main(), and madness::SCF::SCF().

void Molecule::print ( ) const
void Molecule::read_core_file ( const std::string &  filename)
void Molecule::read_file ( const std::string &  filename)
template<typename Archive >
void madness::Molecule::serialize ( Archive &  ar)
inline
void Molecule::set_all_coords ( const madness::Tensor< double > &  newcoords)
void Molecule::set_atom_charge ( unsigned int  i,
double  zeff 
)

Referenced by madness::SCF::SCF().

void Molecule::set_atom_coords ( unsigned int  i,
double  x,
double  y,
double  z 
)
void madness::Molecule::set_core_eprec ( double  value)
inline
void madness::Molecule::set_core_rcut ( double  value)
inline
void Molecule::set_eprec ( double  value)
void Molecule::set_rcut ( double  value)
double Molecule::smallest_length_scale ( ) const
double Molecule::total_nuclear_charge ( ) const

Member Data Documentation

std::vector<double> madness::Molecule::atomic_radii

Referenced by add_atom().

std::string madness::Molecule::pointgroup_

The molecular point group is automatically assigned in the identify_pointgroup function

Referenced by identify_point_group().


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