If you have problems during the execution of MRCC, please attach the output with an adequate description of your case as well as the followings:
  • the way mrcc was invoked
  • the way build.mrcc was invoked
  • the output of build.mrcc
  • compiler version (for example: ifort -V, gfortran -v)
  • blas/lapack versions
  • as well as gcc and glibc versions

This information really helps us during troubleshooting :)

optalg=bfgs not working with basopt?

  • Nike
  • Topic Author
  • Offline
  • Premium Member
  • Premium Member
More
6 years 6 months ago #421 by Nike
Replied by Nike on topic optalg=bfgs not working with basopt?
Dear Jozsef,
Thanks for the reply!

I do find that the number of iterations that need to be done in order to get the energy back to how low it was in the previous run, is quite a lot. Considering that I'm doing over 40 manual restarts for one basis set optimization right now, and most of the iterations in these 40 restarts are just in "recovering" the previous lowest energy, it would be nice if the previous lowest energy could be recovered faster. Would saving some of the information from the previous run help? This would be a bit like SCFDENSITIES or fort.55 and fort.17.

I have indeed played with optetol but it doesn't help much because much of the time I don't get convergence at all (just a constant energy, or an energy that jitters back and forth). The only way to prevent this, it seems, would be to *increase* optetol, and sometimes this makes the optimization finish at a much higher energy than the previous run.

I agree that simplex is in some sense "more reliable" than bfgs, in that it is slow, but quite reliable. L-BFGS-B doesn't usually require this many iterations though (in my experience). The other advantage of L-BFGS-B is that one can put a constraint that the lowest eigenvalue of the metric is above a certain threshold (because linear dependencies is a huge problem when optimizing big basis sets). However maybe this is possible with simplex too. I'm not sure if you've implemented such a criterion to avoid linear dependencies.

About optimizing the CV correction: I can easily script something to run the frozen core and all-electron calculations and to take their difference (which then becomes the thing I want to optimize). However, I would need an external optimization routine to do the optimization. This routine would have to read in the difference between the energies from the two MRCC runs, then generate a new GENBAS file and launch two more runs of MRCC, and keep doing this in a cycle.

It seems easier to just work within MRCC itself, since you already have a working simplex optimizer that has been quite successful already. Programming is not my strength, but I wonder if you could comment on whether or not optimizing the difference between frozen-core and all-electron energies is something that could easily be done from inside MRCC itself?

With best wishes!!
Nike

Please Log in or Create an account to join the conversation.

Time to create page: 0.036 seconds
Powered by Kunena Forum