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

overlapping text in "Coupling Schemes" block #10

Open
JulianSchl opened this issue Jul 20, 2021 · 3 comments
Open

overlapping text in "Coupling Schemes" block #10

JulianSchl opened this issue Jul 20, 2021 · 3 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed

Comments

@JulianSchl
Copy link

Hi,

I am getting an overlapping of text in the Coupling Schemes block:
Screenshot 2021-07-20 14 16 53

Please see my precice-config.xml below:

<?xml version="1.0"?>
<precice-configuration>
  <log>
    <sink
      filter="%Severity% > debug and %Rank% = 0"
      format="---[precice] %ColorizedSeverity% %Message%"
      enabled="true" />
  </log>

  <solver-interface dimensions="2">
    <data:vector name="Force_Data" />
    <data:vector name="Displacement_Data" />

    <mesh name="Fluid-Mesh">
      <use-data name="Force_Data" />
      <use-data name="Displacement_Data" />
    </mesh>
    
    <mesh name="Solid-Mesh">
      <use-data name="Displacement_Data" />
      <use-data name="Force_Data" />
    </mesh>

    <participant name="Fluid">
      <use-mesh name="Fluid-Mesh" provide="yes" />
      <use-mesh name="Solid-Mesh" from="Solid" />
      <write-data name="Force_Data" mesh="Fluid-Mesh" />
      <read-data name="Displacement_Data" mesh="Fluid-Mesh" />
      <mapping:rbf-thin-plate-splines direction="write" from="Fluid-Mesh" to="Solid-Mesh" constraint="conservative" z-dead="true"/>
   	  <mapping:rbf-thin-plate-splines direction="read" from="Solid-Mesh" to="Fluid-Mesh" constraint="consistent" z-dead="true"/>
    </participant>

    <participant name="Solid">
      <use-mesh name="Solid-Mesh" provide="yes" />
      <write-data name="Displacement_Data" mesh="Solid-Mesh" />
      <read-data name="Force_Data" mesh="Solid-Mesh" />
    </participant>

    <m2n:sockets from="Fluid" to="Solid" exchange-directory=".." enforce-gather-scatter="1"/>

    <coupling-scheme:parallel-explicit>
      <time-window-size value="0.0001" />
      <max-time value="10" />
      <participants first="Fluid" second="Solid" />
      <exchange data="Force_Data" mesh="Solid-Mesh" from="Fluid" to="Solid" />
      <exchange data="Displacement_Data" mesh="Solid-Mesh" from="Solid" to="Fluid" />
    </coupling-scheme:parallel-explicit>
  </solver-interface>
</precice-configuration>
@fsimonis fsimonis added good first issue Good for newcomers help wanted Extra attention is needed labels Oct 6, 2023
@fsimonis
Copy link
Member

We could play a bit with nodesep and ranksep to get this right.

@YonatanGM
Copy link

YonatanGM commented Dec 24, 2024

Hi,

I’m a student in the Simulation Software Engineering course, and would like to work on this issue.

From what I’ve seen (browsing through the tutorials and the config visualizer page), there are some readability problems beyond the overlapping text mentioned. I’ve described these below in more detail.

Problems:

  • Overlapping text: Text like "pressure" and "heat flux" can overlap with participant names or get crossed out by the participant container border.
    Screenshot 2024-12-23 at 23 50 57
    Screenshot 2024-12-24 at 01 19 17

  • Ambiguous labels: In the perpendicular flap tutorial, it's not clear which arrow the label "displacement" belongs to. It could be misinterpreted as data being mapped from the fluid mesh to the solid mesh when it’s actually data the fluid participant reads from the solid participant if I'm not mistaken.
    Screenshot 2024-12-23 at 23 29 55

  • I find the labels "first" and "second" not easy to read due to being placed close and that area being more crowded.
    Screenshot 2024-12-23 at 23 29 42

  • From aesthetics standpoint, it would be nice to not have the sharp angles in the edges.
    Screenshot 2024-12-23 at 23 50 57

  • Touching boxes/containers and really small edges. Need padding or minimum margin around the containers to avoid this.
    Screenshot 2024-12-24 at 01 35 04

  • The text throughout the diagram feels flat because the same color, font size, and style are used for everything.

Suggestions:

  • Edge aligned labels: The labels could be rotated to follow the edge direction. This should naturally help minimise overlaps and ambiguity about which edge the label belongs to.

  • Text size based on importance:

    • Large: "Coupling scheme," "Communicators," and participant names (e.g., "Fluid," "Solid"). We could maybe position these at the top left corner of the boxes instead of the middle.
    • Medium: Other text inside the boxes (e.g., "Solid-Mesh2D," "Solid-Mesh from Solid," "sockets," "serial-implicit").
    • Small: Data fields (e.g., "Displacement," "Force") and mapping schemes (e.g., "RBF," "nearest neighbor").
    • Tiny: Labels like "first" and "second." Couldn't we just use "1" and "2"?
  • Use different color to represent the data fields and mapping schemes .

  • Consider italicizing text on top of arrows (i.e data fields and mapping schemes) while keeping the rest of the text inside the boxes in normal font.

  • Make arrows curve smoothly

  • Padding around the containers/boxes

  • There is no "Participant" container, instead, the title is just the name of the participant, like "Fluid" or "Solid." To be consistent with other containers, like "Coupling Scheme" and "Communicators," wouldn’t it make sense to have the title be "Participant" instead? The actual names of the participants are already shown inside the container (in the little octagonal box), so which participant it is should already be clear.

  • Instead of coloring the arrows and shapes around the text to imply the associated participant, why not fill the participant containers themselves with different colors (e.g., blue and orange) and use the same color for all the edges? Since the edges (e.g., those coming from the coupling scheme) clearly connect to specific participants, do we need this information encoded in the edge color as well?

Before I start, would like to get your opinion on these suggestions and what should be a priority (so I can focus on a smaller problem) or any pointers on how to implement said suggestions.

Thanks for the assistance!

@fsimonis
Copy link
Member

fsimonis commented Jan 8, 2025

@YonatanGM Hi!

there are some readability problems beyond the overlapping text mentioned

This issue is about overlapping text. Everything beyond that should be moved into possibly multiple new issues. Please also try to separate existing problems from aesthetic suggestions.

Have a look at the graphviz specification to see if these suggestions can actually be implemented for the dot layouting engine. There are many limitations.

For tinkering, I recommend using xdot to display and autoreload generated dot files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants