CEPS  24.01
Cardiac ElectroPhysiology Simulator
GeomCellJunction.hpp
Go to the documentation of this file.
1 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2  This file is part of CEPS.
3 
4  CEPS is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  CEPS is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with CEPS (see file LICENSE at root of project).
16  If not, see <https://www.gnu.org/licenses/>.
17 
18 
19  Copyright 2019-2024 Inria, Universite de Bordeaux
20 
21  Authors, in alphabetical order:
22 
23  Pierre-Elliott BECUE, Florian CARO, Yves COUDIERE(*), Andjela DAVIDOVIC,
24  Charlie DOUANLA-LONTSI, Marc FUENTES, Mehdi JUHOOR, Michael LEGUEBE(*),
25  Pauline MIGERDITICHAN, Valentin PANNETIER(*), Nejib ZEMZEMI.
26  * : currently active authors
27 
28 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
31 #pragma once
32 
36 
38 
40 enum class JunctionType
41 {
42  TYPE_1D3D = 0,
43  TYPE_1D2D = 1,
44  TYPE_2D3D = 2,
45  TYPE_1D2D3D = 3,
46  TYPE_UNKNOWN = 4
47 };
48 
59 {
60  friend class GeometryPartitioner;
61 
62  public:
65 
67  virtual ~GeomCellJunction ();
68 
71  get3dcells () const;
72 
75  get2dcells () const;
76 
79  get1dcells () const;
80 
83  getType () const;
84 
86  void
87  addCell(GeomCell* cell);
88 
90  void
92 
93  private:
95  void
96  checkIntegrity ();
97 
98  protected:
102 
105 
107 };
std::vector< _Type, _Alloc > CepsVector
C++ vector.
Definition: CepsTypes.hpp:155
JunctionType
Structure that holds the junction type.
@ TYPE_1D2D3D
Pt, tri and tetra junction.
@ TYPE_1D3D
Point to tetra.
@ TYPE_2D3D
Tri to tetra.
@ TYPE_1D2D
Point to triangle.
@ TYPE_UNKNOWN
other
Meta-cell for connections between meshes.
CepsVector< GeomCell * > m_3d
3d volume
CepsVector< GeomCell * > m_2d
2d surface
const CepsVector< GeomCell * > & get2dcells() const
Connected 2d cells.
void addBoundaryCell(GeomCell *cell)
Add a boundary cell to the junction.
CepsVector< GeomCell * > m_3dBoundary
2d boundary of 3d volume
CepsVector< GeomCell * > m_1d
1d cable
void checkIntegrity()
Checks sanity of junction cell and determines its type.
CepsVector< GeomCell * > m_2dBoundary
1d boundary of 2d surfaces
virtual ~GeomCellJunction()
Destructor.
JunctionType m_type
Type of linked cells.
void addCell(GeomCell *cell)
Add a cell to the junction.
GeomCellJunction()
Default constructor.
const CepsVector< GeomCell * > & get3dcells() const
Connected 3d cells.
JunctionType getType() const
Type of junction.
const CepsVector< GeomCell * > & get1dcells() const
Connected 1d cells.
Abstract class for geometrical cell. On top of index and attributes managament, the cell has informat...
Definition: GeomCell.hpp:48
Class is used to compute a geometry (multiple meshes) partitioning.