TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Champ_P1NC_implementation Class Referenceabstract

#include <Champ_P1NC_implementation.h>

Inheritance diagram for Champ_P1NC_implementation:
[legend]
Collaboration diagram for Champ_P1NC_implementation:
[legend]

Public Member Functions

 Champ_P1NC_implementation ()
 ~Champ_P1NC_implementation () override
int fixer_nb_valeurs_nodales (int)
KOKKOS_INLINE_FUNCTION double fonction_forme_2D_v (double x, double y, int le_poly, int face, CIntTabView sommet_poly, CDoubleTabView coord) const
KOKKOS_INLINE_FUNCTION double fonction_forme_3D_v (double x, double y, double z, int le_poly, int face, CIntTabView sommet_poly, CDoubleTabView coord) const
double fonction_forme_2D (double x, double y, int le_poly, int face, const IntTab &sommet_poly, const DoubleTab &coord) const
double fonction_forme_3D (double x, double y, double z, int le_poly, int face, const IntTab &sommet_poly, const DoubleTab &coord) const
double coord_barycentrique (const IntTab &sommet_poly, const DoubleTab &coord, double x, double y, int le_poly, int face) const
double coord_barycentrique (const IntTab &sommet_poly, const DoubleTab &coord, double x, double y, double z, int le_poly, int face) const
DoubleVect & valeur_a_elem (const DoubleVect &position, DoubleVect &val, int le_poly) const override
double valeur_a_elem_compo (const DoubleVect &position, int le_poly, int ncomp) const override
DoubleTab & valeur_aux_centres_de_gravite (const Domaine &, DoubleTab &valeurs) const
 Computes values at the centers of gravity for a P1NC field.
DoubleTab & valeur_aux_elems (const DoubleTab &positions, const IntVect &les_polys, DoubleTab &valeurs) const override
DoubleVect & valeur_aux_elems_compo (const DoubleTab &positions, const IntVect &les_polys, DoubleVect &valeurs, int ncomp) const override
DoubleTab & valeur_aux_sommets (const Domaine &dom, DoubleTab &ch_som) const override
DoubleVect & valeur_aux_sommets_compo (const Domaine &dom, DoubleVect &ch_som, int ncomp) const override
double valeur_a_sommet_compo (int num_som, int le_poly, int ncomp) const
KOKKOS_INLINE_FUNCTION double valeur_a_sommet_compo (int num_som, int num_elem, int ncomp, CIntTabView elem_faces, CIntTabView sommet_elem, CDoubleTabView ch) const
DoubleTab & valeur_aux_elems_smooth (const DoubleTab &positions, const IntVect &les_polys, DoubleTab &valeurs)
DoubleVect & valeur_aux_elems_compo_smooth (const DoubleTab &positions, const IntVect &les_polys, DoubleVect &valeurs, int ncomp)
DoubleTab & remplir_coord_noeuds (DoubleTab &positions) const override
int remplir_coord_noeuds_et_polys (DoubleTab &positions, IntVect &polys) const override
int imprime_P1NC (Sortie &, int) const
void filtrer_L2 (DoubleTab &) const
void filtrer_H1 (DoubleTab &) const
void filtrer_resu (DoubleTab &) const
DoubleTab & ch_som ()
DoubleVect & ch_som_vect ()
const Matrice_Morse_Symget_MatP1NC2P1_L2 () const
const SolveurSysget_solveur_L2 () const
const Matrice_Morse_Symget_MatP1NC2P1_L2_H1 () const
const Matrice_Morse_Symget_MatP1NC2P1_H1 () const
const SolveurSysget_solveur_L2_H1 () const
const SolveurSysget_solveur_H1 () const
int nb_colonnes_tot ()
int nb_colonnes ()
void dimensionner_Mat_Bloc_Morse_Sym (Matrice &matrice_tmp)
void Mat_Morse_to_Mat_Bloc (Matrice &matrice_tmp)
Public Member Functions inherited from Champ_implementation
virtual ~Champ_implementation ()

Protected Member Functions

virtual const Domaine_VEFdomaine_vef () const =0
DoubleTab & trace (const Frontiere_dis_base &fr, const DoubleTab &y, DoubleTab &x, int distant) const
Protected Member Functions inherited from Champ_implementation_divers
DoubleTab & valeur_aux_sommets_impl (DoubleTab &result) const override
DoubleVect & valeur_aux_sommets_compo_impl (DoubleVect &result, int ncomp) const override
Protected Member Functions inherited from Champ_implementation
const Domaine_VFget_domaine_dis () const
const Domaine & get_domaine_geom () const
virtual Champ_basele_champ ()=0
virtual const Champ_basele_champ () const =0

Protected Attributes

Matrice_Morse_Sym MatP1NC2P1_L2
Matrice MatP1NC2P1_L2_Parallele
SolveurSys solveur_L2
Matrice_Morse_Sym MatP1NC2P1_H1
SolveurSys solveur_H1
DoubleTab ch_som_
DoubleVect ch_som_vect_
int filtrer_L2_deja_appele_
Matrice_Morse_Sym MatP1NC2P1_L2_H1
SolveurSys solveur_L2_H1

Friends

DoubleTab & valeur_P1_L2 (Champ_P1NC &cha, const Domaine &dom)
 Projection du champ P1NC "cha" sur l'espace des champs P1.
DoubleTab & valeur_P1_L2 (Champ_Fonc_P1NC &cha, const Domaine &dom)
DoubleTab & valeur_P1_H1 (const Champ_P1NC &cha, const Domaine &dom, DoubleTab &ch_som)
int construire_MatP1NC2P1_L2 (Champ_P1NC &, const Domaine &)
int construire_MatP1NC2P1_H1 (Champ_P1NC &, const Domaine &, double &)
int construire_secmem_L2 (Champ_P1NC &, const Domaine &, DoubleTab &)
int construire_secmem_H1 (Champ_P1NC &, const Domaine &, DoubleTab &, const double)
DoubleTab & valeur_P1_L2_H1 (Champ_P1NC &, const Domaine &, DoubleTab &)
int test (Champ_P1NC &, const Domaine &)

Detailed Description

Definition at line 31 of file Champ_P1NC_implementation.h.

Constructor & Destructor Documentation

◆ Champ_P1NC_implementation()

Champ_P1NC_implementation::Champ_P1NC_implementation ( )

Definition at line 41 of file Champ_P1NC_implementation.cpp.

◆ ~Champ_P1NC_implementation()

Champ_P1NC_implementation::~Champ_P1NC_implementation ( )
inlineoverride

Definition at line 35 of file Champ_P1NC_implementation.h.

Member Function Documentation

◆ ch_som()

DoubleTab & Champ_P1NC_implementation::ch_som ( )
inline

Definition at line 99 of file Champ_P1NC_implementation.h.

◆ ch_som_vect()

DoubleVect & Champ_P1NC_implementation::ch_som_vect ( )
inline

Definition at line 100 of file Champ_P1NC_implementation.h.

◆ coord_barycentrique() [1/2]

double Champ_P1NC_implementation::coord_barycentrique ( const IntTab & sommet_poly,
const DoubleTab & coord,
double x,
double y,
double z,
int le_poly,
int face ) const
inline

Definition at line 64 of file Champ_P1NC_implementation.h.

◆ coord_barycentrique() [2/2]

double Champ_P1NC_implementation::coord_barycentrique ( const IntTab & sommet_poly,
const DoubleTab & coord,
double x,
double y,
int le_poly,
int face ) const
inline

Definition at line 59 of file Champ_P1NC_implementation.h.

◆ dimensionner_Mat_Bloc_Morse_Sym()

void Champ_P1NC_implementation::dimensionner_Mat_Bloc_Morse_Sym ( Matrice & matrice_tmp)

Definition at line 2043 of file Champ_P1NC_implementation.cpp.

◆ domaine_vef()

virtual const Domaine_VEF & Champ_P1NC_implementation::domaine_vef ( ) const
protectedpure virtual

Implemented in Champ_Fonc_P1NC, and Champ_P1NC.

◆ filtrer_H1()

void Champ_P1NC_implementation::filtrer_H1 ( DoubleTab & valeurs) const

Definition at line 881 of file Champ_P1NC_implementation.cpp.

◆ filtrer_L2()

void Champ_P1NC_implementation::filtrer_L2 ( DoubleTab & valeurs) const

◆ filtrer_resu()

void Champ_P1NC_implementation::filtrer_resu ( DoubleTab & resu) const

Definition at line 1110 of file Champ_P1NC_implementation.cpp.

◆ fixer_nb_valeurs_nodales()

int Champ_P1NC_implementation::fixer_nb_valeurs_nodales ( int n)

Definition at line 1996 of file Champ_P1NC_implementation.cpp.

◆ fonction_forme_2D()

double Champ_P1NC_implementation::fonction_forme_2D ( double x,
double y,
int le_poly,
int face,
const IntTab & sommet_poly,
const DoubleTab & coord ) const
inline

Definition at line 49 of file Champ_P1NC_implementation.h.

◆ fonction_forme_2D_v()

KOKKOS_INLINE_FUNCTION double Champ_P1NC_implementation::fonction_forme_2D_v ( double x,
double y,
int le_poly,
int face,
CIntTabView sommet_poly,
CDoubleTabView coord ) const
inline

Definition at line 39 of file Champ_P1NC_implementation.h.

◆ fonction_forme_3D()

double Champ_P1NC_implementation::fonction_forme_3D ( double x,
double y,
double z,
int le_poly,
int face,
const IntTab & sommet_poly,
const DoubleTab & coord ) const
inline

Definition at line 54 of file Champ_P1NC_implementation.h.

◆ fonction_forme_3D_v()

KOKKOS_INLINE_FUNCTION double Champ_P1NC_implementation::fonction_forme_3D_v ( double x,
double y,
double z,
int le_poly,
int face,
CIntTabView sommet_poly,
CDoubleTabView coord ) const
inline

Definition at line 44 of file Champ_P1NC_implementation.h.

◆ get_MatP1NC2P1_H1()

const Matrice_Morse_Sym & Champ_P1NC_implementation::get_MatP1NC2P1_H1 ( ) const
inline

Definition at line 105 of file Champ_P1NC_implementation.h.

◆ get_MatP1NC2P1_L2()

const Matrice_Morse_Sym & Champ_P1NC_implementation::get_MatP1NC2P1_L2 ( ) const
inline

Definition at line 102 of file Champ_P1NC_implementation.h.

◆ get_MatP1NC2P1_L2_H1()

const Matrice_Morse_Sym & Champ_P1NC_implementation::get_MatP1NC2P1_L2_H1 ( ) const
inline

Definition at line 104 of file Champ_P1NC_implementation.h.

◆ get_solveur_H1()

const SolveurSys & Champ_P1NC_implementation::get_solveur_H1 ( ) const
inline

Definition at line 107 of file Champ_P1NC_implementation.h.

◆ get_solveur_L2()

const SolveurSys & Champ_P1NC_implementation::get_solveur_L2 ( ) const
inline

Definition at line 103 of file Champ_P1NC_implementation.h.

◆ get_solveur_L2_H1()

const SolveurSys & Champ_P1NC_implementation::get_solveur_L2_H1 ( ) const
inline

Definition at line 106 of file Champ_P1NC_implementation.h.

◆ imprime_P1NC()

int Champ_P1NC_implementation::imprime_P1NC ( Sortie & os,
int ncomp ) const

Definition at line 1974 of file Champ_P1NC_implementation.cpp.

◆ Mat_Morse_to_Mat_Bloc()

void Champ_P1NC_implementation::Mat_Morse_to_Mat_Bloc ( Matrice & matrice_tmp)

Definition at line 2141 of file Champ_P1NC_implementation.cpp.

◆ nb_colonnes()

int Champ_P1NC_implementation::nb_colonnes ( )

Definition at line 2026 of file Champ_P1NC_implementation.cpp.

◆ nb_colonnes_tot()

int Champ_P1NC_implementation::nb_colonnes_tot ( )

Definition at line 2009 of file Champ_P1NC_implementation.cpp.

◆ remplir_coord_noeuds()

DoubleTab & Champ_P1NC_implementation::remplir_coord_noeuds ( DoubleTab & positions) const
overridevirtual

Implements Champ_implementation.

Definition at line 1941 of file Champ_P1NC_implementation.cpp.

◆ remplir_coord_noeuds_et_polys()

int Champ_P1NC_implementation::remplir_coord_noeuds_et_polys ( DoubleTab & positions,
IntVect & polys ) const
overridevirtual

Implements Champ_implementation.

Definition at line 1958 of file Champ_P1NC_implementation.cpp.

◆ trace()

DoubleTab & Champ_P1NC_implementation::trace ( const Frontiere_dis_base & fr,
const DoubleTab & y,
DoubleTab & x,
int distant ) const
inlineprotected

Definition at line 145 of file Champ_P1NC_implementation.h.

◆ valeur_a_elem()

DoubleVect & Champ_P1NC_implementation::valeur_a_elem ( const DoubleVect & position,
DoubleVect & val,
int le_poly ) const
overridevirtual

Implements Champ_implementation.

Definition at line 1317 of file Champ_P1NC_implementation.cpp.

◆ valeur_a_elem_compo()

double Champ_P1NC_implementation::valeur_a_elem_compo ( const DoubleVect & position,
int le_poly,
int ncomp ) const
overridevirtual

Implements Champ_implementation.

Definition at line 1345 of file Champ_P1NC_implementation.cpp.

◆ valeur_a_sommet_compo() [1/2]

double Champ_P1NC_implementation::valeur_a_sommet_compo ( int num_som,
int le_poly,
int ncomp ) const

Definition at line 1776 of file Champ_P1NC_implementation.cpp.

◆ valeur_a_sommet_compo() [2/2]

KOKKOS_INLINE_FUNCTION double Champ_P1NC_implementation::valeur_a_sommet_compo ( int num_som,
int num_elem,
int ncomp,
CIntTabView elem_faces,
CIntTabView sommet_elem,
CDoubleTabView ch ) const

Definition at line 1797 of file Champ_P1NC_implementation.cpp.

◆ valeur_aux_centres_de_gravite()

DoubleTab & Champ_P1NC_implementation::valeur_aux_centres_de_gravite ( const Domaine & dom,
DoubleTab & tab_val ) const

Computes values at the centers of gravity for a P1NC field.

    This method calculates the values of a P1NC field at the centers of gravity
    of the mesh elements. For each component of the field, it averages the values
    from the faces of each polygon.
Parameters
[in,out]valDoubleTab that will store the computed values. Must have 1 or 2 dimensions. If 1D, it will be resized to (dimension_tot(0), 1).
Returns
Reference to the modified val DoubleTab containing computed values
Exceptions
Process::exit()if val has more than 2 dimensions
Note
Implementation uses GPU parallelization through Kokkos
For each polygon, the value is computed as average of D+1 face values, where D is the spatial dimension

Definition at line 1393 of file Champ_P1NC_implementation.cpp.

◆ valeur_aux_elems()

DoubleTab & Champ_P1NC_implementation::valeur_aux_elems ( const DoubleTab & positions,
const IntVect & les_polys,
DoubleTab & valeurs ) const
overridevirtual

Implements Champ_implementation.

Definition at line 1429 of file Champ_P1NC_implementation.cpp.

◆ valeur_aux_elems_compo()

DoubleVect & Champ_P1NC_implementation::valeur_aux_elems_compo ( const DoubleTab & positions,
const IntVect & les_polys,
DoubleVect & valeurs,
int ncomp ) const
overridevirtual

Implements Champ_implementation.

Definition at line 1491 of file Champ_P1NC_implementation.cpp.

◆ valeur_aux_elems_compo_smooth()

DoubleVect & Champ_P1NC_implementation::valeur_aux_elems_compo_smooth ( const DoubleTab & positions,
const IntVect & les_polys,
DoubleVect & valeurs,
int ncomp )

Definition at line 1603 of file Champ_P1NC_implementation.cpp.

◆ valeur_aux_elems_smooth()

DoubleTab & Champ_P1NC_implementation::valeur_aux_elems_smooth ( const DoubleTab & positions,
const IntVect & les_polys,
DoubleTab & valeurs )

Definition at line 1536 of file Champ_P1NC_implementation.cpp.

◆ valeur_aux_sommets()

DoubleTab & Champ_P1NC_implementation::valeur_aux_sommets ( const Domaine & dom,
DoubleTab & ch_som ) const
overridevirtual

Implements Champ_implementation_divers.

Definition at line 1658 of file Champ_P1NC_implementation.cpp.

◆ valeur_aux_sommets_compo()

DoubleVect & Champ_P1NC_implementation::valeur_aux_sommets_compo ( const Domaine & dom,
DoubleVect & ch_som,
int ncomp ) const
overridevirtual

Implements Champ_implementation_divers.

Definition at line 1837 of file Champ_P1NC_implementation.cpp.

◆ construire_MatP1NC2P1_H1

int construire_MatP1NC2P1_H1 ( Champ_P1NC & ,
const Domaine & ,
double &  )
friend

◆ construire_MatP1NC2P1_L2

int construire_MatP1NC2P1_L2 ( Champ_P1NC & ,
const Domaine &  )
friend

◆ construire_secmem_H1

int construire_secmem_H1 ( Champ_P1NC & ,
const Domaine & ,
DoubleTab & ,
const double  )
friend

◆ construire_secmem_L2

int construire_secmem_L2 ( Champ_P1NC & ,
const Domaine & ,
DoubleTab &  )
friend

◆ test

int test ( Champ_P1NC & ,
const Domaine &  )
friend

◆ valeur_P1_H1

DoubleTab & valeur_P1_H1 ( const Champ_P1NC & cha,
const Domaine & dom,
DoubleTab & ch_som )
friend

Definition at line 702 of file Champ_P1NC_implementation.cpp.

◆ valeur_P1_L2 [1/2]

DoubleTab & valeur_P1_L2 ( Champ_Fonc_P1NC & cha,
const Domaine & dom )
friend

Definition at line 481 of file Champ_P1NC_implementation.cpp.

◆ valeur_P1_L2 [2/2]

DoubleTab & valeur_P1_L2 ( Champ_P1NC & cha,
const Domaine & dom )
friend

Projection du champ P1NC "cha" sur l'espace des champs P1.

Le resultat est stocke dans cha.ch_som() et renvoye (valeur de retour) Voir note technique 2006/010 de Patrick Quemere "Nouvelle approche VEF pour la LES...". Voir aussi "What is in TRUST" : Scales_Separation_P1_P1NC.

Definition at line 65 of file Champ_P1NC_implementation.cpp.

◆ valeur_P1_L2_H1

DoubleTab & valeur_P1_L2_H1 ( Champ_P1NC & ,
const Domaine & ,
DoubleTab &  )
friend

Member Data Documentation

◆ ch_som_

DoubleTab Champ_P1NC_implementation::ch_som_
protected

Definition at line 126 of file Champ_P1NC_implementation.h.

◆ ch_som_vect_

DoubleVect Champ_P1NC_implementation::ch_som_vect_
protected

Definition at line 127 of file Champ_P1NC_implementation.h.

◆ filtrer_L2_deja_appele_

int Champ_P1NC_implementation::filtrer_L2_deja_appele_
protected

Definition at line 128 of file Champ_P1NC_implementation.h.

◆ MatP1NC2P1_H1

Matrice_Morse_Sym Champ_P1NC_implementation::MatP1NC2P1_H1
protected

Definition at line 120 of file Champ_P1NC_implementation.h.

◆ MatP1NC2P1_L2

Matrice_Morse_Sym Champ_P1NC_implementation::MatP1NC2P1_L2
protected

Definition at line 115 of file Champ_P1NC_implementation.h.

◆ MatP1NC2P1_L2_H1

Matrice_Morse_Sym Champ_P1NC_implementation::MatP1NC2P1_L2_H1
protected

Definition at line 136 of file Champ_P1NC_implementation.h.

◆ MatP1NC2P1_L2_Parallele

Matrice Champ_P1NC_implementation::MatP1NC2P1_L2_Parallele
protected

Definition at line 117 of file Champ_P1NC_implementation.h.

◆ solveur_H1

SolveurSys Champ_P1NC_implementation::solveur_H1
protected

Definition at line 121 of file Champ_P1NC_implementation.h.

◆ solveur_L2

SolveurSys Champ_P1NC_implementation::solveur_L2
protected

Definition at line 119 of file Champ_P1NC_implementation.h.

◆ solveur_L2_H1

SolveurSys Champ_P1NC_implementation::solveur_L2_H1
protected

Definition at line 137 of file Champ_P1NC_implementation.h.


The documentation for this class was generated from the following files: