Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

further cmdline features requested #99

Open
1 of 9 tasks
broeder-j opened this issue Nov 23, 2020 · 4 comments
Open
1 of 9 tasks

further cmdline features requested #99

broeder-j opened this issue Nov 23, 2020 · 4 comments

Comments

@broeder-j
Copy link
Member

broeder-j commented Nov 23, 2020

Here we collect feature requests for further cmdline options. Not all were yet implemented in the first cmdline implementation.

Collected:

  • The -s structurefile option should support the inpgen input file
  • The --fleurinp option should support inp.xml files, or a list of files with an inp.xml file.
  • Fleurinp: print out symmetries since they are bound to k-mesh
  • FleurinpModifier: in general the modification of an existing Fleurinp could be implemented as cdm options
  • Some methods that automatically generate inputs to continue a workchain.
  • A garbage collection command would be nice. Clean remote folders in a certain way, or repository folder in a certain way.
    Expose functionality to trim output files?
  • commands to prepare easily wf parameter and other dict nodes,
  • create options nodes
  • also commands to list the default inputs of a certain workchain.

Vasily:

I think I have come up with several suggestions:

  1. Fleurinp: print out symmetries since they are bound to k-mesh
  2. FleurinpModifier: in general the modification of an existing Fleurinp could be implemented as cdm options
  3. Some methods that automatically generate inputs to continue a workchain. For example, If SCF failed due to time/iteration limits (but was converging), one wants to continue the SCF. That would be much easier to just type-in aiida-fleur generate inputs --from (workchain_pk) which returns required inputs and some info on how to modify and use it. Please refer to the figure below for details: for some reason user decides to continue converging SCF 1. For this he/she needs to not only gather basically the same input Dicts and Codes, but also find the corresponding RemoteFolder in the SCF 1 which is not user friendly. Hence that would be nice to have a method that prepares an input dict from SCF 1: it gathers the same Fleur Code, input Dicts and also adds RemoteFolder from the last FleurCalculation. Of course we should give a user a chance to modify input parameters - I would call this cdm option as a 'builder'. Such kind of cdm options would be very helpful for all of the workchains: EOS - to add new volumes; Relax - to continue from partly relaxed structure; magnetic workchains - to perform force theorem calculations starting from already converged reference; CreateMagnetic - to start from any place from EOS to final generation of the magnetic structure.

image

Jens:

  1. is easy I will add this, because I will add an option to run this through spglib and get the sym group, number and ggf other information.
    Overall, I do not want to add to much of these, since you can already do this with:
    aiida-fleur data fleurinp cat <pk> | grep -i3 symOp or with aiida-fleur data fleurinp cat <pk> | grep row-
    Since we can cat any file in fleurinp, one can just grep for everything.

  2. With this I also agree, Fleurinpmodifier is also meant to be used interactively for example in ipython. Through, I currently do not see how to best expose the whole Fleurinpmodifier functionality in one command. Or do we just expose a fixed small set of cases on the cli that people often want to do?

  3. Would first have to be designed and implemented as an internal function/tool also with choice to keep the provenance.
    Which interface we then expose on the command line.
    I like this idea to give the user power to clean up 'per hand' on failed stuff.
    In general for this one should also disable (certain) failed calculation as valid caches. ;-)

@broeder-j
Copy link
Member Author

A garbage collection command would be nice. I.e workflows should not autodelete, but could write something in the extras.

Example all wc which fail write:
tash_fail: True

Test submission scripts write:
tash_test: True

If we do this, we can simple expose a command which runs a usual aiida delete over all those.
This has to be taken with care, since not further connected inputs will also be deleted.

broeder-j added a commit that referenced this issue Nov 23, 2020
Add first implementation of a command line interface(CLI)

This is a first layout with first commands implemented including:
    - data fleurinp list: query db for fleurinp
    - data fleurinp cat: cat a certain file, usually inp.xml
    - plot: exposing plot_fleur
    - data structure import: import structure from inp.xml
    - data parameter import
    - workflow res: print all content of all Dict outputs of a process
    - workflow inputdict: print content of all Dict inputs of a process
    - aiida-fleur launch <workflow/calcjob>

Launch is able to launch any aiida-fleur workchain from the command line.
A structure input can also be given as a file in any common structure format handable by ase like:
    - aiida-fleur launch inpgen -s ~/Desktop/1533724.cif
Solves issue  #14, leftovers and further ideas are found in issue #99
@broeder-j
Copy link
Member Author

commands to prepare easily wf parameter and other dict nodes,
also commands to list the default inputs of a certain workchain.

@broeder-j
Copy link
Member Author

The -s structurefile option should support the inpgen input file
The --fleurinp option should support inp.xml files, or a list of files with an inp.xml file.

@janssenhenning
Copy link
Contributor

janssenhenning commented Mar 15, 2022

A command aiida-fleur code inspect or aiida-fleur code configure which looks into a configured fleur code to figure out it's properties and them as extras. Then we maybe can start using these extras optionally to get rid of some of the quirks of the current code configuration, meintioning hdf5 in the description

  • program version
  • git describe
  • serial or parallel
  • configured libraries: hdf5, libxc, ...
  • Suggestions welcome :)

An additional aiida-fleur code show to display these extras together with the standard configuration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants