omega_h
Reliable mesh adaptation
Omega_h_overlay.hpp
1 #ifndef OMEGA_H_OVERLAY_HPP
2 #define OMEGA_H_OVERLAY_HPP
3 
4 #include <Omega_h_mesh.hpp>
5 
6 namespace Omega_h {
7 
8 class Overlay {
9  public:
10  Overlay(int* argc, char*** argv, const Omega_h::Vector<3>& overlayGridCenter,
11  double cellSize, size_t Nx, size_t Ny, size_t Nz
12 #ifdef OMEGA_H_USE_MPI
13  ,
14  MPI_Comm comm
15 #endif
16  );
17 
18  std::array<size_t, 2> get_face_cells(size_t face) const;
19 
20  const std::vector<size_t>& get_cells() const;
21 
22  const std::vector<size_t>& get_edges() const;
23 
24  const std::vector<size_t>& get_faces() const;
25 
26  const std::vector<size_t>& get_nodes() const;
27 
28  std::array<size_t, 8> get_cell_nodes(size_t cell) const;
29 
30  std::array<size_t, 6> get_cell_faces(size_t cell) const;
31 
32  std::array<size_t, 4> get_face_nodes(size_t face) const;
33 
34  std::array<size_t, 2> get_edge_nodes(size_t edge) const;
35 
36  Omega_h::Vector<3> get_node_coordinates(size_t node) const;
37 
38  Omega_h::Vector<3> get_cell_center_location(size_t cell) const;
39 
40  size_t get_invalid_cell_handle() const;
41 
42  double get_cell_size() const;
43 
44  private:
45  double cell_size;
46  Omega_h::Library library;
47  Omega_h::Mesh mesh;
48  std::vector<size_t> silly_cells;
49  std::vector<size_t> silly_edges;
50  std::vector<size_t> silly_faces;
51  std::vector<size_t> silly_nodes;
52 };
53 
54 } // namespace Omega_h
55 
56 #endif
Definition: Omega_h_few.hpp:61
Definition: Omega_h_library.hpp:10
Definition: Omega_h_mesh.hpp:35
Definition: Omega_h_overlay.hpp:8
Definition: amr_mpi_test.cpp:6