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

IOSS: Extend Text mesh for edgeset #445

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

Conversation

tokusanya
Copy link
Contributor

Edgesets in TextMesh

tokusanya and others added 30 commits March 13, 2024 19:29
-- ioss, adioa, exonull, faodel, gen_struc, main, pamgen, text_mesh, utest
gdsjaar and others added 27 commits March 13, 2024 19:37
…roperty

If the application set EXODUS_CALL_GET_ALL_TIMES to NO, then the timesteps
were only correct on rank=0 and zero on all other ranks.  This caused
problems when the timestep time values were negative as the check against
the last_written_time attribute failed and all timesteps were skipped.

This sets the timestep values to -double_max on the ranks where we skip
reading the actual timestep time values and all other logic stays the
same.

We could skip more code and checking for that special case, but this way
we can still run most of the same logic in case application wants to
sync the times itself.
Reversed test just because of "feels" better
Fixed some leftover bad formatting while in the file.
@tokusanya
Copy link
Contributor Author

@gdsjaar There's probably some work to clean this up .... not sure why I had so many merge issues.

@gsjaardema
Copy link
Member

I think there is some confusion as to what an edgeblock and an edgeset are. This PR seems to treat an edgeset as similar to a sideset. An ioss sideset (surface) has one or more sideblocks and corresponds to an exodus sideset. The ioss sideset/surface reads an exodus sideset and splits it into SideBlocks which are usually groups of sides with homogenous topology...

An edgeset (ioss and exodus) is a group of edges in the same way that a nodeset is a group of nodes and a elementset is a group of elements. An edgeset references explicitly defined edges in the model which are defined in one or more edgeblocks -- Note that an edgeset does not contain edgeblocks, it groups a subset of the edges which are defined in the edgeblocks in a model. The edgeblocks are similar to element blocks in that they are all of the same topology and are defined by their nodal connectivity. Similarly faceblocks are all of the same topology and are defined by either their nodal connectivity or their edge connectivity. If a model has edges and faces, then there is also a connectivity relationship from elements to faces to edges.

See ExodusII-Addendum for a description of how the edge/face blocks/sets are defined and added to Exodus data model. Chapter 2 has the description and Chapter 4 has the Exodus API modifications/extensions made to support these entity types.

I think that what is being attempted here is to have some way of specifying that a sideset is referiring to the "second level" of its boundaries (edges) instead of the more common "first level" (faces) without using the current kluge.

Let's continue this in a discussion... #446

@gsjaardema gsjaardema marked this pull request as draft July 17, 2024 13:10
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.

3 participants