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

Graphical package overview #1101

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Conversation

termi-official
Copy link
Member

@termi-official termi-official commented Nov 6, 2024

Includes two proposals to resolve #696 .

A (f32cd96)

image

B (a926a13)

image

Open Questions

Should FerriteViz, FerriteGmsh and FerriteMeshParser be included in the figure?

Copy link

codecov bot commented Nov 6, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 93.57%. Comparing base (3b081be) to head (342e6c5).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1101   +/-   ##
=======================================
  Coverage   93.57%   93.57%           
=======================================
  Files          39       39           
  Lines        6071     6071           
=======================================
  Hits         5681     5681           
  Misses        390      390           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@KnutAM
Copy link
Member

KnutAM commented Nov 6, 2024

Nice flowcharts!

Some quick comments,

  • ConstraintHandler -> SparsityPattern missing?
  • Can Ferrite types have a different color coding or similar to other things (user code / system matrices / vectors)

An overall comment,
What is the main purpose? Showing what components Ferrite has and the connections between, or a typical workflow? To me, it looks a bit mixed at the moment.

@termi-official
Copy link
Member Author

Thanks for taking a look Knut!

* ConstraintHandler -> SparsityPattern missing?

I actually removed this one again, because it really messed around with the layouting again and most users do not need this anyway. I can add it back if you think it is important to show in the overview.

* Can Ferrite types have a different color coding or similar to other things (user code / system matrices / vectors)

Probably, but I gave up with the styling at some point, as I could not get meaningful error message out of mermaid about what I am doing wrong. So I decided to give the different parts different node geometries instead, as I could get this one working.

An overall comment, What is the main purpose? Showing what components Ferrite has and the connections between, or a typical workflow? To me, it looks a bit mixed at the moment.

The main purpose is the former, to show users on a high level how the commonly used main components in Ferrite are connected to each other. I hope that new users can grasp the overall architecture with more ease using this diagram. If there is anything else which can be imporved or if anything is missing just dump in in this PR and let us try to figure out how to add it then.

@KnutAM
Copy link
Member

KnutAM commented Nov 6, 2024

I hope that new users can grasp the overall architecture with more ease using this diagram.

TBH for me it's hard to follow both diagrams (no criticism, because it's hard to make them easy to follow, and I wouldn't know how to do it better). I would think that a diagram showing the typical workflow could be easier (e.g. for the heat eq. tutorial), but its hard to judge when already being so used to the way Ferrite works...

And I'm more a fan of structured/aligned flowcharts, and would probably have made an svg instead of mermaid, but that is also just a matter of taste. And is again because I tend to think in workflow.

But I do think having something like this would be very nice! So to be clear: I support going ahead in this direction, and then we can always improve/revise if we have even better ideas in the future!

@fredrikekre
Copy link
Member

Perhaps there should be two diagrams, one which is "devdocs"-like describing dependencies between the types and another one which is "workflow"-like?

@termi-official
Copy link
Member Author

Perhaps there should be two diagrams, one which is "devdocs"-like describing dependencies between the types and another one which is "workflow"-like?

If we want to add more diagrams, I think that for the devdocs it is beneficial to add (or generate) one for each component with more details, such that we see more how the internal types relate to each other. See e.g. CellValues internals.

Regarding the workflow visualization, I am not very sure what exactly should be shown. Sequence diagrams? User journeys?

@KnutAM
Copy link
Member

KnutAM commented Nov 7, 2024

Regarding the workflow visualization, I am not very sure what exactly should be shown. Sequence diagrams? User journeys?

I was thinking about something in this direction,

image

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

Successfully merging this pull request may close these issues.

Package usage flowchart
3 participants