From: SourceForge.net <no...@so...> - 2009-05-15 02:53:51
|
Feature Requests item #2791729, was opened at 2009-05-14 09:14 Message generated for change (Comment added) made by hansonr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=379136&aid=2791729&group_id=23629 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: New IO Format Group: None Status: Open Priority: 5 Private: No Submitted By: Laurence Marks (ldm001) Assigned to: Nobody/Anonymous (nobody) Summary: Wien2k + vibrations Initial Comment: Can you please provide a reader for Wien2k DFT files www.wien2k.at (I can provide format info etc). Also, can you provide information on how to input vibrational modes; I am writing an interface for these so can produce a file in the "appropriate" format, if someone tells me what! ---------------------------------------------------------------------- >Comment By: Bob Hanson (hansonr) Date: 2009-05-14 21:53 Message: Laurence, You can set the spacefill radius to anything you want. If the charges are not present, then the radii will not be representative of metal and oxide ions. The easiest way to rectify this is to set the charges, then specify spacefill ionic: For example: {_Al}.charge = 3; {_Ti}.charge = 3; {_Si}.charge = 4; {_O}.charge = -2; {_Mg}.charge = 2; {_Ca}.charge = 2; {_Na}.charge = 1; {_K}.charge = 2; select *; spacefill ionic; OK, so at this point I need you to field test this with a bunch of different structures and symmetries. If you haven't used Jmol much, you are in for a treat. There are lots and lots of interesting renderings you can do based on symmetry and space groups, including planes based on Miller indices. I particularly like planes such as: isosurface hkl {1 1 0} map molecular Bob ---------------------------------------------------------------------- Comment By: Laurence Marks (ldm001) Date: 2009-05-14 18:23 Message: Yup, it looks right. There is a bit of an issue with space-filling "nicely" and also for Andalusite and Olivine both of which should be almost the same as the AM cif structure. (The lattice parameters and atomic positions may be a few percent different, I cannot remember if I DFT optimized these structures or not.) ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 18:12 Message: OK, I can verify that the AM cif structure and the Wien2k structure are identical. ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 18:04 Message: (for a comparison of Ti2O3 from the American Mineralogist database and your struct file, see the uploaded wien-test.png ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 18:03 Message: Success! Since the symmetry definitions are in terms of the primitive cell, I needed to stay with that. So all I am doing is converting the hex cell dimensions to rhombohedral. This certainly provides the correct structure in the case of Ti2O3. See now http://chemapps.stolaf.edu/jmol/docs/examples-11/new.htm http://chemapps.stolaf.edu/jmol/docs/examples-11/Jmol-11.jar Maybe still some atoms missing? -- oh, maybe those MULT ones? ---------------------------------------------------------------------- Comment By: Laurence Marks (ldm001) Date: 2009-05-14 17:49 Message: p55 of http://www.wien2k.at/reg_user/textbooks/usersguide.pdf has the specific matrices to use to convert both directions. I may have sent an older version earlier, and they don't look like what either of us had. I would assume that this pdf is correct. ---------------------------------------------------------------------- Comment By: Laurence Marks (ldm001) Date: 2009-05-14 17:28 Message: I've uploaded all the types I have and will upload a simpler CXY in a few moments; I don't have an example CYZ file and have asked for one, but people in Europe may already be asleep. I'm less than 90% confident of the transformation and I may have given you wrong information earlier. I did a test for the matrix I gave you, taken from some rarely used contributed code, and I'm less than confident that it's right. I've asked for clarification on this as well since I don't want to steer you hopelessly wrong. In terms of units, checking again unit=bohr or unit=BOHR or nothing are all BOHR unit=ang or unit=ANG for Angstroms Pyrope is a B lattice ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 17:04 Message: how do I convert a b c alpha beta gamma (hex) to a b c alpha beta gamma (rhom)? ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 16:57 Message: So those coordinates are opposite mine, but that's a minor detail. If the symmetry elements are in the R lattice, then what I need to do is convert the h cell to an r cell and stick with the coord and symmetries there. I will try that.... ---------------------------------------------------------------------- Comment By: Laurence Marks (ldm001) Date: 2009-05-14 16:54 Message: You are ahead of me. To convert from the Wien2k units (which are in the rhombohedral cell) to the hexagonal cell the matrix I found in the code is ah = -ar * 2/3 + br * 2/3 + cr * 2/3 bh = -ar * 1/3 - br * 1/3 + cr * 2/3 ch = ar * 1/3 + br * 1/3 + cf * 1/3 (ah, bh, ch) would be in the full hexagonal cell; (ar, br, cr) are what is listed in the struct file. I am pretty sure that the symmetry operations will be in terms of the R-lattice (not the H-lattice). I've uploaded some more file examples. ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 16:43 Message: OK, what I believe should be true is this: float a = parseFloat(line.substring(12,22)); float b = parseFloat(line.substring(25,35)); float c = parseFloat(line.substring(38,48)); if (isrhombohedral) { float ar = a; float br = b; float cr = c; a = ar * 2 / 3 - br * 1 / 3 - cr * 1 / 3; b = ar * 1 / 3 + br * 1 / 3 - cr * 2 / 3; c = ar * 1 / 3 + br * 1 / 3 + cr * 1 / 3; } That's from http://homepage2.nifty.com/a-m/bandmemo/node1.html#SECTION00012500000000000000 Is that correct? Now, the next question is this: Are the symmetry operations expressed in terms of the hexagonal lattice or the rhombohedral lattice? ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 16:32 Message: nope, too crypic. I need clear specifications for how to transform the a b c coordinates in the file to a'b'c' cooresponding to the indicated unit cell. ---------------------------------------------------------------------- Comment By: Laurence Marks (ldm001) Date: 2009-05-14 16:26 Message: Web source: http://www.wien2k.at/reg_user/textbooks/usersguide.pdf I've attached Ti2O3.struct converted to a standard cif Hunting a bit more, I think Angstroms have vanished from all the cases, so please assume that everything is in BOHR (even if that key is not there) and just ignore the units. I'll put some additional cases in shortly (alas, it deletes the message if not sent). ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 16:14 Message: Oh, just saw that latest comment --- ANG like that, in caps? unit=ANG or unit=ang right now I see unit=bohr not unit=BOHR OK, I'll try fixing the coordinate values for R. Some examples of the F, B, I, C$$ cells would be helpful. So you mean the symmetry operations are not complete? Really? ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 16:11 Message: I could use a bit more information -- web source for that PDF guide? -- check of the Ti2O3 structure. ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 15:09 Message: OK, check out http://chemapps.stolaf.edu/jmol/docs/examples-11/new.htm http://chemapps.stolaf.edu/jmol/docs/examples-11/Jmol-11.jar contains the files. I think there is a problem with Ti2O3.struct -- it doesn't say BOHR, but it looks like Bohr, and I'm not convinced the rhombahedral cell is loading properly. I might need some help with that. But please check all of them to see if they are loading properly. Bob Hanson ---------------------------------------------------------------------- Comment By: Laurence Marks (ldm001) Date: 2009-05-14 13:27 Message: Nobody was ldm001 (different computer, forgot to login). ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-05-14 13:26 Message: Yes, units=Bohr means atomic units or Bohr's, conversion a0=0.529177E0. ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 13:11 Message: When it says units=Bohr, that does mean this unit cell is in Bohr? ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 13:10 Message: Looks reasonable. The files you have provided should provide plenty of examples. Jmol should be able to read the unit cell and symmetries and derive all additional atoms from just the first atom in the set. This will be a good test, of course, since the additional atom positions are also given. I'll give it a try. ---------------------------------------------------------------------- Comment By: Laurence Marks (ldm001) Date: 2009-05-14 10:23 Message: I've attached some examples, as well as the relevant part of the documentation. Fairly self evident and the Space Group numbers/names are normally correct although it is more robust to use the symmetry. Are all the atoms needed (as against the symmetry reduced set)? It is simpler to use the reduced set although I can also do the full set. Also, does Jmol understand about "F", "B", "I" cells etc to know that these operations are implied or will it need more information? (For assorted reasons A, B, or C centered cells are coded differently in Wien2k.) ---------------------------------------------------------------------- Comment By: Jonathan Gutow (gutow) Date: 2009-05-14 10:15 Message: As there is money being collected for distribution of Wien2k, I suggest that the Wien2k project should put some programmer time into developing the file reader if they want Jmol to read their files. Jonathan ---------------------------------------------------------------------- Comment By: Bob Hanson (hansonr) Date: 2009-05-14 09:47 Message: please attach a few file examples. Vibrational modes are read along with file data, so if your file format included vibrational mode information then that could be automatically incorporated. If your vibrational information must be separate, then I recommend the extended XYZ format. This is simply: # of atoms comment line [atom line] [atom line] [atom line] [atom line] ... where the atom line is simply: element x y z vibx viby vibz For example: 3 CoolMolecules Vibration Generator O 0 0 0 0 0.005799922848714869 0 H 0.7698177590299584 -0.5480927092035551 0 0.06516975737819754 -0.04639938278971895 0 H -0.7698177590299585 -0.548092709203555 0 -0.06516975737819754 -0.04639938278971894 0 For multiple modes, you just string as many of those together as you want: 3 CoolMolecules Vibration Generator mode 1 O 0 0 0 0 0.005799922848714869 0 H 0.7698177590299584 -0.5480927092035551 0 0.06516975737819754 -0.04639938278971895 0 H -0.7698177590299585 -0.548092709203555 0 -0.06516975737819754 -0.04639938278971894 0 3 CoolMolecules Vibration Generator mode 2 O 0 0 0 0 0.005799922848714869 0 H 0.7698177590299584 -0.5480927092035551 0 0.06516975737819754 -0.04639938278971895 0 H -0.7698177590299585 -0.548092709203555 0 -0.06516975737819754 -0.04639938278971894 0 3 CoolMolecules Vibration Generator mode 3 O 0 0 0 0 0.005799922848714869 0 H 0.7698177590299584 -0.5480927092035551 0 0.06516975737819754 -0.04639938278971895 0 H -0.7698177590299585 -0.548092709203555 0 -0.06516975737819754 -0.04639938278971894 0 And if you want to include charge, you can do that between z and vibx: element x y z charge vibx viby vibz ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=379136&aid=2791729&group_id=23629 |