Commit Graph
14 Commits
Author SHA1 Message Date
Jakub Cerveny 01b9a0ba6c NCMesh: fixed error in boundary closure 2017-03-28 12:13:34 +02:00
Veselin Dobrev ebcf17a678 Run through 'make style'. 2017-03-27 12:08:11 -07:00
Jakub Cerveny 6143508454 Fixed destruction of NCMesh in parallel. 2017-03-27 15:29:59 +02:00
Veselin Dobrev cb810a3be2 Merge branch 'master' into ncmesh-mem-opt-dev 2017-03-13 15:51:38 -07:00
Jakub Cerveny be657cd890 Added proper destruction of NCMesh. Fixed destructor of BlockArray. 2017-03-13 15:29:00 +01:00
Veselin Dobrev f7c14eaf57 Various small changes in the BlockArray, HashTable, and NCMesh classes.
In class BlockArray:
* Move the capability to delete elements into the derived class HashTable.
* Rename the methods New() to Append().
* Rename 'Iterator' -> 'iterator' and 'ConstIterator' -> 'const_iterator' and
  updated implementation.
* Add methods begin(), cbegin(), end(), cend().
* In the destructor, call the destructors for all entries.

In class HashTable:
* Add methods: Size(), NumIds(), NumFreeIds(); rename Exists() -> IdExists().
* Overload the inherited iterators to skip unused/free elements.
* Add methods: begin(), cbegin(), end(), cend().

In class NCMesh:
* Add support for deleting entries stored in the 'elements' BlockArray.
* The unused/free entries of 'elements' are marked by setting the data member
  'parent' to -2.
* Add method NCMesh::PrintStats().
2017-03-09 17:34:20 -08:00
Veselin Dobrev b2373da75c Update a comment, remove unused header. 2017-02-28 18:48:03 -08:00
Andrew T. Barker fcae1a2b5a Mark old Vertex.SetCoords() method as deprecated, and replace all
references with the new memory-safe version.
2017-02-28 09:44:40 -08:00
Veselin Dobrev 3f1b03c952 Added sub-class ConstIterator to class BlockArray.
Fix DenseTensor::MemoryUsage().
2017-02-24 20:17:13 -08:00
Jakub Cerveny eca90726ff NCMesh memory optimizations developed internally at LLNL.
Based on commits by Jakub Cerveny:

    Reverted inline-quad.mesh

    make style

    Testing code in ex1 and ex9p

    Mesh vertices are not calculated by NCMesh when Nodes != NULL.

    Optimized NCMesh::element_vertex, the table is now empty for conforming
    meshes.

    WIP reducing size of NCMesh element-vertex table.

    Optimization in NCMesh::FaceSplitType, fewer hash table lookups.

    Fixed ParNCMesh::CalcFaceOrientations

    Fixed face neighbor vertices.

    Fixed Element::parent after loading NCMesh.

    Fixed derefinement.

    Fixed NeighborExpand (needed by Rebalance).

    More ParNCMesh fixes.

    Fixed neighbor calculation.

    WIP more fixes in ParNCMesh.

    WIP fixing ParNCMesh for new NCMesh structs

    NCMesh loading works again.

    Removed NCMesh::GetMidEdgeNodeSimple

    Fixed face management (creation/deletion), broken earlier by new structs.

    Removed NCMesh::Vertex, NCMesh::Edge. We are down to ~290 bytes / element in uniform mesh.

    Removed NCMesh::Vertex::pos, fixed some bugs.

    WIP removing NCMesh::Vertex::pos

    Fixed bug introduced by data structure changes.

    Removed member NCMesh::Edge::attribute

    Finished converting NCMesh to new data structures.

    WIP changing the NCMesh data structures, everything is a bit of a mess.

    BlockArray is now a base of HashTable

    WIP: modified HashTable methods for the new pointer-less data, improved
    BlockArray.

    WIP updating HashTable for a new underlying storage (BlockArray)

    Added class BlockArray, a generic block allocator/array.

    Updated memory usage calculations in NCMesh.
2017-02-13 18:41:40 -08:00
Tzanio 1569425857 Version 3.3 2017-01-28 22:05:47 -08:00
Jakub Cerveny 125ff226e4 Version 3.2 2016-06-30 10:37:30 -07:00
Tzanio dbae60fe32 Version 3.1 2016-02-16 15:45:48 -08:00
Tzanio Kolev 9d7774a03e Version 3.0 2015-01-26 15:07:34 -08:00