Giter Club home page Giter Club logo

tess2's People

Contributors

mrzv avatar tpeterka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tess2's Issues

Simplify implementation of neighbor_edges() in tet.cpp

Issue by Tom Peterka
Saturday Nov 22, 2014 at 22:48 GMT


Replace:

#!c++

  visited_tets.insert(t);

  for (int i = 0; i < 4; ++i) {
    int u = tets[t].verts[i];
    if (u != v) {
      nbrs.push_back(std::make_pair(u,t));
      visited_verts.insert(u);

      int next = tets[t].tets[i];
      if (next == -1)
    finite = false;
      else
    q.push(next);
    }
  }

With:

#!c++

  q.push(t);

It's not a bug, just a simple implementation, and this is the way that neighbor_tets() and complete() are already structured. A student pointed this out to me when he was using the code. It needs to be done in both tess1 and tess2. I would do it in the development forks first, and then it can get pushed to main line later after it is tested.

I can take care of it. Any reason why I should not do this?

out-of-core bug

When the number of total blocks is greater than the number of processes and the number of blocks keeping in memory is less
than the number of local blocks, an error is thrown for sending and receiving data between blocks. I have tried to run examples/pread-Voronoi in the out-of-core mode. Here is the input parameters in PREAD_VORONOI.
procs=2
infile=./unit-cube.h5
opts="-m 1 -b 4"
However, in the out-of-core mode, the redistribute() function in src/tess-regular.cpp which sorts and redistributes points in blocks threw an exception. The print information is as follows.
Saving block gid 0, points 32768
Saving block gid 2, points 32768
---------round=0-------------------
gid 1, points 32768
gid 3, points 32768
[1] Sent 16424 points to [0]
[3] Sent 16315 points to [2]
Saving block gid 3, points 16453
Saving block gid 1, points 16344
Loading block gid 2, points 32768
Loading block gid 0, points 32768
gid 2, srp.in_link().size=0, srp.incoming()->size()=0
gid 0, srp.in_link().size=0, srp.incoming()->size()=0

It seems that communication can only occur between blocks in memory. The blocks in storage (i.e. gid 0 and gid 2) cannot dequeue data that is enqueued by the blocks in memory.

I would be very grateful if you could take a moment to fix this bug.

Clean up the API

Issue by Dmitriy Morozov
Saturday Nov 22, 2014 at 22:00 GMT


I think the general principle should be to minimize how much the user needs to know about DIY, while still allowing full access. This means on the one hand preserving tess(master), which assumes the blocks are prepared in the dblock_t format, while providing convenience functions that simply take points as input.

  • Create a function akin to tess(world, points), which would set up its own master (from the world communicator), redistribute the points, and compute the Delaunay triangulation. The user would simply get the local points (resulting from the redistribution) and local tetrahedra in return. Or maybe it's Ok to return the local dblock_ts; that much exposure to the internals should be Ok.
  • Move redistribute() from examples/pread-voronoi/pread-voronoi.cpp into the main tess library.
  • Create a simpler tess(master) that sets up its own quants and times. As interesting as those are to us, the users probably wouldn't care about them, so no need to expose them in an API.

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.