-
Notifications
You must be signed in to change notification settings - Fork 138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
REVISED: Implementation of the density tight-binding (PTB) method #963
Conversation
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
…ator Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
…s type required now Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
…t with scaled HO overlap from ptb Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
…ysis implementation Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
…RO and CPX Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de>
…ock; correct formattings. Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR applies formatting changes to many files, I recommend to split applying the formatter fprettify first in a separate and then add the new features.
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Done. Thank you for the advice, this makes life way easier. 👍 |
Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> Signed-off-by: Albert Katbashev <akatbashev@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description of the CLI options is missing (5d3648f).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a specific reason why you consider fnv
for PTB as a special case?
I tested this locally and it seems to work properly.
Signed-off-by: albert <92109627+Albkat@users.noreply.github.com>
Signed-off-by: albert <92109627+Albkat@users.noreply.github.com>
Signed-off-by: albert <92109627+Albkat@users.noreply.github.com>
…ptions Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
Signed-off-by: albert <92109627+Albkat@users.noreply.github.com>
Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de>
…imme-lab#963) * initial PTB files and directories Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * add citation and initial variables for parameter files Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * reformat code of main.F90 via fprettify Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * prepared technical environment for setup of PTB parameters and calculator Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * removed last xtb parts in PTB files, adapted to missing parameter file Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * initial inclusion of PTB parameters Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * prepared vDZP basis setup Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * coefficients and exponents of vDZP initialized Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * full relevant vDZP data included; only incorporation into tblite basis type required now Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * pre-processing options activated Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * add vDZP basis set in principle completed Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * correct errors in vDZP setup and remove deprecated code Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * overlap corresponds to PTB overlap Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * move overlaps with scaled exponents in separate subroutines, agreement with scaled HO overlap from ptb Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * all three overlap matrices present and correct; start for ML-pop analysis implementation Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * correct formatting for overlaps routine Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * format some files correctly Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Mixed Mulliken/Loewdin population analyses overlap matrices Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Clean up calculator module use, implement coordination numbers Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Include EEQ model and corresponding parameters Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * initial PTB tests, code formatting and float type assignments for DIPRO and CPX Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * added tests for EEQ, basis and ML-pop scheme; added molecule to molstock; correct formattings. Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * Initial implementation of PTB core basis Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Core valence overlap matrix finalized; better structure type translation Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * Started implementation of V_ECP Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * Vecp working, no tests yet Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * V_ECP test working, commented print statements out Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * V_ECP fully implemented, removed DEV print statements Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * preparation for modularization of parameter data Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * Finalized modularization of ECP parameters Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Modularize EEQ parameters and remove not required public parameters Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * initialize wavefunction and rename core_basis function Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * initial steps for Hamiltonian setup for PTB Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * self-energy parameterization complete and self-energies matching Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * completed self-energy and added test Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * remove wrong Vecp allocation Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * prepare H0 setup and remove unnecessary variables in tests Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * early implementation of H0, removal of highest_elem variable, move vDZP globals to vDZP module Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * final H0 implementation for off-center terms Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * H0 implementation complete Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * EEQ charges for initial shell population, removal of unnecessary data statements Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * prepared h0 unit test Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Implement Pauli XC contribution Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * add Vxc test; moved some parameters to data types, deallocate H0 Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * new formatting guidelines Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * refactored integrals in general and specifically overlap handling and prepared potential add-on to H0 Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * prepared potential for adding density-dependent terms Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * Include Hubbard parameter and corresponding test Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * prepared Hubbard parameter, coulomb matrix and potential setup Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * effective gamma shellwise and modified test Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * tests for Hubbard matrix Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Coulomb matrix implemented Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Coulomb potential added onto effective Hamiltonian together with charges complete Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * third-order electrostatics included; H matrix for first iteration fully complete and correct; TESTS missing Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * H0 test included Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * removed dummy routine for hamiltonian and refer directly to H0 (now get_hamiltonian) Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * put overlap routine in own fast and parallel routine instead of standard tblite call Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * included dipole integrals in a fast way and renamed everything from overlap to integrals and neglect '_scaled' Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * integrated test for Coulomb potential and renamed integral module; minor changes Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Solve and get density after 1st iteration Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * parallelization for get_hamiltonian; removed useless variables Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * parallelize coulomb potential Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * shell populations and charges after first iteration Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * transformed basis set from id-specific to atom-specific to setup overlap_h0 ('S^S') for second iteration Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * H0, VECP and VXC in second iteration Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Coulomb potential in second and third order implemented also for second iteration Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * self energies of +U matrix working Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Interatomic damping matrix for +U contribution Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * final H mat complete, +U potential complete Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * add potentials directly onto wfn%coeff Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * final density matrix correct, epsilon scaling implemented Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * shell pops and atomic charges correct Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * correct error in +U potential, better dev printout, correct error in dipole integral calculation, removed unnecessary prints Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Dipole moment working Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Wiberg bond orders working and parts of printout implemented Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Basic printout complete. Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Electric field implemented and better printout Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * total charge printout Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * started response implementation Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * correct ifort error since naming of subroutine and module cannot be the same Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> * H0 of response one-scf complete Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * shift calculation of elements to shell level and not re-do it in every AO iteration Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Pauli XC and ES potential in onescf working (TO-part of ES not tested yet) Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * final H matrix of onescf complete Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * removal of unnecessary code trash Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * electric field addition also working Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * dipole moment after perturbation correct Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * polarizability fully working with printout Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * better error management, removal of unnecessary printouts, better print-out Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * extend moments to quadrupole moments. CAUTION: No analog in ref. implementation, so no direct check possible. Correct print-out missing. Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Quadrupole tensor output Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * remove old xtb code snippets Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * test for +U potential and removed unnecessary printouts Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * test of final PTB results (qat, psh, wbo) Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * add test for charged species Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * included some more tests Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * modified finite-field-step for alpha to make it more robust in presence of an external field Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * polarizability test included Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * remove old code snippets Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * refactored electric property setup, calculator without mol. struc., initial IR implementation Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * completed Raman and IR implementation for PTB Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * reformat convert.f90 Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * implement actual Raman intensities Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * restructure vibspectrum printout Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * correct typo in intensity calculation Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * reformat freq io.90 Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * reformat json.f90 and prepare PTB JSON output Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * adapted JSON output to PTB Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * adapt JSON output to match PTB better Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * add bond order and shell charges to JSON printout Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * JSON output for Raman activities Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * make xtb with PTB compilable also with switched-off tblite dependency (then without PTB support) Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * CMake preparation improved Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * minor corrections for the compile process Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * reformat indentations Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> * small changes Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> * resolved last merge conflicts with periodic GFN-FF Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * reformat files consistent to formatting in main Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * preprocessor free main Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> Signed-off-by: Albert Katbashev <akatbashev@gmail.com> * update man-page and usage instructions * unify efield for PTB and GFN-FF Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> * remove the hardcoded etemp for xtb and ptb calc Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> * make the presence of param_ptb.txt non-critical Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> * update help and man pages for ptb- and Raman/polarizability-related options Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> * Update src/prog/main.F90 * Update src/prog/main.F90 * Update src/prog/main.F90 * add debug mode for dev write statements Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> * remove parameters from shared variables in OMP statement Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> --------- Signed-off-by: Marcel Müller <marcel.mueller@thch.uni-bonn.de> Signed-off-by: Marcel Mueller <marcel.mueller@thch.uni-bonn.de> Signed-off-by: albert <92109627+Albkat@users.noreply.github.com> Signed-off-by: Albert Katbashev <akatbashev@gmail.com> Co-authored-by: albert <92109627+Albkat@users.noreply.github.com> Co-authored-by: Albert Katbashev <akatbashev@gmail.com> Signed-off-by: Johannes Gorges <58849467+gorges97@users.noreply.github.com>
This pull request contains the full implementation of the PTB method as described in: J. Chem. Phys. 158, 124111 (2023) The implementation is based on infrastructure and standard routines provided by tblite. Thus, PTB is only available if
WITH_TBLITE
istrue
; in other cases, the program is terminated. A key design principle in this implementation was that the code is located in thextb
source code but (except for printouts and similar things) does not rely onxtb
infrastructure but on more moderntblite
,mctc-lib
,multicharge
routines. All empirical parameters are included in the source code, so no parameter file is necessary/possible. This includes also the vDZP basis set, as published with the ωB97X-3c method.A reference stand-alone implementation is provided in grimme-lab/ptb. The results should be similar, however, the reference implementation partially uses single-precision while the present implementation is (currently) based on double precision matrices throughout. That's why the differences can be at the level of 10⁻⁵ (charges) up to 10⁻¹ (polarizabilities).
A typical calculation is invoked via
xtb <struc_file> --ptb
. Additionally, the run type--alpha
is new and refers to the calculation of the polarizability tensor via PTB (not (yet) possible with GFNn-xTB/FF). The mixed vibrational spectra are accessible withxtb <struc_file> --ptb --hess [--alpha]
.The procedure that is undergone after the command above is the following:
src/main/setup.f90
andsrc/ptb/calculator.F90
.src/ptb/calculator.F90
and add a newtblite
wavefunction. Doing it earlier in the code would be possible but restarting PTB is not possible anyway, which is why I decided against it.twostepscf
procedure (src/ptb/twostepscf.F90
), which is designed not as a two-fold iterative cycle but as a one-shot procedure containing two diagonalizations. The reason for this design decision is mainly that the similarity between the first and the second iteration is limited – the employed routines are the same but the parameters entering and some adaptions to the variables are different for many contributions.twostepscf
works only as a wrapper module for collecting the distinct Hamiltonian contribution. Since PTB works differently compared to GFNn-xTB (many variables are re-used several times), all required overlap matrices and coordination numbers are calculated at the beginning of the actual procedure. Then, the approximated effective core potential (ECP), the shell levels, and the EEQ guess charges are calculated.After setting up the EEQ guess and the initial Coulomb matrix, the first iteration starts. Within both iterations,
H0
is collected and added onto the (constant)V_ECP
. After that, the different density-dependent potentials (2nd and 3rd-order electrostatics, Pauli-XC, DFT+U, and (if present) an external electric field are added. Each iteration ends with diagonalizing the fullH
matrix and calculating the mixed Mulliken-Löwdin charges.twostepscf
provides a complete wavefunction including the density and atomic/shell charges. Additionally, the dipole and quadrupole moments, all required integrals, and the bond orders are stored.tblite
wavefunction type is then copied onto thextb
wavefunction type to be able to usextb
property evaluation and printout routines down the road.--alpha
),numgrad_polarizability
is called after thetwostepscf
. It is a "modified" numerical differentiation of the dipole moment with respect to an infinitesimally small external electric field, in which not the standardtwostepscf
but a single diagonalization-variant inonestepscf
is called. The principle in the construction of the effective Hamiltonian is the same, however.singlepoint
routine, almost no results are printed except for a "Setup" block similar to what GFN-xTB does.xtb
and special (new) PTB routines is invoked (seeptb_property
andmain_ptb_json
).A noteworthy addition within this PR is the functionality of mixing GFNn-xTB/FF frequencies with PTB dipole moment derivatives or polarizability derivatives to obtain higher-quality IR and Raman spectra. Currently, this is limited to the combination of GFN2-xTB+PTB as shown in the PTB publication, but principle-wise this could be handled also generally in the future.
Furthermore, the correct Raman activities and absolute differential Raman scattering cross-sections (in m^2/sr) are implemented into
src/hessian.F90
andsrc/freq/io.f90
. In this course, also thevibspectrum
file was updated.The implementation comes with tests for the full Hamiltonian including the response approximation and the polarizability itself. It should work with both
meson
andCMake
.Moreover, some files were reformatted viafprettify
and the following settings:--- formatting changes were deleted from the present PR ---