CEPS  24.01
Cardiac ElectroPhysiology Simulator
NodeCoupling.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 
33 #include "common/CepsCommon.hpp"
34 #include "geometry/Mesh.hpp"
35 
43 {
44 
45  public:
47  NodeCoupling ();
48 
50  virtual ~NodeCoupling ();
51 
53  const std::array<CepsString,2> &
54  getMeshes () const;
55 
57  const CepsString&
58  getMesh (CepsUInt id) const;
59 
62  getNodeCouples () const;
63 
65  void
66  addMesh(const CepsString& mesh);
67 
69  void
71 
73  // list of meshes
74  CepsBool
75  isValidIn(const CepsVector<CepsString>& meshes);
76 
77  protected:
78 
79  std::array<CepsString,2> m_meshes;
81 
82 };
std::basic_string< CepsChar > CepsString
C++ format string.
Definition: CepsTypes.hpp:128
std::set< _Type, _Compare, _Alloc > CepsSet
C++ set.
Definition: CepsTypes.hpp:209
std::vector< _Type, _Alloc > CepsVector
C++ vector.
Definition: CepsTypes.hpp:155
bool CepsBool
Booleans.
Definition: CepsTypes.hpp:124
std::make_unsigned_t< CepsInt > CepsUInt
Unsigned version on CepsInt.
Definition: CepsTypes.hpp:109
CepsGlobalIndex CepsNodeGlobalIndex
Indices of nodes.
Definition: CepsTypes.hpp:224
Meta-cell for connections between meshes.
void addCouple(const CepsNodeGlobalIndex &, const CepsNodeGlobalIndex &)
Adds an attribute.
const CepsSet< std::pair< CepsNodeGlobalIndex, CepsNodeGlobalIndex > > & getNodeCouples() const
Connection attributes.
virtual ~NodeCoupling()
Destructor.
std::array< CepsString, 2 > m_meshes
Connected meshes.
void addMesh(const CepsString &mesh)
Adds a mesh.
const CepsString & getMesh(CepsUInt id) const
Connected meshes.
const std::array< CepsString, 2 > & getMeshes() const
Connected meshes.
CepsSet< std::pair< CepsNodeGlobalIndex, CepsNodeGlobalIndex > > m_couples
couples of node indices
CepsBool isValidIn(const CepsVector< CepsString > &meshes)
Determines if coupling can be used within the provided.
NodeCoupling()
Default constructor.