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

More verbose output if desired #88

Open
maxscheurer opened this issue Aug 21, 2020 · 5 comments
Open

More verbose output if desired #88

maxscheurer opened this issue Aug 21, 2020 · 5 comments
Labels
feature New feature or request

Comments

@maxscheurer
Copy link
Member

maxscheurer commented Aug 21, 2020

I'm wondering if we could make the output more verbose before the solver starts during the construction of the ADC matrix, import etc.
I have no real plan on how to do this in a nice way, but it feels awkward especially for large calculations to have no sign of progress output 😢 Leaving this here as a note that we don't forget.

@maxscheurer maxscheurer added the usage Question about how to use adcc label Aug 21, 2020
@mfherbst
Copy link
Member

That's a good point, but I'm very suspicious about this. The point of adcc is not to be like one of the traditional text-in, text-out codes. Perhaps one could commit to the logger system of python and send different kinds of outputs there? Like every class (HF, LazyMp, AdcStates, etc) has some sort of a function called by the workflow, which writes basic stuff to the logger (e.g. dipole moments or something like that). The difficult thing is to make sure that the underlying lazy computations are only triggered when the output is needed.

@mfherbst mfherbst added feature New feature or request and removed usage Question about how to use adcc labels Aug 21, 2020
@maxscheurer
Copy link
Member Author

The point of adcc is not to be like one of the traditional text-in, text-out codes.

That's precisely the point!

I've never used the Python logger system, but it's probably worth it, because currently we're always writing to standard output (I guess?). For most cases, you probably don't need any super-verbose output, but the user should at least be able to enforce verbose output if desired without corrupting the demand-driven paradigm.

@mfherbst
Copy link
Member

Agree. I never used logger either, but it seems exactly what we want. I don't know the details how it works. Maybe it's no problem to integrate that sensibly with the demand-driven workflow, maybe we need to add some icing on top, but knowing python it's probably not too big an issue.

@maxscheurer
Copy link
Member Author

I agree. However, all of the logging needs to 'co-exist' with stuff like print(state.describe()) etc.
I think I'm in favor of steering 'meta' output on the progress of the calculation (like currently Davidson iterations) with logging, but probably we should not mix it up with printing of 'preliminary' properties...

What do you think?

@mfherbst
Copy link
Member

What I would do is that the standard workflow (that includes davidson output any sort of progress prints, intermediate results etc) goes to the logger. If you "display" an object or print it manually, than obviously that goes to stdout or wherever you want it to go. The latter thing is kind of the building block for the former thing.

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

No branches or pull requests

2 participants