GithubHelp home page GithubHelp logo

siesta-project / flos Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 4.0 270 KB

Interfacing SIESTA to Lua scripts using the flook code

Home Page: https://siesta-project.github.io/flos/index.html

License: MIT License

Lua 100.00%
siesta lua-script optimization relaxation density-functional-theory cell-vectors geometry lbfgs-algorithm conjugate-gradient lua-library

flos's People

Contributors

albgar avatar pouillon avatar zerothi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flos's Issues

Idea proposed #2

Hi,
Sometimes in the chemical reaction we have a complex path with one or more rotation. The initial linear interpolation is very bad idea for these paths. It is a good idea to grow a path. Instead of considering all images, we consider two images near to the fixed initial and final configurations, after minimizing their total force (which its criteria could be read from fdf file, for example 0.2 eV/A), the neb.lua add two other images near to them, and this approach continued until all requested image number is introduced in the path. This technique is for string method. see the paper:

Title:
A growing string method for determining transition states: Comparison to the nudged elastic band and string methods

Link:
https://aip.scitation.org/doi/abs/10.1063/1.1691018

interpolation error

Dear Nick,
in neb_simple.lua file, if the user uses 3 input data (initial.xyz, final.xyz, and N) for interpolation, he/she gets error. This is because that in line 46-70 the code tries to open the files that don't exist.

By the way, I got the middle class from git, thank you. It is a good idea to place these information in the manual of siesta.
Thanks,
Reza

Enable a SIESTA function for each of the classes

Instead of having the excessive code examples much of it may be reduced to a single SIESTA function which does everything.

I.e. the examples should be shortened and input into each of the classes such that one may do:

relaxation = flos.LBFGS(...)
-- Pass the siesta table for interaction
-- and retrieve the function that is going to be used
-- to communicate with SIESTA
siesta_comm = relaxation:SIESTA(siesta)

Thus the use of flos may be greatly eased for those who are willing to use the respectable defaults.

Although this heavily limits the fine-tuning of the method, it will greatly improve usability

empty middleclass

Hi Nick,
I have downloaded master version of flos. It seems that when I extract its zip file, the middleclass is empty! Could you please check it?
Thanks
Reza

run lua on single cpu

Hello, i do not have much experience with lua, so i might be asking a stupid question here.
If i run a simple lua script that just prints "hello", and run siesta with mpirun -np N, the printed "hello" appears N times.
Looking around the examples of siesta.lua scripts i haven't found any mpi-related directives, so i am slightly confused.
Is there any simple way to limit the lua script to a single cpu?

Idea proposed #1

Hi,
I use flos with siesta to find transition state of chemical reaction by NEB method. I worked with some other codes (such as FHI-aims and OPENMX) to use them for NEB calculation. I will write my ideas for neb calculation by flos/siesta, and propose some idea for its performance. This is the first part (#1):

1- As a chemist user (which are the main user of NEB), I don't need detailed information on forces, such as tangent, perpendicular, spring, ... . Only one parameter (i.e., maximum force on images) is more clear for the neb iteration step. So, I need to know that in each NEB iteration, what is the maximum force, and does the path goes to the minimize the force or not. By seeing fluctuations in maximum force (and also their images) I decided to continue the job or kill it. It is very important. Because, we (chemists) could easily find from the images of a NEB iteration that if the path is good for NEB or not.

2- I am not sure, and didn't investigate their detail codes, but I think ASE approach in FHI-aims has less force fluctuation. I have tested the same job with FHI-aims and flos/siesta.

3- We need that for each NEB iteration to see the proposed path and its maximum force. Jmol program can easily show the path, but need that all images be in one file. We need jmol or other similar open source code to see the path. So, for each iteration it is better that the code save all images in one file. Now, the code writes all iterations of an image in a file which is not useful for investigating the NEB path for each iteration step.

4- Maybe saving jmol xyz file in a directory with the name of iterationXXX is better.

5- It is better that the code gets initial and final optimized structure in the fdf file and generate the images authomatically. it is more user-friendly work.

6- All NEB parameters (such as number of images, the maximum force criteria, needing climbing or not, spring force constant, initial and final image, ....) should be readable from one fdf input file. It is more user-friendly work.

Siesta code is very fast. using more user-friendly flos with it, could be convert it to the most usable code for NEB.

Thanks
Reza

Dynamic Relaxation for siesta/flos NEB calculation

Hi Nick,
I am working with NEB calculations with siesta/flos and siesta/ASE (https://wiki.fysik.dtu.dk/ase/ase/neb.html).
As you may know, ASE is a set of python codes that links to different calculators (such as siesta, openmx, fhi-aims, vasp, orca, gaussian, dmol3, castep, and many other codes) to do optimization, NEB calculation, phonon analyses, and other calculations. from two years ago, I used different calculators with ASE to do NEB calculations. The best one is siesta+ASE which is very fast and robust.

Comparing to siesta/ASE, siesta/flos needs more steps ( more than twice), but each similar steps (with the same n_images and the same SCF parameters) in siesta/flos is very faster than siesta/ASE. For example, one NEB calculation in FLOS+siesta is twice or more faster than ASE+siesta (maybe this is because that FLOS uses LUA and ASE is based on Python). Almost half of these very large NEB steps contain some images with very low forces (below the criteria I set; i.e. 0.05 eV/A). For example, with n_images equal to 12, in 151 th step of NEB, more than 7 images have forces of 0.07 or less. But in the next steps, these images change, and therefore, their forces change. One good idea is that, the structures of these images are fixed unless their forces becomes greater than the threshold value (0.05 eV/A). You can follow this idea if the following paper:

‘Scaled and Dynamic Optimizations of Nudged Elastic Bands’, P. Lindgren, G. Kastlunger and A. A. Peterson, J. Chem. Theory Comput. 15, 11, 5787-5793 (2019).

It has been proved that with this trick, speed of convergence increases more than twice (see the paper).

In ASE, it has been implemented as "DyNEB". You can see its source code:

https://wiki.fysik.dtu.dk/ase/_modules/ase/neb.html#DyNEB

Thanks
Reza

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.