16#ifndef Cahn_Hilliard_included
17#define Cahn_Hilliard_included
19#include <Equation_base.h>
20#include <Milieu_base.h>
21#include <Fermeture_Thermo_base.h>
22#include <Potentiel_Chimique_base.h>
23#include <Champ_Inc_base.h>
24#include <Operateur_Diff_base.h>
25#include <Operateur_Diff.h>
26#include <Operateur_Conv.h>
27#include <Solveur_non_lineaire.h>
28#include <Matrice_Morse.h>
29#include <Fermeture_Thermo_base.h>
30#include <Milieu_Incompressible_Phase_Field.h>
int nb_parametres_d_ordre()
bool passer_par_ajouter_mobilite_
const Domaine_Cl_dis_base & domaine_Cl_dis_mutilde() const
bool mobilite_explicite() const
int preparer_calcul() override
cf Equation_base::preparer_calcul()
void discretiser_mobilite()
DoubleTab contribution_CL_concentration_
void calculer_contribution_CL_concentration(const DoubleTab &)
Renvoie la contribution des conditions limites sur la concentration sous forme d'un vecteur (multi-co...
DoubleTab contribution_CL_mutilde_
OWN_PTR(Champ_Inc_base) concentration_
OBS_PTR(Fermeture_Thermo_base) fermeture_
bool matrices_initialisees()
virtual DoubleTab fonction_residu(const DoubleTab &)
Construit la fonction résidu pour un algorithme de Newton :
void discretiser() override
Dicretise l'equation.
Matrice_Morse & matrice_kappa()
void completer() override
Complete l'equation base, associe le potentiel chimique généralisé a l'equation, initialise le vecteu...
void associer_sch_tps_base(const Schema_Temps_base &) override
S'associe au schema_en_temps : peut seulement être Schema_CH_Semi_Implicite pour l'instant.
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps 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.
const Milieu_base & milieu() const override
Renvoie le milieu physique de l'equation.
int verif_Cl_mutilde() const
Méthode pour vérifier la compatibilité entre les CL de la concentration et les CL du potentiel.
int sauvegarder(Sortie &) const override
Appelle Equation_base::sauvegarder(Sortie&) et sauvegarde le potentiel chimique sur un flot de sortie...
const Fermeture_Thermo_base & fermeture() const
void associer_milieu_base(const Milieu_base &) override
Associe un mileu physique a l'equation en construisant dynamiquement (cast) un objet de type Milieu_I...
void resetTime(double time) override
Reset current time of the equation. Used from ICoCo. See documentation of Problem_base::resetTime().
void compute_mutilde()
Calcul de mutilde = beta*dW/dc - ∇. kappa ∇c.
Fermeture_Thermo_base & fermeture()
Champ_Inc_base & mutilde()
std::vector< YAML_data > data_a_sauvegarder() const override
for PDI IO: retrieve name, type and dimensions of the fields to save/restore
OWN_PTR(Domaine_Cl_dis_base) le_dom_Cl_dis_mutilde_
int nb_parametres_d_ordre_
bool passer_par_ajouter_kappa_
bool updateGivenFields() override
cf Equation_base::updateGivenFields()
void set_param(Param &) const override
void abortTimeStep() override
Reinitialize what must be.
void construire_mobilite(const DoubleTab &)
Operateur_Diff terme_mobilite_
Operateur_Diff terme_kappa_
Entree & lire_cl_potentiel(Entree &)
Lecture des conditions limites sur un flot d'entree.
int nombre_d_operateurs_tot() const override
bool initTimeStep(double dt) override
Allocation and initialization of the unknown and boundary conditions until present+dt.
void initialiser_matrices()
const Operateur & operateur(int) const override
Renvoie le i-eme operateur de l'equation:
void discretiser_mutilde()
void associer_pb_base(const Probleme_base &) override
S'associe au probleme: apelle Equation_base::associer_pb_base(const Probleme_base&) les deux termes d...
void calculer_contribution_CL_mutilde(const DoubleTab &)
Renvoie la contribution des conditions limites sur le potentiel chimique sous forme d'un vecteur (mul...
OBS_PTR(Milieu_base) milieu_
bool matrices_initialisees_
int reprendre(Entree &) override
Effectue une reprise a partir d'un flot d'entree.
void lire_terme_mobilite()
const Champ_Inc_base & mutilde() const
Matrice_Morse mat_mobilite_
const Motcle & domaine_application() const override
Renvoie le nom du domaine d'application: "Cahn_Hilliard".
int nombre_d_operateurs() const override
Renvoie le nombre d'operateurs de l'equation: Pour Cahn-Hilliard c'est 2.
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...
Domaine_Cl_dis_base & domaine_Cl_dis_mutilde()
void update_terme_mobilite(const DoubleTab &)
double calculer_pas_de_temps() const override
Calcul du prochain pas de temps.
Champ_Don_base & mobilite()
void discretiser_concentration()
Matrice_Morse & matrice_mobilite()
const Champ_Inc_base & inconnue() const override
Renvoie la concentration (champ inconnue de l'equation) (version const).
class Champ_Don_base base class of Given Fields (not calculated)
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
class Equation_base The role of an equation is the calculation of one or more fields....
classe Fermeture_Thermo_base
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
Milieu_base This class is the base of the (physical) medium hierarchy.
A character string (Nom) in uppercase.
Operateur_Diff Generic class of the hierarchy of operators representing a diffusion.
class Operateur Generic class of the operator hierarchy.
Helper class to factorize the readOn method of Objet_U classes.
class Probleme_base It is a Probleme_U that is not a coupling.