pySDC icon indicating copy to clipboard operation
pySDC copied to clipboard

Enhancing the user experience and onboarding

Open pancetta opened this issue 7 months ago • 13 comments

Long time ago, I thought having a website with some examples is a good idea to give users a first glimpse of what pySDC does and how. I still think it is, but the way the examples, tutorials, projects are presented is more than outdated, preventing interactivity, understanding and engagement. I think it is time to change this.

More precisely, I propose to

  • Overhaul the website, put it on a more modern basis, make it more reactive
  • Move (at least) the tutorials to an interactive playground using Jupyter Notebooks/JupyterHub, maybe with AI support
  • Include some developer documentation (how the datatype, problem, sweeper, etc ... are structured)
  • Use a RAG/Chatbot trained specifically to answer pySDC-related questions, following what HiRSE is doing
  • Improve the testing, both in terms of coverage and readability to support the documentation
  • Enhance the CI to also work (reliably) on heterogeneous architectures

Yes, this will be a lot of work and no, I don't know if all of that will work out well (enough), but I think it is worth trying.

This issue is meant ONLY to collect expressions of interest from pySDC developers and users as well as further ideas. Please refrain from discussing these ideas in detail here, we will find another place to do this. Instead, indicate your general interest in this here. And the best part: indicating interest does not mean you got to do this. Instead, I would like to leverage your expressions of interest to apply for external funding.

pancetta avatar Apr 24 '25 06:04 pancetta

This sounds like a good plan for increasing pySDC's reach. I could work on this later this year. I would give highest priority to updating the tutorials to notebooks and untangling long integration tests to multiple unit tests.

brownbaerchen avatar Apr 24 '25 07:04 brownbaerchen

Sounds like a great plan - I'd be really interested to see how this goes, in particular the examples that use other libraries such as Firedrake for the spatial discretisation...

jshipton avatar Apr 24 '25 07:04 jshipton

I like this idea! It will help getting users on board and by this increase the usage of pySDC.

I would propose to put emphasis on the tutorials (notebooks) and the overall accessibility of the website/documentation. Not only in a technical sense (reactive design; complying with recommendations e.g. from w3c) but also in terms of content by e.g. adding a RAG to be able to ask questions about usage of pySDC.

When the tutorials are converted into notebooks, they could also be used to automatically test. By this, it is ensured, that the tutorials work and produce the expected results as well as increasing test coverage and/or work as integration (or even end to end) test.

jakob-fritz avatar Apr 24 '25 07:04 jakob-fritz

I would really appreciate this. A lot of the doctoral researchers in our group do use pySDC and anything that helps them to learn, use and modify the code would be hugely valuable.

danielru avatar Apr 24 '25 07:04 danielru

Also love the idea. If possible, maybe this could include some developer documentation too (how the datatype, problem, sweeper, etc ... are structured), eventually in parallel to some small restructuration as initiated with #446

Also, Jupyter notebook are a nice tool for documentation, and can be included in the documentation website while tested by CI, as it is done in qmat, see Tutorials page

tlunet avatar Apr 24 '25 08:04 tlunet

Great idea! I am currently not a user and so far I have absolutely no idea how pySDC works. However, with such a more reactive example website, interactive tutorials, chatbot or similar, I would definitely be interested in learning more and trying it out! Thus, I want to express my interest here and confirm that this would be valuable.

Thinkpiet avatar Apr 24 '25 10:04 Thinkpiet

Like the idea too :) I can help with developing some test cases with power system simulations.

junjie-zh avatar Apr 24 '25 11:04 junjie-zh

sounds like a great idea!

ongbw avatar Apr 24 '25 15:04 ongbw

This would be great. I'd especially appreciate the developer documentation!

sgoetschel avatar Apr 25 '25 13:04 sgoetschel

Good idea! I will work on updating the tutorial and write it in a notebook.

ikrom96git avatar Apr 28 '25 05:04 ikrom96git

Great idea! It would be incredibly useful not only for research, but also for teaching, outreach, and attracting new people to the PinT community!

grosilho avatar Apr 28 '25 05:04 grosilho

I also strongly support this idea. This project would make PySDC more accessible, including to students at other institutions (like mine) who would be interested, and it would help open up collaborations with other Python packages (like PyAMG, which implements algebraic multigrid, AMG, for spatial solves, where I'm a co-developer).

jbschroder avatar Apr 28 '25 08:04 jbschroder

From the following two perspectives I support this idea:

  • pySDC is very useful for short-lived projects such as Bachelor or Master thesis projects if they want to use advanced time stepping methods for PDEs. I supervised this thesis where pySDC allowed us to apply SDC in a coupled simulation. The interfacing of pySDC with FEniCS was also very handy. It would be useful to further improve the usability in order to reduce the effort required for onboarding to let students get even deeper into the topic. Additionally: I think the installation process of pySDC works very smoothly which probably saved us a lot of time and frustration during the onboarding phase.
  • In my own research on higher-order time stepping I often struggled finding off-the-shelf time-stepping schemes for PDEs with spatial-discretization using FEM. For firedrake there is irksome which offers a very intuitive interface. However, I'm working with FEniCS and tried to fill this gap by using pySDC. I gave up at some point using pySDC in my own experiments due to the entry barrier and since it was not my main research focus. In this thesis we developed a prototypical implementation inspired by irksome for FEniCS as a work-around.

I assume you already know, but for sake of completeness: FEniCS is at its end-of-life and pySDC does not support the successor FEniCSx but maybe such an upgrade would also fit into the funding you are planning to apply for.

BenjaminRodenberg avatar Apr 30 '25 14:04 BenjaminRodenberg