Référence API
Element
La classe Element
représente un élément du maillage (triangle ou segment).
Attributs
int M_id
: l'identifiant de l'élémentint M_type
: le type de l'élément (1 pour les segments, 2 pour les triangles)int M_tag
: le tag de l'élément (toujours 2)int M_physical_name_id
: identifiant duPhysicalName
de l'élémentint *M_node_ids
: un tableau d'entiers qui contient les identifiants desNode
de l'élément
Méthodes
Element()
Element(int id = 0, int type = 1, int tag = 2, int physical_name_id = 0, int *node_ids = nullptr)
Constructeur.
std::ostream
std::ostream &operator<<(std::ostream &os, const Element &e)
Opérateur de sortie.
std::istream
std::istream &operator>>(std::istream &is, Element &el)
Opérateur d'entrée.
Indexation
Lors de la lecture d'un élément, on soustrait 1 à l'identifiant de l'élément car les identifiants des éléments commencent à 1 dans le fichier .msh
et à 0 dans le code C++.
type()
int type() const
Retourne le type de l'élément : 1
pour les segments, 2
pour les triangles.
node_id()
int node_id(int i) const
Retourne l'identifiant du noeud d'indice i
de l'élément.
area()
double area(Node **nodes) const
Retourne l'aire de l'élément.
integral()
double integral(int quad_order, Evaluator const &eval_f, Node **nodes) const
Retourne l'intégrale de la fonction eval_f
sur l'élément.
L'ordre de quadrature est à spécifier en argument. Cette librairie implémente les quadratures de degré 1 à 3.
phi_k()
double phi_k(Node **nodes, int k, double x, double y) const
Retourne la valeur de la fonction de forme phi_k
au point (x, y)
.
grad_phi_k()
std::tuple<double, double> grad_phi_k(Node **nodes, int k) const
Retourne le gradient de la fonction de forme phi_k
.
Ce gradient est un std::tuple
de double
qui contient les coordonnées du vecteur gradient.
Gradient constant
Le gradient de la fonction de forme phi_k
est constant sur l'élément, d'où l'absence de paramètres x
et y
en argument de la fonction.
AKe()
Eigen::MatrixXd AKe(Node **nodes, int quad_order = 3) const
Retourne la matrice A_K
associé à l'élément.
L'ordre de quadrature est à spécifier en argument. Cette librairie implémente les quadratures de degré 1 à 3.
FKe()
Eigen::VectorXd FKe(Node **nodes, Evaluator const &eval_f, int quad_order = 3) const
Retourne le vecteur F_K
associé à l'élément.
L'ordre de quadrature est à spécifier en argument. Cette librairie implémente les quadratures de degré 1 à 3.