CEPS  24.01
Cardiac ElectroPhysiology Simulator
GeomNode.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 
35 class GeomCell;
36 
44 class GeomNode :
46  public ceps::HoldsDimension,
47  public ceps::HoldsBoundary,
48  public ceps::HoldsAttributes,
49  public ceps::HoldsProcIds,
50  public ceps::HoldsNodes<GeomNode>,
51  public ceps::HoldsCells<GeomCell>,
52  public CepsVertex
53 {
54 public:
57 
65  GeomNode(
66  CepsReal x,
67  CepsReal y,
68  CepsReal z,
69  CepsGlobalIndex gID,
70  CepsAttribute* attrs = nullptr,
71  CepsUInt nAttrs = 0
72  );
73 
75  ~GeomNode() override = default;
76 
78  void
79  reset();
80 };
81 
CepsInt CepsAttribute
Used to define regions.
Definition: CepsTypes.hpp:215
CepsIndex CepsGlobalIndex
Many uses. Has to be signed for PETSc.
Definition: CepsTypes.hpp:218
std::make_unsigned_t< CepsInt > CepsUInt
Unsigned version on CepsInt.
Definition: CepsTypes.hpp:109
float CepsReal
Need single precision floating point.
Definition: CepsTypes.hpp:100
CepsStandardArgs getStandardArgsFrom(GeomNode *node)
Returns a standard args structure with data from a node.
Definition: GeomNode.cpp:62
CepsVertex(const CepsReal &x=0.0, const CepsReal &y=0.0, const CepsReal &z=0.0)
Constructor with coordinates.
Definition: CepsVertex.cpp:39
const CepsReal & x() const
Vertex x coordinate.
Definition: CepsVertex.cpp:126
const CepsReal & y() const
Vertex y coordinate.
Definition: CepsVertex.cpp:132
const CepsReal & z() const
Vertex z coordinate.
Definition: CepsVertex.cpp:138
Abstract class for geometrical cell. On top of index and attributes managament, the cell has informat...
Definition: GeomCell.hpp:48
Base class for nodes used in meshes.
Definition: GeomNode.hpp:53
~GeomNode() override=default
Destructor.
GeomNode(CepsReal x, CepsReal y, CepsReal z, CepsGlobalIndex gID, CepsAttribute *attrs=nullptr, CepsUInt nAttrs=0)
Constructor.
Definition: GeomNode.cpp:33
void reset()
Wipes content.
Definition: GeomNode.cpp:49
An abstract class from which all objects that contain region attributes should derive.
Abstract class to describe if an entity is on a boundary or not Objects that can be located in a mesh...
An abstract class for objects that regroup pointers to cells (eg a mesh, a finite elements discretiza...
Definition: HoldsCells.hpp:46
Abstract class for objects that have a dimensionality (0D to 3D)
Abstract class for objects that have a global index.
Abstract class for objects that contain a CPU Id.
Structure used to pass arguments to SAFunc (see pde directory) The flags of the SAFunc allows extract...
Definition: CepsTypes.hpp:239