Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IGeometry.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7#ifndef ARCGEOSIM_GEOMETRY_IGEOMETRY_H
8#define ARCGEOSIM_GEOMETRY_IGEOMETRY_H
9
10#include "arcane/utils/Real3.h"
11#include "arcane/Item.h"
12#include "arcane/MathUtils.h"
13
14namespace Arcane
15{
16namespace Numerics
17{
18
19using namespace Arcane;
20
21/*!
22 * \brief Interface de calculs géométriques.
23 */
24class ARCANE_GEOMETRY_EXPORT IGeometry
25{
26public:
27 /** Constructeur de la classe */
29 {
30 ;
31 }
32
33 /** Destructeur de la classe */
34 virtual ~IGeometry() { }
35
36public:
37 //! Calcul du centre de masse
38 virtual Real3 computeCenter(const ItemWithNodes & item) = 0;
39
40 //! Calcul de la mesure orientée
41 /*! Dans le cas d'un élément plan, ceci correspond à
42 * la normale moyenne unitaire * mesure de l'élément
43 * et dans le cas d'un simple élément volumique nous obtenons
44 * volume * z (ou z=(0,0,1))
45 */
46 virtual Real3 computeOrientedMeasure(const ItemWithNodes & item) = 0;
47
48 //! Calcul de la mesure (sans orientation)
49 virtual Real computeMeasure(const ItemWithNodes & item) = 0;
50
51 //! Calcul de la longueyr
52 /*! Uniquement pour les Items linéïques */
53 virtual Real computeLength(const ItemWithNodes & item) = 0;
54
55 //! Calcul de l'aire
56 /*! Uniquement pour les Items surfaciques */
57 virtual Real computeArea(const ItemWithNodes & item) = 0;
58
59 //! Calcul du volume
60 /*! Uniquement pour les Items volumiques */
61 virtual Real computeVolume(const ItemWithNodes & item) = 0;
62
63 //! Calcul du centre
64 /*! Uniquement pour les Items surfaciques */
65 virtual Real3 computeSurfaceCenter(Integer n, const Real3 * coords) = 0;
66
67 //! Calcul de l'aire orientée (ie normale)
68 /*! Uniquement pour les Items surfaciques */
69 virtual Real3 computeOrientedArea(Integer n, const Real3 * coords) = 0;
70
71 //! Calcul de longueur d'un segment défini par deux points
72 virtual Real computeLength(const Real3& m, const Real3& n) = 0;
73};
74
75} // End namespace Arcane
76
77} // End namespace Numerics
78
79#endif
Elément de maillage s'appuyant sur des noeuds (Edge,Face,Cell).
Definition Item.h:714
Interface de calculs géométriques.
Definition IGeometry.h:25
virtual Real computeVolume(const ItemWithNodes &item)=0
Calcul du volume.
virtual Real3 computeOrientedMeasure(const ItemWithNodes &item)=0
Calcul de la mesure orientée.
virtual Real3 computeCenter(const ItemWithNodes &item)=0
Calcul du centre de masse.
virtual Real3 computeSurfaceCenter(Integer n, const Real3 *coords)=0
Calcul du centre.
virtual Real computeLength(const Real3 &m, const Real3 &n)=0
Calcul de longueur d'un segment défini par deux points.
virtual Real computeMeasure(const ItemWithNodes &item)=0
Calcul de la mesure (sans orientation)
virtual Real computeLength(const ItemWithNodes &item)=0
Calcul de la longueyr.
virtual Real computeArea(const ItemWithNodes &item)=0
Calcul de l'aire.
virtual Real3 computeOrientedArea(Integer n, const Real3 *coords)=0
Calcul de l'aire orientée (ie normale)
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-