ECOGEN 4.0
Evolutive, Compressible, Open, Genuine, Easy, N-phase
Loading...
Searching...
No Matches
FaceNS.h
Go to the documentation of this file.
1//
2// ,---. ,--, .---. ,--, ,---. .-. .-.
3// | .-' .' .') / .-. ) .' .' | .-' | \| |
4// | `-. | |(_) | | |(_) | | __ | `-. | | |
5// | .-' \ \ | | | | \ \ ( _) | .-' | |\ |
6// | `--. \ `-. \ `-' / \ `-) ) | `--. | | |)|
7// /( __.' \____\ )---' )\____/ /( __.' /( (_)
8// (__) (_) (__) (__) (__)
9// Official webSite: https://code-mphi.github.io/ECOGEN/
10//
11// This file is part of ECOGEN.
12//
13// ECOGEN is the legal property of its developers, whose names
14// are listed in the copyright file included with this source
15// distribution.
16//
17// ECOGEN is free software: you can redistribute it and/or modify
18// it under the terms of the GNU General Public License as published
19// by the Free Software Foundation, either version 3 of the License,
20// or (at your option) any later version.
21//
22// ECOGEN is distributed in the hope that it will be useful,
23// but WITHOUT ANY WARRANTY; without even the implied warranty of
24// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25// GNU General Public License for more details.
26//
27// You should have received a copy of the GNU General Public License
28// along with ECOGEN (file LICENSE).
29// If not, see <http://www.gnu.org/licenses/>.
30
31#ifndef FACENS_H
32#define FACENS_H
33
34#include "../../Face.h"
35
36class ElementNS; //Predeclaration de la classe Element pour pouvoir inclure Element.h
37#include "ElementNS.h"
38
39class FaceNS : public Face
40{
41public:
42 FaceNS();
43 FaceNS(const int& numberNodes);
44 virtual ~FaceNS();
45
47 bool faceExists(FaceNS** faces, const int& indexMaxFaces, int& indexFaceExiste);
50
51 //Accesseurs
54 void setEstLimite(const bool& estLimite);
55 void setEstComm(const bool& estComm);
56 const bool& getEstComm() const { return m_comm; };
57 const int& getSumNumNodes() const { return m_sumNumNodes; };
58
59 const int& getNumberNodes() const { return m_numberNodes; };
60 const int& getNumNode(const int& numNode) const { return m_numNodes[numNode]; };
61 void getInfoNodes(int* numNodes, int& sumNumNodes) const;
62 const bool& getEstLimite() const { return m_limite; };
63 void printNodes() const;
64 virtual void printInfo() const;
65 static int searchFace(int* face, int& sumNodes, int** arrayFaces, int* arraySumNodes, int numberNodes, int& indexMaxFaces); // Recherche si face appartient au array arrayFaces : renvoi le number ou -1 si absence
66 static int searchFace(int* face, int& sumNodes, std::vector<int*> arrayFaces, std::vector<int> arraySumNodes, int numberNodes, int& indexMaxFaces); // Recherche si face appartient au array arrayFaces : renvoi le number ou -1 si absence. Utilise seulement sur ancienne version
67
68protected:
69 virtual void computeSurface(const Coord* /*nodes*/){};
70 virtual void computeRepere(const Coord* /*nodes*/, const int& /*numNodeOther*/, ElementNS* /*elementNeighbor*/){};
71
76 bool m_comm;
79
80};
81
82#endif // FACENS_H
83
84//Surcharge operateur externe a la classe car prends deux arguments
85bool operator==(const FaceNS& a, const FaceNS& b);
86bool operator!=(const FaceNS& a, const FaceNS& b);
bool operator!=(const FaceNS &a, const FaceNS &b)
Definition FaceNS.cpp:268
bool operator==(const FaceNS &a, const FaceNS &b)
Definition FaceNS.cpp:251
Class for a coordinate system object such as coordinates of the vertex or a vector.
Definition Coord.h:43
Definition ElementNS.h:40
Definition FaceNS.h:40
ElementNS * m_elementDroite
Definition FaceNS.h:78
void addElementNeighborLimite(ElementNS *elementNeighbor)
Definition FaceNS.cpp:131
const int & getSumNumNodes() const
Definition FaceNS.h:57
int m_sumNumNodes
Definition FaceNS.h:74
void setEstComm(const bool &estComm)
Definition FaceNS.cpp:153
ElementNS * getElementDroite() const
Definition FaceNS.cpp:66
virtual void printInfo() const
Definition FaceNS.cpp:171
static int searchFace(int *face, int &sumNodes, int **arrayFaces, int *arraySumNodes, int numberNodes, int &indexMaxFaces)
Definition FaceNS.cpp:211
bool m_limite
Definition FaceNS.h:75
const int & getNumNode(const int &numNode) const
Definition FaceNS.h:60
int * m_numNodes
Definition FaceNS.h:73
virtual void computeRepere(const Coord *, const int &, ElementNS *)
Definition FaceNS.h:70
void getInfoNodes(int *numNodes, int &sumNumNodes) const
Definition FaceNS.cpp:160
bool m_comm
Definition FaceNS.h:76
const int & getNumberNodes() const
Definition FaceNS.h:59
bool faceExists(FaceNS **faces, const int &indexMaxFaces, int &indexFaceExiste)
Definition FaceNS.cpp:87
virtual void computeSurface(const Coord *)
Definition FaceNS.h:69
const bool & getEstLimite() const
Definition FaceNS.h:62
void addElementNeighbor(ElementNS *elementNeighbor)
Definition FaceNS.cpp:117
ElementNS * m_elementGauche
Definition FaceNS.h:77
void construitFace(const Coord *nodes, const int &numNodeOther, ElementNS *elementNeighbor)
Definition FaceNS.cpp:73
int m_numberNodes
Definition FaceNS.h:72
const bool & getEstComm() const
Definition FaceNS.h:56
void setEstLimite(const bool &estLimite)
Definition FaceNS.cpp:146
FaceNS()
Definition FaceNS.cpp:35
void printNodes() const
Definition FaceNS.cpp:199
ElementNS * getElementGauche() const
Definition FaceNS.cpp:59
virtual ~FaceNS()
Definition FaceNS.cpp:52
Definition Face.h:42
Coord vector(Element *e)
Definition Face.cpp:43