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 More... | |
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 More... | |
void | remove_external_dof (Tensor< double > &hessian, const Molecule &mol) |
remove translational degrees of freedom from the hessian More... | |
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(), madness::detail::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().