How in depth is the setup in ASE?

Hi,

I have been creating my own tools in python for setting up simulation environments, and I was wondering what sort of things ASE allows you to do.

For example, in my own code I create input files to be run in GULP and LAMMPS, creating standard input scripts for different simulation types (a sort of ‘fill in the blanks’ procedure). Is importing setups to LAMMPS or GULP something your code would support? Or are the simulations intended to be run within the ASE package itself?

On another note to do with complexity, could I achieve a complex grained material setup in your software? Or create a series of grain boundary simulations that use the two same grains at different angles to one another?

I apologise if this is explained in your documentation, I had a look at “building”, but couldn’t get an idea of how complete the setup side of things is.

Finally, if the calculations are run within the ASE package itself how would you compare the accuracy/ speed of your code to something like GULP or LAMMPS?

Thanks very much for making this tool available to everyone!

Connor

Hi Connor,

Congratulations on first post :). You’re right, these things could be more clear in the documentation.

Basically ASE has both the option to run computations via Python, and (depending on the program) the option to prepare/generate input files for running independently or on another computer. The procedure may be different for different codes though.

On another note to do with complexity, could I achieve a complex grained material setup in your software? Or create a series of grain boundary simulations that use the two same grains at different angles to one another?

With the help of some the existing builders and some scripting one can achieve many things, but I don’t think there are any shortcuts for setting up grains as such.

Finally, if the calculations are run within the ASE package itself how would you compare the accuracy/ speed of your code to something like GULP or LAMMPS?

ASE doesn’t generally perform heavy computations. ASE talks to LAMMPS, then LAMMPS does most of the work. However there will be some overhead on the ASE side handling e.g. positions directly. Most codes in ASE are DFT codes where that never becomes a problem. If efficiency becomes a problem it’s normally possible to use ASE to set up the calculations, and then run them separately.

Of course these are not very specific answers but I suppose it goes some of the way.

Best regards
Ask

Hi Ask,

Thanks! Someone has to be :grinning:

I think that’s a good enough general idea actually! Thank you very much for the information.

Does that mean you need an installation of LAMMPS in the same directory as ASE, or need to have it on your path for it to function correctly?

It looks like a good package btw.

Cheers,

Connor

Does that mean you need an installation of LAMMPS in the same directory as ASE, or need to have it on your path for it to function correctly?

ASE needs to know the lammps executable either via environment variable or by having the command passed as a string programmatically, or lammpslib (Python bindings) must be installed in the Python environment. So there are actually two lammps interfaces.

Best regards
Ask

1 Like

Thanks for the information Ask!