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
Reads non-simple-type parameters of an Objet_U from an input stream.
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
Reads non-simple-type parameters of an Objet_U from an input stream.
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_
class Champ_base This class is the base of the fields hierarchy.
Class defining operators and methods for all reading operation in an input flow (file,...
Solveur_Masse_base & solv_masse()
Returns the mass solver associated with the equation.
Probleme_base & probleme()
Returns the problem associated with the equation.
Schema_Temps_base & schema_temps()
Returns the time scheme associated with the equation.
Domaine_dis_base & domaine_dis()
Returns the discretized domain associated with the equation.
A character string (Nom) in uppercase.
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
class Operateur Generic class of the operator hierarchy.
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)
Exit routine for TRUST within a Kokkos region.
: class Schema_CH_NS_Partitionne
double pas_de_temps() const
Returns the current time step (delta_t).
virtual DoubleTab & appliquer(DoubleTab &) const
Returns appliquer_impl(x/temporal_coefficient) if a temporal coefficient is set, otherwise returns ap...
Base class for output streams.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")