16#ifndef Domaine_Poly_base_included
17#define Domaine_Poly_base_included
19#include <Domaine_Poly_tools.h>
20#include <Static_Int_Lists.h>
21#include <Elem_poly_base.h>
22#include <Elem_poly_base.h>
23#include <TRUST_Deriv.h>
24#include <TRUSTLists.h>
25#include <Periodique.h>
26#include <Domaine_VF.h>
38extern bool polymac_flica5;
75 void typer_elem(Domaine& domaine_geom)
override;
83 inline const DoubleTab&
ta()
const {
return ta_; }
103 inline double nu_dot(
const DoubleTab* nu,
int e,
int n,
const double *a,
const double *b,
const double *ma =
nullptr,
const double *mb =
nullptr)
const;
105 inline double dist_norm(
int num_face)
const override;
116 const IntTab&
equiv()
const;
120 const Static_Int_Lists&
som_elem()
const;
129 const DoubleTab&
pvol_som(
const DoubleVect& poro)
const;
195inline double Domaine_Poly_base::nu_dot(
const DoubleTab* nu,
int e,
int n,
const double *a,
const double *b,
const double *ma,
const double *mb)
const
197 if (!nu)
return dot(a, b, ma, mb);
200 if (nu->
nb_dim() == 2) resu += (*nu)(e, n) *
dot(a, b, ma, mb);
201 else if (nu->
nb_dim() == 3)
202 for (d = 0; d < D; d++)
203 resu += (*nu)(e, n, d) * (a[d] - (ma ? ma[d] : 0)) * (b[d] - (mb ? mb[d] : 0));
204 else for (d = 0; d < D; d++)
205 for (db = 0; db < D; db++)
206 resu += (*nu)(e, n, d, db) * (a[d] - (ma ? ma[d] : 0)) * (b[db] - (mb ? mb[db] : 0));
classe Conds_lim Cette classe represente un vecteur de conditions aux limites.
double dist_face_elem0(int num_face, int n0) const override
DoubleVect longueur_aretes_
MD_Vector mdv_faces_aretes
const IntVect & rang_elem_non_std() const
void detecter_faces_non_planes() const
const Elem_poly_base & type_elem() const
const DoubleTab & vol_elem_som() const
virtual void calculer_volumes_entrelaces()
const DoubleVect & longueur_aretes() const
MD_Vector mdv_elems_faces
double dist_face_elem1_period(int num_face, int n1, double l) const override
int nb_faces_joint() const
double dist_face_elem0_period(int num_face, int n0, double l) const override
void modifier_pour_Cl(const Conds_lim &) override
double dist_face_elem1(int num_face, int n1) const override
void verifier_type_elem() const
void discretiser_aretes()
const Static_Int_Lists & som_elem() const
double dist_norm(int num_face) const override
const IntTab & elem_som_d() const
OWN_PTR(Elem_poly_base) type_elem_
DoubleTab & volumes_entrelaces_dir()
virtual void init_equiv() const =0
double carre_pas_maille(int i) const
const IntTab & equiv() const
std::vector< std::map< int, int > > som_arete
const DoubleTab & ta() const
double carre_pas_du_maillage() const
void discretiser() override
const DoubleTab & pvol_som(const DoubleVect &poro) const
const DoubleTab & volumes_entrelaces_dir() const
virtual void calculer_h_carre()
Static_Int_Lists som_elem_
IntVect & rang_elem_non_std()
double dist_norm_bord(int num_face) const override
void calculer_infos_aretes()
double nu_dot(const DoubleTab *nu, int e, int n, const double *a, const double *b, const double *ma=nullptr, const double *mb=nullptr) const
void corriger_face_voisins_sur_les_faces_virtuelles()
const IntTab & elem_arete_d() const
Sortie & ecrit(Sortie &os) const
void typer_elem(Domaine &domaine_geom) override
IntVect rang_elem_non_std_
virtual const DoubleVect & face_surfaces() const
double dot(const double *a, const double *b, const double *ma=nullptr, const double *mb=nullptr) const
DoubleTab volumes_entrelaces_dir_
IntTab & face_voisins() override
renvoie le tableaux des volumes des connectivites face elements cf au dessus.
: Cette classe est un OWN_PTR mais l'objet pointe est partage entre plusieurs
class Nom Une chaine de caractere pour nommer les objets de TRUST
static void abort()
Routine de sortie de Trio-U sur une erreur abort().