JaGeo / LobsterPy

Package to perform automatic bonding analysis with the program Lobster in the field of computational materials science and quantum chemistry
https://jageo.github.io/LobsterPy/
BSD 3-Clause "New" or "Revised" License
70 stars 27 forks source link

Some train 🚂 thoughts #162

Closed QuantumChemist closed 8 months ago

QuantumChemist commented 9 months ago

Recently with the new and temporary students (that are also rather inexperienced with using cli etc.) I think a lot about user friendliness. So I thought maybe it is a good idea to have a default functionality for each lobsterpy feature e.g. lobsterpy plotdos will automatically do something like lobsterpy plotdos --elements [list of atoms from POSCAR] instead of throwing an error. The default should be chosen in a way to get most out of it with minimum complexity (e.g. in case of the DOS plotting elementwise DOS is more common than plotting orbitalwise DOS and also maybe easier to comprehend for beginners (I'm not sure about the last part, but when I learned this stuff a good while ago, this was true for me)). Since I try to improve my programming skills in python (and C++) anyways by doing exercises on the weekend or so, I thought maybe I could implement it the next WE, if you (@JaGeo and @naik-aakash) are ok with this?

JaGeo commented 9 months ago

Yes, sure.

naik-aakash commented 9 months ago

Recently with the new and temporary students (that are also rather inexperienced with using cli etc.) I think a lot about user friendliness. So I thought maybe it is a good idea to have a default functionality for each lobsterpy feature e.g. lobsterpy plotdos will automatically do something like lobsterpy plotdos --elements [list of atoms from POSCAR] instead of throwing an error. The default should be chosen in a way to get most out of it with minimum complexity (e.g. in case of the DOS plotting elementwise DOS is more common than plotting orbitalwise DOS and also maybe easier to comprehend for beginners (I'm not sure about the last part, but when I learned this stuff a good while ago, this was true for me)). Since I try to improve my programming skills in python (and C++) anyways by doing exercises on the weekend or so, I thought maybe I could implement it the next WE, if you (@JaGeo and @naik-aakash) are ok with this?

Yes, sure! it is fine with me as well. Just wanted to say, this should not be an issue once the documentation is updated and also lot of cleaning in the cli module will be done soon. So restructuring will happen that will lead to properly showing specific options pertainting to each command. Now it is a bit messy leading to confusion.

Also, wanted to add lobsterpy plotdos --elementdos already generates a plot based on all elements in the structure. I agree the documentation at the moment is not up to date, making it harder to find. So maybe setting this arg as default is an option.

QuantumChemist commented 9 months ago

But I'm not referring to the documentation at all :) It's really more like beginners being very perplex when an error is thrown and from what I observed, the learning curve is a bit better when each feature had some defaults and at least give some kind of output that they can look at etc. I talk to you, Aakash @naik-aakash , the next few days about these defaults in case you have already started with something :)

naik-aakash commented 8 months ago

This is addressed now in #172, I have now set plot-dos arg to show total and element dos as default.

QuantumChemist commented 8 months ago

This is addressed now in #172, I have now set plot-dos arg to show total and element dos as default.

Oh thank you! I kinda failed, LobsterPy was not doing what I wanted.. Gonna check out how you managed that :)

QuantumChemist commented 1 month ago

@naik-aakash @JaGeo I found some time to write a proper GUI https://github.com/QuantumChemist/LobsterPyGUI/tree/main that runs on the BAM VDI (not on the sv servers because of the GLIBC version, but the IT wants to change from RD to those VDI anyways, so I didn't bother with this). The GUI is still only intended for beginners :)