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

Nodal fields redesign #77

Open
wants to merge 58 commits into
base: main
Choose a base branch
from
Open

Nodal fields redesign #77

wants to merge 58 commits into from

Commits on May 23, 2024

  1. Configuration menu
    Copy the full SHA
    ad10273 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    961b550 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5d5bf6b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    63a775a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    583110e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    34b455e View commit details
    Browse the repository at this point in the history
  7. lib/mito/fem: in class {QuadratureField} remove redundant {inline} of…

    … {constexpr} function
    biancagi committed May 23, 2024
    Configuration menu
    Copy the full SHA
    679e7a6 View commit details
    Browse the repository at this point in the history
  8. lib/mito/fem: in class {QuadratureField} remove setter for {name} att…

    …ribute
    
    Fields should have immutable names.
    biancagi committed May 23, 2024
    Configuration menu
    Copy the full SHA
    f5fca26 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    fe1df66 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2024

  1. Configuration menu
    Copy the full SHA
    552cc1c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8be72ff View commit details
    Browse the repository at this point in the history
  3. lib/mito/fem: fix compiler error

    Define {HAVE_TENSOR} and {HAVE_COMPACT_PACKINGS} before including {pyre}.
    biancagi committed May 24, 2024
    Configuration menu
    Copy the full SHA
    bf6a896 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    56e323f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a4c00bb View commit details
    Browse the repository at this point in the history

Commits on May 25, 2024

  1. lib/mito/io: second draft implementation of writing a field to vtu file

    Here, we pass down to the writer a {fields::field} which is then evaluated on the nodes.
    biancagi committed May 25, 2024
    Configuration menu
    Copy the full SHA
    b778351 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    56f47ec View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0684a60 View commit details
    Browse the repository at this point in the history
  4. lib/mito/fem: redesign class {NodalField} as a mapping between mesh n…

    …odes and field values
    biancagi committed May 25, 2024
    Configuration menu
    Copy the full SHA
    f35cd45 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8398733 View commit details
    Browse the repository at this point in the history

Commits on May 26, 2024

  1. lib/mito/fem: bugfix

    Fixed bug for which nodes in {NodalField} were duplicated across adjacent elements. When nodes are inserted in a mesh with mesh.insert({node0, node1, node2}), nodes are copied. Therefore, a hash function and {operator==} based on the nodes addresses will create copies for each instance of a node in a mesh (that is for the same node appearing in adjacent elements).
    
    For now, the problem is fixed by setting nodes equal if their underlying vertex and points are equal and by editing the hash function to trivially combine the hashes of vertex and point (this needs to be improved to reduce the chance of clash).
    
    However, these choices will be revisited when we implement discontinuous Galerkin.
    biancagi committed May 26, 2024
    Configuration menu
    Copy the full SHA
    8a652bb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    204b39b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    616b178 View commit details
    Browse the repository at this point in the history
  4. lib/mito/io/vtk: split file {writer.h} into {MeshWriter} and {PointCl…

    …oudWriter} classes
    
    This is necessary because writing nodal fields requires to store the vtu grid as state.
    biancagi committed May 26, 2024
    Configuration menu
    Copy the full SHA
    1f299a6 View commit details
    Browse the repository at this point in the history

Commits on May 27, 2024

  1. Configuration menu
    Copy the full SHA
    d71cc05 View commit details
    Browse the repository at this point in the history
  2. lib/mito/io: move external packages needed from {summit} reader/write…

    …r to {summit} directory
    biancagi committed May 27, 2024
    Configuration menu
    Copy the full SHA
    d329058 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4895a80 View commit details
    Browse the repository at this point in the history
  4. lib/mito/io/summit: use a {set} of points for internal book-keeping

    No need to use a {map}.
    biancagi committed May 27, 2024
    Configuration menu
    Copy the full SHA
    bf2369a View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2024

  1. Configuration menu
    Copy the full SHA
    03d4f3e View commit details
    Browse the repository at this point in the history
  2. lib/mito/io/vtk: use STL {set} instead of {map}

    No need to use a map, as the 'value' (that is the sequential index of the point stored) can be retrieved by the distance of a given point from the beginning of the set memory allocation.
    biancagi committed Jun 1, 2024
    Configuration menu
    Copy the full SHA
    41ecbb8 View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2024

  1. Configuration menu
    Copy the full SHA
    5496474 View commit details
    Browse the repository at this point in the history
  2. lib/mito/io/vtk: refer to attributes in parent class with {this->}

    A bug in gcc does not make the (protected!) attributes of the parent class visible in the derived class scope.
    biancagi committed Jun 3, 2024
    Configuration menu
    Copy the full SHA
    f1f7440 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bec6b7d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    62a1003 View commit details
    Browse the repository at this point in the history
  5. lib/mito/io/summit: reimplement {summit} mesh writer according to new…

    … design of class {MeshWriter}
    biancagi committed Jun 3, 2024
    Configuration menu
    Copy the full SHA
    3bbfccc View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b698516 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    efe4b9a View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7d13dea View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c6534c5 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2024

  1. lib/mito/io: readability improvement

    Directly access {dim} when possible.
    biancagi committed Jun 5, 2024
    Configuration menu
    Copy the full SHA
    4fb0368 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6f83fef View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2024

  1. lib/mito: draft implementation of reference counted nodes

    This is necessary so as to avoid having the same node being copied into different nodes when inserting a geometric simplex in a mesh. Copying a node now results in copying its shared pointer.
    
    The current implementation has some issues, though:
    
    1) While originally the {SharedPointer} class was designed for not owning the resource, now a {SharedPointer} may instantiate a resource. This breaks the design and a mechanism for deletion of the resource should be implemented.
    
    2) Nodes are now 'special' geometric simplices, in that they do reference counting while the other geometric simplices do not. This implies that sometimes they need to be treated as special cases (for example in the extraction of the boundary of a segment).
    biancagi committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    68df98c View commit details
    Browse the repository at this point in the history
  2. lib/mito/utilities: add wrapper class for {std::shared_ptr}

    This class extends the {std::shared_ptr} in order to provide a constructor with a suitable argument list, as well as an id, which enables hashing and <==> operators.
    biancagi committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    a31e1aa View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    655108d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1aabd15 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7f7f442 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    cdf291f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    091e28a View commit details
    Browse the repository at this point in the history
  8. lib/mito/mesh: readability improvement in class {Boundary}

    Instead of implementing two almost identical methods for fetching the boundary of a mesh of segments and of any other mesh, devise the suitable type of the boundary (either a cloud of nodes or a proper boundary mesh) at compile time.
    biancagi committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    3297c01 View commit details
    Browse the repository at this point in the history
  9. lib/mito: readability improvement

    Remove {requires} from {concept} definition when possible.
    biancagi committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    089a4da View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2024

  1. lib/mito/io/summit: in mesh reader use templates to avoid repeating t…

    …he same code for segments, triangles and tets
    biancagi committed Jun 9, 2024
    Configuration menu
    Copy the full SHA
    c0bb3f8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8fbcd52 View commit details
    Browse the repository at this point in the history
  3. lib/mito/io/summit: use type traits on the mesh cells

    This will make it easier to generalize the reader / writer to the case of nonsimplicial elements.
    biancagi committed Jun 9, 2024
    Configuration menu
    Copy the full SHA
    5c771a9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fb0b55c View commit details
    Browse the repository at this point in the history
  5. lib/mito/io: redesign of summit and vtk writers

    The new design is informed of the difference between points and nodes. This
    prepares the ground for supporting both CG and DG meshes.
    biancagi committed Jun 9, 2024
    Configuration menu
    Copy the full SHA
    7366d74 View commit details
    Browse the repository at this point in the history
  6. tests/mito.lib/io: add check that the number of nodes is conserved in…

    … the original and reread mesh
    biancagi committed Jun 9, 2024
    Configuration menu
    Copy the full SHA
    76ae72e View commit details
    Browse the repository at this point in the history
  7. lib/mito/io: add support for reading a mesh in {summit} format and re…

    …turning a discontinuous Galerkin mesh
    biancagi committed Jun 9, 2024
    Configuration menu
    Copy the full SHA
    3589a5d View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2024

  1. .github/workflows: temporarily restricted {numpy} under {2.0} until i…

    …ts relocated headers can be handled gracefully
    akoshakji authored and biancagi committed Aug 18, 2024
    Configuration menu
    Copy the full SHA
    2a30890 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2024

  1. lib/mito/utilities: minor redesign of class {StdSharedPointer}

    Deriving {StdSharedPointer} from {std::shared_ptr} leads to memory leaks (in this case, memory not being freed).
    biancagi committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    ed60c8a View commit details
    Browse the repository at this point in the history