Spørgsmål:
Konvertering af Hessian fra interne koordinater til kartesiske koordinater
mrnicegyu11
2017-06-02 16:03:48 UTC
view on stackexchange narkive permalink

Jeg har udført en CASPT2-frekvensberegning ved hjælp af MOLCAS8-programpakken. Jeg har brug for den fulde kartesiske hessiske matrix som input til en efterfølgende programpakke.

MOLCAS8 udfører CASPT2-frekvensberegninger numerisk. Programmet MCKINLEY kaldes til dette formål, men det er nu min opfattelse, at alle numeriske sekundære afledte beregninger i MOLCAS håndteres ikke af MCKINLEY , men af ​​det næppe dokumenterede modul supermac . Under alle omstændigheder er Hessian fuldt udskrevet i interne koordinater, når beregningen er afsluttet. For et system med 10 atomer har den interne Hessian størrelse 24 x 24, hvilket antyder ikke-redundante interne koordinater (MOLCAS kalder dem "primitive interne koordinater").

Er der nogen der kender en software, der er i stand til at transformere en hessisk matrix fra interne koordinater til kartesiske koordinater? Jeg er klar over, at dette sandsynligvis vil være kompliceret, da interne koordinater ikke er så entydige og ligetil som kartesianerne. Min første søgningsindsats gav imidlertid ikke en enkelt softwarepakke, der var i stand til at omdanne en beregnet Hessian i interne koordinater til Cartesians. Enhver hjælp ville blive værdsat!

Alternativt kender nogen en kvantekemisk programpakke, hvor jeg muligvis kan få en fuld kartesisk hessian på CASPT2-niveau?

Jeg ved ikke, om dette hjælper, men MOLCAS ser også ud til at udskrive kraftkonstanterne for hvert atom i kartesiske koordinater. Desuden produceres en .molden -fil, hvor de normale tilstande er inkluderet. Den fulde Hessian ser ikke ud til at være skrevet til denne Molden-fil.

Ikke sikker på, om dette er nyttigt, men tjek nøgleordet "kartesisk" til modulet Slapaf. https://jellby.altervista.org/manual/users.guide/programs/slapaf.html?highlight=slapaf
24 elementer / dimension følger $ 3N-6 $ -reglen for antallet af normale tilstande for et ikke-lineært molekyle og indebærer ikke nødvendigvis et koordinatsystem frem for et andet.
Tre svar:
Michael Banck
2017-06-02 21:26:19 UTC
view on stackexchange narkive permalink

BAGEL ( http://nubakery.org/ og https://github.com/nubakery/bagel) har CASPT2 analytiske gradienter og kan køre frekvensberegninger.

Den forberedes i øjeblikket til 1.0-udgivelse, så den kan stadig have fejl. På den anden side er det frit tilgængeligt under GPL.

Hvad angår konvertering af Hessian, kan det være nyttigt at se på INTDER-programmet, som (blandt andre?) Er en del af PSI3-pakken med programmer tilgængelige her: https://sourceforge.net/projects/psicode/files/psi/3.4.0/psi-3.4.0.tar.gz/download - PSI3 er også under GPL .

Manualsiden til INTDER er her: https://manned.org/intder og den siger:

"Tving feltfeltstransformationer mellem kartesisk og generelle interne koordinatrum op til fjerde orden, inklusive ikke-stationære referencestrukturer. Både fremadgående og omvendte transformationer er mulige. Derfor kan kraftfelter ved hjælp af mellemliggende kartesiske koordinater overføres mellem forskellige repræsentationer i det indre rum. "

Hvorvidt eller ej det vil være let at tvinge MOLCAS Hessian til et format, som INTDER kan lide og derefter omdanne det som du vil. Jeg kan ikke sige det, da jeg ikke har nogen direkte erfaring med INTDER - det køres typisk som en ste p i en kæde af kommandoer, der automatisk genereres af PSI3-driverrutinerne.

Cody Aldaz
2020-05-31 03:55:54 UTC
view on stackexchange narkive permalink

I den geometriske [1] -pakke er der kode til at konvertere en intern koordinat Hessian til kartesiske koordinater

  def calcHessCart (self, xyz, gradq, hessq ): "" "Beregn den kartesiske hessiske givet intern koordinatgradient og hessisk. Returnerer svaret i au" "" Bmat = self.wilsonB ​​(xyz) Hx = np.einsum ('ai, ab, bj->ij', Bmat, hessq, Bmat, optimize = True) Hx + = np.einsum ('ji, j->i', Bmat, gradq, optimize = True) returnere Hx  

Koden gengives også i mit lager [2] men jeg har aldrig forsøgt at bruge det

Referencer:

  1. https://raw.githubusercontent.com/leeping/geomeTRIC/master/geometric/internal.py
  2. https://github.com/ZimmermanGroup/pyGSM/tree/master / pygsm / coordinate_systems
Avishai Barnoy
2017-06-02 17:18:24 UTC
view on stackexchange narkive permalink

Måske kan openbabel gøre det. Jeg fandt dette websted, der kan konvertere z-matrix til kartesiske koordinater: http://www.shodor.org/chemviz/zmatrices/babel.html.Jeg ved, at MolMod python-biblioteket kan foretage konverteringen, hvis du vil dykke ned i det. Og et andet python-bibliotek, der kan gøre det chemcoord Jeg håber, det hjælper.

Tak, men alle de biblioteker, du navngav, kan ikke konvertere en hessisk matrix fra interne til kartesiske koordinater. MolMod er i stand til at beregne en hessian matrix i interne koordinater, som jeg ser det, men det er ikke i stand til at konvertere en allerede eksisterende hessian i interne koordinater til kartesiske koordinater. Kan du bekræfte dette?


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...