|
MADNESS 0.10.1
|

Functions | |
| Tensor< double > | compute_frequencies (const Molecule &molecule, const Tensor< double > &hessian, Tensor< double > &normalmodes, const bool project_tr, const bool print_hessian) |
| returns the vibrational frequencies | |
| Tensor< double > | compute_reduced_mass (const Molecule &molecule, const Tensor< double > &normalmodes) |
| Tensor< double > | projector_external_dof (const Molecule &mol) |
| compute the projector to remove transl. and rot. degrees of freedom | |
| void | remove_external_dof (Tensor< double > &hessian, const Molecule &mol) |
| remove translational degrees of freedom from the hessian | |
| Tensor< double > compute_frequencies | ( | const Molecule & | molecule, |
| const Tensor< double > & | hessian, | ||
| Tensor< double > & | normalmodes, | ||
| const bool | project_tr, | ||
| const bool | print_hessian | ||
| ) |
returns the vibrational frequencies
| [in] | hessian | the hessian matrix (not mass-weighted) |
| [out] | normalmodes | the normal modes |
| [in] | project_tr | whether to project out translation and rotation |
| [in] | print_hessian | whether to print the hessian matrix |
References madness::inner(), madness::Molecule::massweights(), molecule, madness::Molecule::natom(), madness::print(), remove_external_dof(), madness::BaseTensor::size(), and madness::syev().
Referenced by madness::Nemo::hessian().
| Tensor< double > compute_reduced_mass | ( | const Molecule & | molecule, |
| const Tensor< double > & | normalmodes | ||
| ) |
References madness::constants::atomic_mass_in_au, madness::copy(), madness::inner(), L, madness::Molecule::massweights(), molecule, mu, madness::Molecule::natom(), and projector_external_dof().
Referenced by madness::Nemo::hessian().
compute the projector to remove transl. and rot. degrees of freedom
taken from http://www.gaussian.com/g_whitepap/vib.htm I don't really understand the concept behind the projectors, but it seems to work, and it is not written down explicitly anywhere. NOTE THE ERROR IN THE FORMULAS ON THE WEBPAGE !
References madness::_(), madness::constants::atomic_mass_in_au, madness::Molecule::center_of_mass(), e(), madness::Molecule::get_atom(), madness::Atom::get_mass_in_au(), I, madness::inner(), madness::Molecule::moment_of_inertia(), madness::Molecule::natom(), norm(), madness::Tensor< T >::normf(), p(), madness::Tensor< T >::scale(), madness::syev(), madness::Molecule::translate(), madness::transpose(), v, madness::Atom::x, madness::Atom::y, and madness::Atom::z.
Referenced by compute_reduced_mass(), and remove_external_dof().
remove translational degrees of freedom from the hessian
References madness::inner(), and projector_external_dof().
Referenced by compute_frequencies().