From: Peter Murray-R. <pm...@ca...> - 2003-09-28 09:03:28
|
At 17:39 27/09/2003 -0500, Geoff Hutchison wrote: >On Saturday, September 27, 2003, at 08:49 AM, Peter Murray-Rust wrote: > >><molecule formula="K 3 Fe 1 C 6 N 6"/> >>would have a spinMultiplicity of ?? (help I have to go back to >>undergraduate inorganic...) high-spin or low-spin? temperature dependent? etc. > >There are 77 valence electrons, so there's definitely at least one >unpaired spin. (Or you can look at it and realize it's Fe(3+) and so it's >d5.) This is low-spin since cyano ligands force a large d-d splitting. So >it's likely a triplet. It's not likely temperature-dependent. Those are >usually Fe(2+) ions in an octahedral nitrogen environment--at least for >iron compounds. Yes :-) this makes my point. These are the things someone has to think about before assigning a multiplicity. If it defaults to 0 it's wrong. >> Also if we have: >><atom elementType="Fe">... >>then we have to give a spinMultiplicity every time we have a transition >>metal. > >Here, no. If it's a lone atom, it must have charge 0, and you can quickly >figure out the spin. IIRC, lone iron atoms are quintets in the gas phase. > >>If we don't then it is *automatically* set to 0, regardless of the actual >>value. XML does not transmit default attribute values so it is impossible >>for a later user to determine whether the "0" was intended or merely >>added automatically. > >Total spins take the values 2S+1, so a 0 "spin" is not a physical value. >It *must* have been the default value. A singlet is a spin of 1. So for >example, if I want to specify a neutral, singlet molecule to Q-Chem, I >supply the line "0,1" before the coordinates. > >>However we probably should allow the spin to take values of zero. > >If you want to allow the spin to take values of zero, it must be the >default value A default must not be overloaded to mean "either it is this value or I don't care". In this case it is clear that no default is possible. A missing multiplicity for either an atom or a molecules mean "I don't know" >and imply "I don't know the spin, or I do not care about spin." I do not >think that code should allow *setting* the spin to zero. What I meant is that 0 should be an allowable value. [In CML V2.01 the spin multiplicity *if given* was required to be a positive integer. This is simply a bug and 0 should be allowed, but not negative integers.] >IMO, if the spin is set by the user, the code should check to make sure >the spin is at least reasonable, e.g. calculating the number of valence >electrons and doing a simple aufbau summation. That is up to the OB community. It seems a useful thing to do, but I don't know how many exceptions there are. To give some more examples of defaults taken from CML. If no field is given the interpretation is atoms: elementType =>unknown elementType hydrogenCount => unknown hydrogenCount (NOT 0) formalCharge for atom => 0 This is based on the assumption that "most" atoms are not charged and that most authors know the importance of formal Charge occupancy => 1.0 based on the assumptions that most authors either don't know about occupancy and assume that if an atom is given then there is exactly one x2, x3, xFract => unknown isotope => "natural abundance" (but this is not defined) atomParity => unknown molecules: formula => the sum of the explicit atoms present, including explicit hydrogenCounts if given. This is likely to be wrong in many cases, e.g. from MOL files without explicit hydrogens formalCharge => sum of explicit atom formal charges spinMultiplicity => unknown, even if atom values are given, as their combination may be unknown bonds order => unknown (NOT 1) stereo => unknown Peter |