Sketch the basic concept with sequence diagrams
The idea is to graphically represent the classes which are needed to setup and solve a model. These diagrams could be used in the docs or in a JOSS article. Probably they need to be simplified (e.g. only Field instead of Field, FieldAxisymmetric, ...).
Region and Fields
flowchart LR
A[Mesh] --> D[Region]
B[Element] --> D[Region]
C[Quadrature] --> D[Region]
D --> E[Field]
D --> F[FieldAxisymmetric]
D --> G[FieldPlaneStrain]
E --> H(list of fields)
F --> H
G --> H
H --> K[FieldContainer]
Degrees of Freedom by Boundary Conditions
flowchart LR
A[Field] --> B[Boundary 1] --> E(dict of boundaries)
A --> C[Boundary 2] --> E
A --> D[Boundary ...] --> E
or
flowchart LR
A[FieldContainer] --> B(dof.uniaxial, dof.shear, etc.)
B --> C(dict of boundaries)
Solid Bodies
flowchart LR
A[FieldContainer] --> C[SolidBody]
B[ConstitutiveMaterial] --> C
C --> D(sparse vector/matrix)
Step
flowchart LR
A[SolidBody 1] --> B[list of items]
F[SolidBody 2] --> B
G[SolidBody ...] --> B
B --> C[Step]
D(dict of boundaries) --> C
E(dict of ramped items and boundaries) ---> C
Job
flowchart LR
A[Step 1] --> B(list of steps)
E[Step 2] --> B
F[Step ...] --> B
B --> C[Job]
C[Job] -.-> D[time-series XDMF result file]
Awesome graph! If you are interested in submitting to JOSS, we recommend to use our pyOpenSci Reviews Scientific Python Software to get support for submitting to JOSS. You can get your library reviewed to see if it follows Python library best practices. Of course, you can also submit to JOSS without our support :)
Thanks for pointing that out @tkoyama010! I opened a pre-submission issue https://github.com/pyOpenSci/software-submission/issues/211.
Awesome! I cannot wait to read your JOSS paper.
The sequence diagrams were simplified for the paper draft and are stored here: https://github.com/adtzlr/felupe-paper (private). ~Will soon be public available.~ Now available in the main-branch.