TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Operator_FT_Disc.h
1/****************************************************************************
2* Copyright (c) 2015 - 2016, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15
16#ifndef Operator_FT_Disc_included
17#define Operator_FT_Disc_included
18
19#include <TRUSTTabFT.h>
20#include <Maillage_FT_Disc.h>
21
22/*! @brief : class Operator_FT_Disc
23 */
24
26{
27public:
28 void Operator_Laplacian_FT_element(const ArrOfDouble& Phi_Facet,const Maillage_FT_Disc& FTmesh, ArrOfDouble& Laplacian_Phi_Facet,DoubleTab& Grad_Phi_Sommet);
29
30 /*void Operator_Gradient_FT_sommets(const ArrOfDouble& Phi_Facet, const Maillage_FT_Disc& FTmesh,
31 DoubleTab& Grad_Phi_Sommet, bool Normalised_with_Surface);*/
32
33 void Operator_Gradient_FT_sommets(const ArrOfDouble& Phi_Facet, const Maillage_FT_Disc& FTmesh,
34 DoubleTab& Grad_Phi_Sommet, bool Normalised_with_Surface=true);
35
36 void Compute_interfaciale_source(const ArrOfDouble& sigma_Facet, const Maillage_FT_Disc& FTmesh,
37 DoubleTab& df_sigma, bool Normalised_with_Surface, bool use_tryggvason_formulation, bool with_marangoni=false);
38 void Operator_integral_bord_facette_phi_p_dl(const ArrOfDouble& Surface_sommet, const ArrOfDouble& Phi_sommet, const ArrOfDouble& Phi_Facet, const Maillage_FT_Disc& FTmesh,
39 DoubleTab& int_phi_p_dl, DoubleTab& int_p_dl);
40 void Sommets_to_Facettes(DoubleTab& Phi_Facet, const DoubleTab& Phi_Som, const Maillage_FT_Disc& FTmesh, bool Normalised_with_Surface);
41 void Sommets_to_Facettes(ArrOfDouble& Phi_Facet, const ArrOfDouble& Phi_Som, const Maillage_FT_Disc& FTmesh, bool Normalised_with_Surface);
42 void Facette_to_Sommets(ArrOfDouble& Surface_sommet, DoubleTab& Phi_Som, const DoubleTab& Phi_Facet, const Maillage_FT_Disc& FTmesh, bool Normalised_with_Surface);
43 void Facette_to_Sommets(ArrOfDouble& Surface_sommet, ArrOfDouble& Phi_Som, const ArrOfDouble& Phi_Facet, const Maillage_FT_Disc& FTmesh, bool Normalised_with_Surface);
44 //void Operator_Gradient_FT_sommets(const ArrOfDouble& Phi_Facet, DoubleTab& Grad_Phi_Sommet, const Maillage_FT_Disc& FTmesh);
45 void produit_vectoriel(const ArrOfDouble& a, const ArrOfDouble& b, ArrOfDouble& resu);
46 double norme(const ArrOfDouble& a);
47 void unitarisation(ArrOfDouble& a);
48 ArrOfDouble Phi_sommet_;
49 ArrOfDouble Surface_sommet_;
50 DoubleTab Kappa_n_, n_sommet_;
51 const ArrOfDouble& get_Phi_sommet() const
52 {
53 return Phi_sommet_;
54 };
55 const ArrOfDouble& get_Surface_sommet() const
56 {
57 return Surface_sommet_;
58 };
59 const DoubleTab& get_n_sommet() const
60 {
61 return n_sommet_;
62 };
63
64 ArrOfDouble get_n_sommet(int dir) const
65 {
66 int nbsom = n_sommet_.dimension(0);
67 ArrOfDouble n_dir_sommet;
68 n_dir_sommet.resize(nbsom);
69 for (int som=0 ; som<nbsom ; som++)
70 {
71 n_dir_sommet(som)=n_sommet_(som, dir);
72 }
73 return n_dir_sommet;
74 };
75
76};
77
78#endif /* Operator_FT_Disc_included */
: class Maillage_FT_Disc Cette classe decrit un maillage:
: class Operator_FT_Disc
ArrOfDouble Phi_sommet_
void Operator_Gradient_FT_sommets(const ArrOfDouble &Phi_Facet, const Maillage_FT_Disc &FTmesh, DoubleTab &Grad_Phi_Sommet, bool Normalised_with_Surface=true)
const DoubleTab & get_n_sommet() const
void Operator_Laplacian_FT_element(const ArrOfDouble &Phi_Facet, const Maillage_FT_Disc &FTmesh, ArrOfDouble &Laplacian_Phi_Facet, DoubleTab &Grad_Phi_Sommet)
void Compute_interfaciale_source(const ArrOfDouble &sigma_Facet, const Maillage_FT_Disc &FTmesh, DoubleTab &df_sigma, bool Normalised_with_Surface, bool use_tryggvason_formulation, bool with_marangoni=false)
void unitarisation(ArrOfDouble &a)
void produit_vectoriel(const ArrOfDouble &a, const ArrOfDouble &b, ArrOfDouble &resu)
void Facette_to_Sommets(ArrOfDouble &Surface_sommet, DoubleTab &Phi_Som, const DoubleTab &Phi_Facet, const Maillage_FT_Disc &FTmesh, bool Normalised_with_Surface)
const ArrOfDouble & get_Phi_sommet() const
ArrOfDouble get_n_sommet(int dir) const
void Sommets_to_Facettes(DoubleTab &Phi_Facet, const DoubleTab &Phi_Som, const Maillage_FT_Disc &FTmesh, bool Normalised_with_Surface)
void Operator_integral_bord_facette_phi_p_dl(const ArrOfDouble &Surface_sommet, const ArrOfDouble &Phi_sommet, const ArrOfDouble &Phi_Facet, const Maillage_FT_Disc &FTmesh, DoubleTab &int_phi_p_dl, DoubleTab &int_p_dl)
const ArrOfDouble & get_Surface_sommet() const
double norme(const ArrOfDouble &a)
ArrOfDouble Surface_sommet_
void resize(_SIZE_ new_size, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
Definition TRUSTArray.h:156