From: Noel O'B. <no...@ca...> - 2006-04-03 10:53:02
|
On Thu, 2006-03-30 at 17:04 -0800, Adam Tenderholt wrote: > 1) I've been working on the ADF parser, however I ran into a problem with > reading "aonames". Basically, if there is any symmetry (and nosymmetry isn't > specified for the ADF calc), it uses linear combinations of orbitals on > different atoms for the atomic basis. As an example, look for the SFOs > section on line 1371 of dvb_sp.adfout. SFO 1Ag is constant (C1_1S + C4_1S), > where constant is 1/sqrt(2). I can think of two solutions. First, parse it as > it is so aonames become something like 1/2 C1_1S + C4_1S. My problem with > this is handling more complicated cases with 3+ atoms might lead to more > difficult coefficients. Second, ignore it and make sure cclib users know that > if they want to do anything with aonames, they need to specify nosymmetry in > the ADF calc. I'll think some more about this - I gotta go and give a short talk now. > 2) In looking at the Gaussian parser, I wasn't able to find a variable for > storing each structure found for a gaussian calculation. What do you think > about adding a class for Atoms (name or number, x, y, z in either angs or > bohr), a class for Molecules (either a list of Atoms, or more complicated > with dictionaries?), and geoms[ ] and geomcoords[ ] in the parser classes? Yes - you're right - this is missing. My own feelings are: (1) Angstroms are nicer (2) I prefer Atom.coords = (1.0,1.1,2.2) rather than Atom.x,Atom.y,Atom.z. (3) Do we need a class for Molecules? Can we instead just use a list of Atoms? (just to keep things simple - can you think of any advantages to having a class?) (4) Why not atoms[] in the parser class (which will be a list of Atoms)? The atoms will not only have geometry, but names/numbers as well, and atomic orbitals also maybe. > 3) What if certain calculations don't implement the same parameters for > geotargets/geovalues and scftargets/scfvalues? Look at the differences > between the ADF and Gaussian calculations. Is there going to be a variable to > keep track of the names for each parameter? Or maybe a set of pre-defined > dictionaries (e.g. MaxForce:[ ], RMS Force:[ ], Energy:[ ], dEnergy:[ ], > etc.) should be used instead to keep some consistency across each type of > calculation? The same differences exist between the Gaussian and the GAMESS parsers. At the moment, I don't assume that scftarget[0] in the Gaussian parser refers to the same thing as scftarget[0] in the GAMESS parser. This may feel inconsistent, but the information you get by dividing the corresponding scfvalue by its scftarget is independent of the nature of that data. I understand what you're saying, but I think that this information is being extracted in the context of a comparison to the target value, and is of no interest in itself (in general). Where it is of interest, it should be present as a parsed attribute of the class. For the moment, why don't we create a text file in a docs folder (I'll start it) with a table giving the scf and geo targets from the various programs. We can fill this in with information from the various parsers and use it to create a dictionary if we think this is useful. BTW, people here use Jaguar, so I'll work on that next. I've started writing unit tests. Run and look at "test/testall.py" for more info. Ideally, whenever we make a change to a parser, we should make sure that are the tests are passed. Also ideally, we regard a parser as complete once it passes all the tests. However, at the moment, there are only 4 tests, which obviously don't test all that much, although it does highlight an error in the gamess parser. I'll continue to add more tests to this, and you may find it useful also to add specific tests for the ADF parser. Noel > Adam > > P.S. Noel, I hope you enjoyed your travels... Oh yeah, San Fran/Stanford was really interesting. We went to see redwoods in Muir Wood(?) the following day and went wine tasting in Nappa Valley too. Atlanta Georgia wasn't much fun, but it turned out to be a really interesting conference (for me). Didn't get to see your boss talking but I did see his name in the program. |