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
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
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
Reinitialiser ce qui doit l'etre.
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 et initialisation de l'inconnue et des CLs jusqu'a 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).
classe Champ_Don_base classe de base des Champs donnes (non calcules)
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
classe Fermeture_Thermo_base
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
Une chaine de caractere (Nom) en majuscules.
classe Operateur_Diff Classe generique de la hierarchie des operateurs representant un terme
classe Operateur Classe generique de la hierarchie des operateurs.
Helper class to factorize the readOn method of Objet_U classes.
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.