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

[WIP] Jupyter widgets: automatic update of plot options #2911

Conversation

codingS3b
Copy link
Contributor

At the moment the options of each jupyter widget (like 'species' or 'species_filter') are hardcoded to a single option (see screenshot).
widget

This PR will improve this situation by dynamically adapting those options based on the values common to the selected simulations.

Before implementing something we should discuss the following:
a) is it sufficient to update those parameters only when the selected simulations change? Or do we also update them when the selected simulation time changes or when any of the other options changes?

b) Should the query for available species, filters, and other options be implemented in the data classes or in the widget classes?

@codingS3b codingS3b changed the title [WIP] Jupyter widgets: automatically update [WIP] Jupyter widgets: automatic update of plot options Feb 28, 2019
@ax3l ax3l added the component: tools scripts, python libs and CMake label Mar 13, 2019
@ax3l
Copy link
Member

ax3l commented Mar 13, 2019

Thank you, that's a wonderful update!

a) is it sufficient to update those parameters only when the selected simulations change? Or do we also update them when the selected simulation time changes or when any of the other options changes?

Currently yes, since we compile in the general options and parametrize them at runtime. Nevertheless, we would like to change them at runtime potentially, e.g. with cling, and have done quite flexible functor chains with ISAAC already.

b) Should the query for available species, filters, and other options be implemented in the data classes or in the widget classes?

I think that would be a fantastic data (or even input reader) class. do you have an idea where to parse them from? We could also add such info to our simOutput/output text file (available species is already in there, yet not the available species filters per species) if it helps.

@PrometheusPi PrometheusPi self-assigned this Jul 23, 2019
@PrometheusPi
Copy link
Member

@codingS3b What is the status of this pull request? Can I start reviewing?

@codingS3b
Copy link
Contributor Author

Sorry, kind of forgot about that issue. It is definitely not ready for review!
I don't really know how to get the necessary information for dynamic option updates based on the picongpu output files and help would be greatly appreciated here.

So basically I would need some class that tells me (given a simulation output directory) which 'species' and which 'Species_filter' options are available for a chosen plugin (like the energy_histogram or the phase_space plugin).

Once this functionality exists, the rest should be relatively easy (by using the options common to all selected simulations).

@ax3l
Copy link
Member

ax3l commented Aug 23, 2019

Hm, it might help to have the openPMD plugin in place #2966 and dump at t=0 a make_empty version of our simulation in json. @franzpoeschel

@franzpoeschel
Copy link
Contributor

The json backend is currently not available for parallel usage in the openPMD API, so your best bet will be the ADIOS backend for the moment. (HDF5 backend still has a bug)

@ax3l
Copy link
Member

ax3l commented Aug 30, 2019

The json backend is intentionally serial (and will likely stay that way for good). The idea is to make a single, make_empty "mocked" dump from a master rank after reducing the meta data to it.

@PrometheusPi
Copy link
Member

@codingS3b Will you continue working on this pull request or should we close it (for now)?

@codingS3b
Copy link
Contributor Author

@PrometheusPi I am not working on this right now since I hope that, after converting all data readers to work with openPMD inputs, getting the necessary information will become much easier. So, if development on the readers is not close to being finished, this can be closed for now and re-opened later.

@PrometheusPi
Copy link
Member

PrometheusPi commented Feb 25, 2020

@codingS3b Thanks for the input. I agree that this should be supported by the readers. As suggested I will close this pull request (for now).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: tools scripts, python libs and CMake
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants