-
Notifications
You must be signed in to change notification settings - Fork 18
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
Namelist Migration #163
Comments
Regarding this and the recent PR #190 . Right now lio has "3 namelists" and I think all need revision... The first one and clearest of them all is the new lionml: my intention was to eventually have all keywords be handled here. This is the one where I see the most versatility to work with. However, after seeing the manual I'm begining to wonder if we should have specific namelists for specific configurations, like the gpuoptions that deal with XC calculations criteria. Also: Cubegen is currently part of lio but should probably be better off as a PP program, and Geometry Optimization seems to be some hybrid configuration, doesn't hybrid has its own namelist? Now, the other two namelists are not clearly separated, but they are the "lio" namelist as read by amber, and the "lio" namelist as read by liosolo. These are not the same and if you put some of the keywords inside the "lio" namelist that is in the input amber, you will get an error (all of the GPU options for example). These namelist non-uniqueness is not ideal and the reason why I push to use a different name for the namelist that is read inside the lib. All this to say: For the time being, I think it will be best to keep in the manual a clear distinction between the keywords that can be read from amber and the ones that can't. I would also advise to have all input issues sorted before release, but in case we cannot, to have a disclaimer saying that the keyword scheme is soon to be revised and modified. We can keep backwards compatibility though. @fedepedron thoughts on this? |
By 3 namelists you mean "lionml", "lio" and "lio"-from AMBER? Agreed on the fact that maybe a lio namelist which has full compatibility with AMBER should be kept as such, although the new "lionml" should have all options available. Nevertheless, I still do not like the name (though its not that I have a better idea on how to call it...). Regarding cubegen, maybe it's possible to keep it separate as we keep tdanalize, but geometry optimization is intrinsecally built in LIO (it is not a HYBRID feature, you can actually do restrained minimizations for a full-QM system within LIO) and I believe we should keep it like that. Regarding the release schedule and for the sake of the (we hope bigger) userbase, these input issues should be sorted out ASAP. And in the manual maybe I would say like "look, AMBER CAN actually read some of the options, but it is better if you keep everything in a separate inputfile", as meaning "this is actually deprecated". This way AMBER/LIO usage is standarized along GROMACS/LIO and (in a future release) LAMMPS/LIO. PS: On a sidenote, while the error-handling subs for the namelist was initially a good idea, we have the issue that the return error values are not standarized between compiler. Unless you want to take into account every possible scenario, I think these checks should be kept to a minimum. |
lio namelist according to MY ambertool file contains:
|
My recommendation is to check init_lio_amber and start from there. |
Nah, I was wrong. Apparently those are the exact same keywords found in the official release of AmberTools. |
Keywords for restarts
These should live inside fileio_data module and there should be some functions in fileio ( Old namelist compatibility
Obs1: the presence of a non-default frestart turns rstlast true. |
lio namelist according to what lio can read:
IDK about you, but just looking at this it seems like a freaking mess: just putting it together was a pita, it's almost impossible to know what a keyword does based on the name, or even what part of the calculation it could affect, or where it is initialized to its default. There is even one variable named "integ": I dare every one of you to try to grep your way to finding out what it does. There are exeptions to all of this, of course: for example, DFTB and transport have all variables declared and initialized in the same place. But still, the general picture is caos, specially on the user end. I think we should do something about how we are organizing and dealing with keywords before this keeps getting further out of hand. |
For the record, integ, dens, dgtrig, intsoldouble, idip, and similar others are gone as of #235. I agree that this is quite a mess, and I liked @gonzalodm 's proposal to keep different namelists for different purposes (e.g., &tddft for TD variables or &dftb for DFTB variables). |
God bless the Pedron. BTW: I have no idea how you managed to get rid of integ. Or at least to make sure you got rid of it.
In which case we need to start discussing the divissions that would make more sense. And what variables need to go/change. |
We need to implement a new structure for lio keywords:
Why a new namelist?
I propose the following actionable steps:
The text was updated successfully, but these errors were encountered: