16#include <Cahn_Hilliard_Convection.h>
17#include <Probleme_base.h>
18#include <Schema_Cahn_Hilliard_Navier_Stokes.h>
37 param.
ajouter_condition(
"is_read_convection",
"The convection operator must be read, select negligeable type if you want to neglect it.");
42 if (mot==
"convection")
44 Cerr <<
"Reading and typing of the convection operator : " << finl;
90 Cerr <<
"Error for Cahn_Hilliard_Convection::operateur(int i)" << finl;
92 Cerr <<
"and you are trying to access the " << i <<
" th one."<< finl;
114 Cerr <<
"Error for Cahn_Hilliard_Convection::operateur(int i)" << finl;
116 Cerr <<
"and you are trying to access the " << i <<
" th one."<< finl;
133 DoubleTrav secmem(derivee);
149 solveur_masse->appliquer(secmem);
156 Cerr <<
"[Cahn_Hilliard_Convection] Warning: Be careful with implicit part in derivative computation." << finl;
161 Cerr <<
"Error in Cahn_Hilliard_Convection::derivee_en_temps_inco" << finl;
162 Cerr <<
"implicite_ = " <<
implicite_ <<
" has not been initialized!" << finl;
163 Cerr <<
"May be " <<
que_suis_je() <<
"::completer() method doesn't call Cahn_Hilliard::completer()" << finl;
179 DoubleTrav advection(concentration_->valeurs());
182 for (
int elem = 0; elem < nb_elem; elem++)
183 for (
int p = 0; p < nb_param; p++)
184 residu(elem, p) -= dt*theta*advection(elem,p);
classe Cahn_Hilliard_Convection
const Champ_base & vitesse_pour_transport() const
int nombre_d_operateurs() const override
Renvoie le nombre d'operateurs de l'equation: Pour Cahn-Hilliard c'est 3.
const Operateur & operateur(int) const override
Renvoie le i-eme operateur de l'equation:
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
DoubleTab fonction_residu(const DoubleTab &) override
Construit la fonction résidu pour un algorithme de Newton :
void associer_vitesse(const Champ_base &vit)
DoubleTab & derivee_en_temps_inco(DoubleTab &) override
Returns the time derivative of the unknown I of the equation: dI/dt = M-1*(sum(operators(I) + sources...
int nombre_d_operateurs_tot() const override
void set_param(Param &) const override
Operateur_Conv terme_convectif_
int nb_parametres_d_ordre()
virtual DoubleTab fonction_residu(const DoubleTab &)
Construit la fonction résidu pour un algorithme de Newton :
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
void compute_mutilde()
Calcul de mutilde = beta*dW/dc - ∇. kappa ∇c.
void set_param(Param &) const override
Operateur_Diff terme_mobilite_
Operateur_Diff terme_kappa_
classe Champ_base Cette classe est la base de la hierarchie des champs.
Class defining operators and methods for all reading operation in an input flow (file,...
Solveur_Masse_base & solv_masse()
Renvoie le solveur de masse associe a l'equation.
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
Schema_Temps_base & schema_temps()
Renvoie le schema en temps associe a l'equation.
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
Une chaine de caractere (Nom) en majuscules.
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
classe Operateur Classe generique de la hierarchie des operateurs.
virtual DoubleTab & calculer(const DoubleTab &, DoubleTab &) const =0
virtual DoubleTab & ajouter(const DoubleTab &, DoubleTab &) const =0
Helper class to factorize the readOn method of Objet_U classes.
void ajouter_condition(const char *condition, const char *message, const char *name=0)
Declare a post-read logical condition that must hold on the parameter values.
void ajouter_non_std(const char *keyword, const Objet_U *value, Param::Nature nat=Param::OPTIONAL)
Register a keyword handled by Objet_U::lire_motcle_non_standard.
const Champ_base & get_champ(const Motcle &nom) const override
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
: class Schema_CH_NS_Partitionne
double pas_de_temps() const
Renvoie le pas de temps (delta_t) courant.
virtual DoubleTab & appliquer(DoubleTab &) const
renvoie appliquer_impl(x/coeffient_temporelle) si on a un coefficient temporel sinon renvoie applique...
Classe de base des flux de sortie.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")