• topas
  • Refinement stops after several steps

Hello,
I'm having an issue where the refinement will run several iterations with decreasing Rwp, then on say the 4th iteration the Rwp will increase slightly and Topas will break out of the loop. Two problems with this:

  1. Topas will output the parameters for the higher Rwp (4th iteration rather than 3rd).
  2. If I accept the new parameters and rerun the refinement several times, it will converge on a much lower Rwp. I'm intending to call this refinement via the command line for a large number of slightly different patterns, so I can't be manually running the refinement multiple times for each pattern.

I don't believe the refinement is exiting due to meeting the chi2 convergence criteria (since I've tried putting that to a super low value and it doesn't affect the behavior), but instead due to the last iteration increasing in Rwp it seems to break out of the loop.

Thanks for the help,
Dylan


I'm not sure from what you've written. Do you have any restraints or penalties in your INP file? TOPAS is minimising against the overall chi2 (data plus restraints) so the lowest Rwp might not be the lowest chi2.

It's side-stepping your question, but repeating automated refinements several times shouldn't be a problem. One way is to just put "num_cycles 3" in the INP (with or without val_on_continue commands).

From your screenshot it looks like you have TOPAS v7. You can probably do everything you would from a command line automation using #list { } commands. It's normally much more convenient and you can visualise fits more easily.

8 months later

I have a similar problem to this. In my case, refinement stops after a few steps, and nothing is really refined. I have multiple values that should be refined, so it doesn't make sense that nothing changes. My input file contains rigid bodies and free atoms. Previously, I had a similar problem where I received a warning message like "site A has a recurring decimal coordinate, change the format to =1/3;." This site A was part of a rigid body, and I could only avoid this error by rotating the coordinates to @ 0, @ 0, @ 0. But in the current case, no error message is displayed. What could be the cause, and how can I avoid this problem?

A screenshot of my topas window:

It's hard to diagnose your problem from what's written. e.g. I don't understand what you mean by "rotating the coordinates to @ 0, @ 0, @ 0". However, the refinement seems to be stopping because Chi is unchanged over several cycles.

It's really easy to make mistakes with rigid bodies. What I suggest you do is: 1. use view_structure to see if your rigid body makes sense. 2. try manually changing the body angles and positions to see if it still makes sense. 3. See if the Rwp of your fit changes when you do that.

One issue may be that you have a huge penalty value of 90,000 (which contributes to the overall chi**2 minimised). Have you checked all your penalties make sense?

Thank you for your reply. I thought my refinement stops because one of the coordinates of an atom (which is part of a rigid body) reaches a recurring decimal, and this causes an error (which is not raised). To solve this problem, at this point, I return to simulated annealing and try moving the rigid body to a similar position by resetting the Rotate_about_axes to (@ 0, @ 0, @ 0) and let it find a similar position, hopefully avoiding that recurring decimal coordinate. This previously helped with a similar problem of refinement stopping. I am really unable to explain it in a different way.

Your answer made me think that the problem is different and probably the refinement stops due to the large number of restraints that I am using. All my restraints make sense (I use them to remove the rigid bodies). I attempted introducing my restraints gradually, and this approach helped. I will try to better understand what is actually displayed in the text output window.