Coder Social home page Coder Social logo

cavity_visualization_utilities's People

Contributors

joshia5 avatar mortezah avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

joshia5

cavity_visualization_utilities's Issues

Define a general format data file for saving/loading curved cavities

How to handle cavities on other mesh formats

The current utility https://github.com/SCOREC/core/blob/master/test/makeAllCavities.cc needs a .smb mesh as a starting point to visualize the cavities. This can make this a bit difficult to use with other mesh formats. For example, if one wants to visualize an omegah mesh, they have to be converted to .smb first.

This can be made a lot easier by having a simple way of storing cavities in a text file and adding a new option to https://github.com/SCOREC/core/blob/master/test/makeAllCavities.cc to read that file and make the cavity for visualization.

This is a starting point for how that data file has to be structured and once we have a solid way of doing that, it would be implemented.

File format to represent mesh cavities

# vertex coordinates
VERT_COORDS NV
1.0 3.4 4.5
12.0 1.0 10.0
...
...
1.0 1.0 1.0
VERT_COORDS_END

# edge to vertex connectivity table
EDGE_VERT NE
0 1
10 3
...
...
...
3 9
EDGE_VERT_END

# face to edge connectivity table
FACE_EDGE NF
1 4 5
4 6 7
...
...
9 10 4
FACE_EDGE_END

# tet to face connectivity table
TET_FACE NT
1 2 3 4
4 3 6 9
...
...
12 9 8 15
TET_FACE_END

# edge internal control point coordinates
EDGE_CPS NE NC
x_1 y_1 z_1 x_2 y_2 z_2 ... x_(NC-1) y_(NC-1) z_(NC-1)
...
...
x_1 y_1 z_1 x_2 y_2 z_2 ... x_(NC-1) y_(NC-1) z_(NC-1)
EDGE_CPS_END

# face internal control point coordinates
FACE_CPS NF NC
x_1 y_1 z_1 x_2 y_2 z_2 ... x_(NC-1) y_(NC-1) z_(NC-1)
...
...
x_1 y_1 z_1 x_2 y_2 z_2 ... x_(NC-1) y_(NC-1) z_(NC-1)
FACE_CPS_END

# tet internal control point coordinates
TET_CPS NT NC
x_1 y_1 z_1 x_2 y_2 z_2 ... x_(NC-1) y_(NC-1) z_(NC-1)
...
...
x_1 y_1 z_1 x_2 y_2 z_2 ... x_(NC-1) y_(NC-1) z_(NC-1)
TET_CPS_END

# driver entity of the cavity
DRIVER_ENTITY ND
v0
v1
v2
DRIVER_ENTITY_END
  • Empty lines and lines starting with # will be ignored
  • Each section of data has to be in a block starting with BLOCKNAME INT (for info related to mesh connectivity and vertex coordinates) or BLOCKNAME INT INT (for control point data) and ending with BLOCKNAME_END
  • The order in which the blocks appear does not matter.
  • All blocks have to be present. For example for cubic cavities even though we have no internal control points for tets the file should still have the following (empty) block
TET_CPS 0 0
TET_CPS_END
  • when there is only one integer after the starting name of the block the number of lines before the end of that block has to match that integer
  • when there are two integers after the starting name of the block the number of lines before the end of that block has to match the first integer and the number of elements in each line has to be 3 times the second integer
  • The DRIVER_ENTITY block is to identify the entity used to drive the cavity so it can be visualized with a different color in ParaView. The integer ND can only have values 1 (for cavities made from a vertex), 2 (for cavities made from an edge), and 3 (for cavities made from a face). And the integers that follow identify the vertices of that entity.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.