From: Karol M. L. <kar...@gm...> - 2009-07-15 15:26:58
|
To answer a few more questions... > > Z-matrix parsing and/or interconversion with cartesians would be > > useful... currently I do it on a regular basis with openbabel. If not > > parsed, perhaps a helper method could build and return the z-matrix via > > openbabel. > > That would surely be useful. Coul I quickly ask, do you use the C++ API > directly when doing this or do you mean you convert between file formats > with z-matrix/cartesian specifications? No, I hack away in bash... passing around *.xyz files and text files with Z-matrices :) I also wrote a little function for converting between these things (in Python), but don't use it all that often it turns out. > > For derived quantities like (second) derivatives, it will be harder to > > maintain clarity and consistency between outputs from various programs if > > we were to provide them potentially in both cartesian and internal > > coordinates. I would again suggest a helper method in this case that > > converts the standard cartesian form to internal coordinates, with a > > Z-matrix or atom ordering given as input. > > Yep I suppose that would be good. When gradients are already available in > terms of the z-matrix, I would have thought it incurs unnecessary > complexity to invoke other methods to convert the gradients from cartesians > to z-matrix. But in general, such infrastructure in the code would be > useful. Yes... in my opinion this should be done post-parsing, as a helper method. Cartesians and internals are fully interchangeable (besides the origin), so this really is not a problem, given the proper methods. Note one more thing. Gaussian itself prints the internal gradient only when explicitly given Z-matrix input. It always print cartesian gradients, however, so just parsing that makes everything a lot simpler. > In a related project I'm currently working on, I have already written code > to convert from forces in cartesians to forces in z-matrix, and it > numerically differentiates the function Z(C) that returns z-matrix > coordinates, Z, in terms of the cartesians, C, and implements the function > Z using the python interface to openbabel. That code would be a good starting point for these helper methods. Would you care to share it? > > > As I may have mentioned, I will probably add support for a number of > > > other programs, such as GAMESS, NWChem and possibly VASP, at some > > > point, so obviously should do this in a style that is consistent with > > > the rest of cclib. > > > > We don't parse nwchem or VASP output files at the moment, so there is no > > parse to currently add code to for those programs. > > Well if I were to write some code to parse them, would you want to add it > to cclib? Perhaps. To start off with, we could create a branch of cclib that would implement just the gradients for VASP, and when we have enough attributes parsed compared to other programs, we could include it in the main development branch. Cheers, Karol |