[ase-users] Using internal optimizers of codes with ASE

Kondov, Ivan (SCC) ivan.kondov at kit.edu
Mon Oct 17 10:31:06 CEST 2016


Dear Ask,

For structure relaxations I use the Turbomole, NWChem and Vasp calculators 
with their own structure optimizers.

Regarding implementation: The current implementations of Turbomole and NWChem 
calculators lack some functionality to treat this method of operation. The 
get_potential_energy() method works well with the Vasp calculator but it does 
not work with Turbomole and NWChem without additional hacks. The problem with 
Turbomole was that the structure optimization required the invocation of other 
executables (jobex) from the package. With the NWChem the problem was that 
after a relaxation run the structure in the Atoms object was not updated by 
the calculator.

Regarding interface: There should be a 'task' attribute of the Calculator 
class which can be set when constructing the calculator object. Then, 
depending on 'task', lazy evaluation can be triggered by both a getter method 
of Atoms class or by a calculate() method of the calculator class.

Best regards,
Ivan

> -----Original Message-----
> From: ase-users-bounces at listserv.fysik.dtu.dk [mailto:ase-users-
> bounces at listserv.fysik.dtu.dk] On Behalf Of Ask Hjorth Larsen via
ase-users
> Sent: Thursday, October 13, 2016 8:46 PM
> To: ase-users at listserv.fysik.dtu.dk
> Subject: [ase-users] Using internal optimizers of codes with ASE
>
> Hi
>
> Please excuse my recent bad ratio of suggestions/discussions to actually
getting
> things done.  I promise this will change.  Anyway:
>
> For file IO calculators, it is often convenient to trigger a structure
optimization
> using the code's own optimizer on purpose through get_potential_energy().
>
> For example if someone uses the genetic algorithm, basin hopping or
similar,
> lots of optimizations will be going on, and you don't want too much IO.
>
> Using atoms.get_potential_energy()/calc.calculate() for this is obviously
a hack,
> but the idea of using the internal optimizer is quite valid, and maybe ASE
could
> offer a systematic way of doing this.
>
> Has anyone thought of a nice way of doing this?
>
> To call basin hopping that way, you just need to supply an object that
acts like an
> Optimizer, but secretly just calls calculate() on the calculator.  This
may be the
> minimally painful way.  Should we have a wrapper like that?  Are there
better
> ways?
>
> Best regards
> Ask
> _______________________________________________
> ase-users mailing list
> ase-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/ase-users
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6317 bytes
Desc: not available
URL: <http://listserv.fysik.dtu.dk/pipermail/ase-users/attachments/20161017/8ae96d07/attachment.p7s>


More information about the ase-users mailing list