Hawaii Hybrid
Loading...
Searching...
No Matches
angles_handler.hpp
Go to the documentation of this file.
1#pragma once
2
3#ifdef __cplusplus
4#include <cmath>
5#include <vector>
6#include <Eigen/Dense>
7
8extern Eigen::Matrix3d SPhi, SPhi_dot;
9extern Eigen::Matrix3d STheta, STheta_dot;
10extern Eigen::Matrix3d Sphi1t, Sphi1t_dot;
11extern Eigen::Matrix3d Stheta1t, Stheta1t_dot;
12extern Eigen::Matrix3d Spsi1t, Spsi1t_dot;
13extern Eigen::Matrix3d S1;
14
15extern Eigen::Matrix3d Sphi2t, Sphi2t_dot;
16extern Eigen::Matrix3d Stheta2t, Stheta2t_dot;
17extern Eigen::Matrix3d Spsi2t, Spsi2t_dot;
18extern Eigen::Matrix3d S2;
19
20extern Eigen::Matrix3d Sphiem, Sphiem_dot;
21extern Eigen::Matrix3d Sthetaem, Sthetaem_dot;
22extern Eigen::Matrix3d Spsiem, Spsiem_dot;
23
24extern Eigen::Vector3d zvec, dd, dd2;
25extern Eigen::Vector3d vv1, vv2, vv1dot, vv2dot;
26
27void Sx_filler(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
28void Sx_dot_filler(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
29void Sz_filler(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
30void Sz_dot_filler(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
31void Sy_filler(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
32void Sy_dot_filler(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
33
34void Sy_filler_non_standard(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
35void Sy_dot_filler_non_standard(Eigen::Ref<Eigen::Matrix3d> m, const double sin_angle, const double cos_angle);
36
37void linear_molecule_atom_lab_to_mol(double *qlab, double *qmol);
38void linear_molecule_atom_Jacobi_mol_by_lab(Eigen::Ref<Eigen::MatrixXd> jac, double *qlab, double *qmol);
39
40void linear_molecule_linear_molecule_lab_to_mol(std::vector<double> const& qlab, std::vector<double> & qmol);
41void linear_molecule_linear_molecule_Jacobi_mol_by_lab(Eigen::Ref<Eigen::MatrixXd> jac, std::vector<double> const& qlab, std::vector<double> const& qmol);
42
43void CH4_linear_molecule_lab_to_kal(double *qlab, double *qkal);
44void CH4_linear_molecule_Jacobi_kal_by_lab(Eigen::Ref<Eigen::MatrixXd> jac, double *qlab, double *qkal);
45
46extern "C" {
47 void compute_psi_ppsi_for_linear_molecule(double eta, double pEta, double chi, double pChi, double *psi, double *ppsi);
48 void rotate_to_lab_for_linear_molecule(double dipmol[3], double diplab[3]);
49}
50#else
51 void compute_psi_ppsi_for_linear_molecule(double eta, double pEta, double chi, double pChi, double *psi, double *ppsi);
52 void rotate_to_lab_for_linear_molecule(double dipmol[3], double diplab[3]);
53#endif // __cplusplus
Eigen::Matrix3d Sphi1t
Definition angles_handler.cpp:7
void Sx_filler(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:45
Eigen::Matrix3d Sthetaem_dot
Definition angles_handler.cpp:33
Eigen::Matrix3d Stheta2t_dot
Definition angles_handler.cpp:25
void linear_molecule_linear_molecule_Jacobi_mol_by_lab(Eigen::Ref< Eigen::MatrixXd > jac, std::vector< double > const &qlab, std::vector< double > const &qmol)
Definition angles_handler.cpp:256
void CH4_linear_molecule_lab_to_kal(double *qlab, double *qkal)
Definition angles_handler.cpp:357
Eigen::Vector3d dd
Definition angles_handler.cpp:37
Eigen::Vector3d vv1
Definition angles_handler.cpp:40
void linear_molecule_linear_molecule_lab_to_mol(std::vector< double > const &qlab, std::vector< double > &qmol)
Definition angles_handler.cpp:195
Eigen::Vector3d vv1dot
Definition angles_handler.cpp:42
void Sy_filler(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:76
void Sy_filler_non_standard(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:91
Eigen::Matrix3d STheta
Definition angles_handler.cpp:5
Eigen::Matrix3d Sphi1t_dot
Definition angles_handler.cpp:20
Eigen::Matrix3d SPhi_dot
Definition angles_handler.cpp:17
Eigen::Vector3d dd2
Definition angles_handler.cpp:38
Eigen::Matrix3d Sphiem_dot
Definition angles_handler.cpp:32
Eigen::Matrix3d Spsi1t_dot
Definition angles_handler.cpp:22
Eigen::Matrix3d S1
Definition angles_handler.cpp:10
Eigen::Matrix3d Spsi2t
Definition angles_handler.cpp:14
Eigen::Matrix3d Spsi2t_dot
Definition angles_handler.cpp:26
Eigen::Matrix3d Sphi2t_dot
Definition angles_handler.cpp:24
void Sy_dot_filler_non_standard(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:99
Eigen::Matrix3d Sphi2t
Definition angles_handler.cpp:12
Eigen::Matrix3d Spsiem_dot
Definition angles_handler.cpp:34
Eigen::Matrix3d SPhi
Definition angles_handler.cpp:4
Eigen::Matrix3d Sphiem
Definition angles_handler.cpp:28
Eigen::Matrix3d Spsiem
Definition angles_handler.cpp:30
Eigen::Vector3d zvec
Definition angles_handler.cpp:36
void CH4_linear_molecule_Jacobi_kal_by_lab(Eigen::Ref< Eigen::MatrixXd > jac, double *qlab, double *qkal)
Definition angles_handler.cpp:421
Eigen::Vector3d vv2
Definition angles_handler.cpp:41
void Sy_dot_filler(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:84
Eigen::Matrix3d S2
Definition angles_handler.cpp:15
Eigen::Matrix3d Sthetaem
Definition angles_handler.cpp:29
void Sx_dot_filler(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:53
Eigen::Matrix3d STheta_dot
Definition angles_handler.cpp:18
void Sz_filler(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:60
Eigen::Matrix3d Stheta1t_dot
Definition angles_handler.cpp:21
void linear_molecule_atom_lab_to_mol(double *qlab, double *qmol)
Definition angles_handler.cpp:106
Eigen::Matrix3d Spsi1t
Definition angles_handler.cpp:9
void Sz_dot_filler(Eigen::Ref< Eigen::Matrix3d > m, const double sin_angle, const double cos_angle)
Definition angles_handler.cpp:69
Eigen::Matrix3d Stheta1t
Definition angles_handler.cpp:8
void linear_molecule_atom_Jacobi_mol_by_lab(Eigen::Ref< Eigen::MatrixXd > jac, double *qlab, double *qmol)
Definition angles_handler.cpp:140
Eigen::Vector3d vv2dot
Definition angles_handler.cpp:43
Eigen::Matrix3d Stheta2t
Definition angles_handler.cpp:13
void compute_psi_ppsi_for_linear_molecule(double eta, double pEta, double chi, double pChi, double *psi, double *ppsi)
Definition angles_handler.cpp:557
void rotate_to_lab_for_linear_molecule(double dipmol[3], double diplab[3])
Definition angles_handler.cpp:599