wendy
I used Gsas before using Topas program. When I was done Rietveld with Gsas, restraint distance and tolerance was applied well. But when I tried with Topas at launch mode using of Instruction
Distance_Restrain(site1 site2, distance, refined distance, tolerance, weight)
but it does not work properly.
Below are part of results of I tried.
Distance_Restrain (Mn O 1 0 0 0 , 1.930, 1.85380`_0.01408, 0.01, 1)
Distance_Restrain (Mn O 2 -1 -1 0 , 1.930, 1.70819`_0.01404, 0.01, 1)
Distance_Restrain (Mn O 2 -1 0 0 , 1.930, 1.94577`_0.01480, 0.01, 1)
site Mn num_posns 2 x 0 y 0 z 0 occ Mn 1 beq 1
site O num_posns 4 x @ -0.29608 y @ -0.05814 z @ -0.10062 occ O 1 beq 1
Mn:0 O:2 -1 -1 0 1.708(14)
O:3 0 0 0 1.708(14) 180.000
O:1 0 0 0 1.854(14) 112.4(8) 67.6(8)
O:0 0 0 0 1.854(14) 180.000 67.6(8) 112.4(8)
O:2 -1 0 0 1.946(15) 101.8(7) 78.2(7) 77.8(6) 102.2(6)
O:3 0 -1 0 1.946(15) 180.00000000(11) 78.2(7) 101.8(7) 102.2(6) 77.8(6)
I think distance should be 1.930+-0.01 but it is shorter or longer.
Thanks
Wendy
johnsoevans
Dear Wendy,
Distance restraints don't work the way you describe.
A TOPAS penalty or restraint is treated in a similar way to the data. TOPAS tries to simultaneously minimise the fit to the data and how closely the penalties fit. The penalties will therefore not normally be precisely obeyed. If you want to force things so that the penalties are more closely obeyed then you would have to increase the weighting of penalties relative to the data.
This is done by the line: penalties_weighting_K1 1
The tolerance in the macro simply means that no penalty is applied until the distance is +/- tolerance from the set value. In your case, the Mn-O1 wouldn't have any penalty applied until it went outside the range 1.92 - 1.94. The penalty in this case is like a flat bottomed potential.
There are subtle differences between penalties and restraints in TOPAS but you probably don't need to worry about this. There are some notes on this on the wiki at:
http://topas.dur.ac.uk/topaswiki/doku.php?id=penalties_and_restraints&s[]=weighting
If you wanted distances to be exactly the prescribed values (constraints) you could use a rigid body.
wendy
Thank you for your answer.
First I tried penalties_weighting_K1 5, but it did not applied right bond length between the Mn and O
So, after reading other restraint manual I tried, restraint Mn = (O - 1.93) / 0.05 but Topas give me error.
This is the error
*** End of expanded input file: E:file source/Na1.inp ***
Loading xyz's for c-1 from file C:\TOPAS6\sg\c-1.sg
Number of independent parameters : 37
Number of hkls generated for C:\TOPAS6\sg\c-1.sg 39
Space group C-1 is centrosymmetric
Number of equivalent positions 4
Uninitialized_Variable in equation: O
I cannot find right method to do restraint.
Could you give me any hint to me?
Mn and O are composed atoms of manganese oxide mineral octahedra,
so I think it is not good idea to do with rigid body.
rowlesmr
Could you also try upping the weighting in the macro? (note I haven't tried this)
Distance_Restrain (Mn O 1 0 0 0 , 1.930, 1.85380`_0.01408, 0.01, 1) vs
Distance_Restrain (Mn O 1 0 0 0 , 1.930, 1.85380`_0.01408, 0.01, 100)
wendy
Hello rowlesmr,
I had done that method while I was finding how to do restraint.
The result is below
penalties_weighting_K1 5
Distance_Restrain (Mn O 1 0 0 0 , 1.930, 1.89978`_0.00660, 0.01, 100)
Distance_Restrain (Mn O 2 -1 -1 0 , 1.930, 1.89688`_0.01228, 0.01, 100)
Distance_Restrain (Mn O 2 -1 0 0 , 1.930, 1.89402`_0.01261, 0.01, 100)
site Mn num_posns 2 x 0 y 0 z 0 occ Mn 1 beq 1
site O num_posns 4 x @ 0.36576`_0.00137 y @ -0.00304`_0.00536 z @ 0.12201`_0.00088 occ O 1 beq 1
And I don't know why but when there is only one distance restrain, restrain applied well. But after I added three bands restrain, the restrain was hard to applied.
rowlesmr
Hi Wendy
You can see from your first post that the three distances really want to be quite different. What are the full structural details of the phase you're interested in?
Matthew
wendy
Hello Matthew
The full structure is Mn oxide mineral that form with Mn oxide octahedral edge shared and sodium and water placed between the plate interlayer. But before refining full structure, it is important to refine layer structure of Mn octahedral so I was tried to refine the oxygen coordination at reasonable bond distance between the Mn and O.
And distance restrain error happened to other XRD patterns which is different minerals or materials in our lab.
johnsoevans
There are some cases where it's just not possible to satisfy all restraints perfectly at the same time. For example in a perfect octahedron you might restrain an M-O bond to 2.0 A. If you tried to restrain a 90 degree O-O distance then both restraints could only be satisfied if the O-O distance was 2*2^0.5. You may have a case like this.
Another example would be the M-O bond length in a cubic perovskite. If you have a cell parameter of 3.9 Angstroms this would force the bond length to be a/2 = 1.95 A. There would be no point in trying to restrain it to any other distance.
One way to check this is to turn on "only_penalties" for the refinement. TOPAS then ignores the data and just tries to fit the penalty equations (here Distance_Restrain penalties). Depending on what restraints you have set up you may then get a perfect fit to them. If you don't, it suggests the restraints aren't compatible with each other.
The weighting in the macro is only for the relative weightings of different restraints. So if you use 100 for all three then the results should be the same as using 1.0 for all three. If you make one of them 100 and the other two 1.0 then the first one ought to be obeyed more closely. This is normally used when restraining angles and distances as the tolerances on angles are normally much larger, so you use a much smaller weighting for them.
wendy
Thank you for your kind reply.
I tried 'only_penalties', which gives me a reasonable confinement distance, but it is better not to use it because it ignores the data.
I tried other method to restrain the distance and got question about
what is suitable value of penalties_weighting and distance_restrain weight value.
Below is my example
penalties_weighting_K1 50
Distance_Restrain (Mn O 1 0 0 0 , 1.930, 1.92431`_0.00683, 0.01, 50)
Distance_Restrain (Mn O 2 -1 -1 0 , 1.930, 1.91976`_0.01261, 0.01, 40)
Distance_Restrain (Mn O 2 -1 0 0 , 1.930, 1.91831`_0.01296, 0.01, 30)
I tried 1 to 100, but after certain weighting figure calculated value was not really different.
johnsoevans
I think you have to use your own scientific judgement here.
As in earlier posts, you may have restraints pulling you in one direction and data pulling you in a different direction. There will be random and systematic errors associated with your experimental data and some bias in the values you choose to use as restraints. It's always up to a user to decide on the relative importance of the two.
There are some notes on the wiki (
http://topas.dur.ac.uk/topaswiki/doku.php?id=penalties_and_restraints&s[]=penalties&s[]=weighting&s[]=k1) and in tech ref on how topas determines weighting by default.