TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Cahn_Hilliard Class Reference

classe Cahn_Hilliard More...

#include <Cahn_Hilliard.h>

Inheritance diagram for Cahn_Hilliard:
[legend]
Collaboration diagram for Cahn_Hilliard:
[legend]

Public Member Functions

void set_param (Param &) const override
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.
Entreelire_cl_potentiel (Entree &)
 Lecture des conditions limites sur un flot d'entree.
const Milieu_basemilieu () const override
 Renvoie le milieu physique de l'equation.
Milieu_basemilieu () override
 Renvoie le milieu physique de l'equation.
void associer_milieu_base (const Milieu_base &) override
 Associe un mileu physique a l'equation en construisant dynamiquement (cast) un objet de type Milieu_Incompressible_Phase_Field.
int nombre_d_operateurs () const override
 Renvoie le nombre d'operateurs de l'equation: Pour Cahn-Hilliard c'est 2.
int nombre_d_operateurs_tot () const override
const Operateuroperateur (int) const override
 Renvoie le i-eme operateur de l'equation:
Operateuroperateur (int) override
 Renvoie le i-eme operateur de l'equation:
const Champ_Inc_baseinconnue () const override
 Renvoie la concentration (champ inconnue de l'equation) (version const).
Champ_Inc_baseinconnue () override
 Renvoie la concentration (champ inconnue de l'equation).
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)).
double calculer_pas_de_temps () const override
 Calcul du prochain pas de temps.
void discretiser () override
 Dicretise l'equation.
void completer () override
 Complete l'equation base, associe le potentiel chimique généralisé a l'equation, initialise le vecteur résidu et construit les opérateurs de diffusion.
bool initTimeStep (double dt) override
 Allocation et initialisation de l'inconnue et des CLs jusqu'a present+dt.
bool updateGivenFields () override
 cf Equation_base::updateGivenFields()
void mettre_a_jour (double temps) override
 Effectue une mise a jour en temps de l'equation.
void abortTimeStep () override
 Reinitialiser ce qui doit l'etre.
void resetTime (double time) override
 Reset current time of the equation. Used from ICoCo. See documentation of Problem_base::resetTime().
std::vector< YAML_datadata_a_sauvegarder () const override
 for PDI IO: retrieve name, type and dimensions of the fields to save/restore
int sauvegarder (Sortie &) const override
 Appelle Equation_base::sauvegarder(Sortie&) et sauvegarde le potentiel chimique sur un flot de sortie.
int reprendre (Entree &) override
 Effectue une reprise a partir d'un flot d'entree.
void associer_pb_base (const Probleme_base &) override
 S'associe au probleme: apelle Equation_base::associer_pb_base(const Probleme_base&) les deux termes diffusifs doivent aussi être initialisés puisqu'ils ne sont pas lus dans le JDD.
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.
int preparer_calcul () override
 cf Equation_base::preparer_calcul()
const Motcledomaine_application () const override
 Renvoie le nom du domaine d'application: "Cahn_Hilliard".
int nb_parametres_d_ordre ()
const Champ_Inc_basemutilde () const
Champ_Inc_basemutilde ()
Domaine_Cl_dis_basedomaine_Cl_dis_mutilde ()
const Domaine_Cl_dis_basedomaine_Cl_dis_mutilde () const
int verif_Cl_mutilde () const
 Méthode pour vérifier la compatibilité entre les CL de la concentration et les CL du potentiel.
void compute_mutilde ()
 Calcul de mutilde = beta*dW/dc - ∇. kappa ∇c.
DoubleTab compute_mutilde (const DoubleTab &)
 Calcul de mutilde = beta*dW/dc - ∇. kappa ∇c Stockage dans un autre vecteur.
Champ_Don_basekappa ()
Champ_Don_basemobilite ()
const Fermeture_Thermo_basefermeture () const
Fermeture_Thermo_basefermeture ()
bool mobilite_explicite () const
void initialiser_matrices ()
bool matrices_initialisees ()
void update_terme_mobilite (const DoubleTab &)
void calculer_contribution_CL_concentration (const DoubleTab &)
 Renvoie la contribution des conditions limites sur la concentration sous forme d'un vecteur (multi-composantes).
void calculer_contribution_CL_mutilde (const DoubleTab &)
 Renvoie la contribution des conditions limites sur le potentiel chimique sous forme d'un vecteur (multi-composantes).
Matrice_Morsematrice_mobilite ()
Matrice_Morsematrice_kappa ()
virtual DoubleTab fonction_residu (const DoubleTab &)
 Construit la fonction résidu pour un algorithme de Newton :
Public Member Functions inherited from Equation_base
void nommer (const Nom &nom) override
 Methode appelee lorsqu'on cree l'instance de l'objet dans le jeu de donnees (Interprete::ajouter).
virtual void avancer (int i=1)
virtual void reculer (int i=1)
virtual const Operateuroperateur_fonctionnel (int) const
virtual Operateuroperateur_fonctionnel (int)
int sauvegarder (Sortie &) const override
 On sauvegarde l'inconnue, puis les sources sur un flot de sortie.
int reprendre (Entree &) override
 On reprend l'inconnue a partir d'un flot d'entree.
Nom create_polymacfamily_syno (const Nom &field_tag) const
 Create a synonym of a field name in order to ensure backward compatibility with old names of the PolyMAC discretisation family.
virtual void init_save_file ()
virtual void close_save_file ()
int limpr () const
 Demande au schema en temps si il faut effectuer une impression.
virtual void imprimer (Sortie &os) const
 Imprime les operateurs de l'equation si le schema en temps indique que c'est necessaire.
virtual int impr (Sortie &os) const
 Imprime les operateurs de l'equation sur un flot de sortie, de facon inconditionnelle.
virtual void associer_milieu_equation ()
virtual DoubleTab & derivee_en_temps_inco_transport (DoubleTab &derivee)
virtual DoubleTab & corriger_derivee_expl (DoubleTab &)
virtual DoubleTab & corriger_derivee_impl (DoubleTab &)
virtual void valider_iteration ()
 methode virtuelle permettant de corriger l'onconnue lors d'iterations implicites par exemple K-eps doivent rester positifs
void calculer_pas_de_temps_locaux (DoubleTab &) const
Sourcessources ()
 Renvoie les termes sources asssocies a l'equation.
const Sourcessources () const
 Renvoie les termes sources asssocies a l'equation (version const).
Solveur_Masse_basesolv_masse ()
 Renvoie le solveur de masse associe a l'equation.
const Solveur_Masse_basesolv_masse () const
 Renvoie le solveur de masse associe a l'equation.
Probleme_baseprobleme ()
 Renvoie le probleme associe a l'equation.
const Probleme_baseprobleme () const
 Renvoie le probleme associe a l'equation.
Schema_Temps_baseschema_temps ()
 Renvoie le schema en temps associe a l'equation.
const Schema_Temps_baseschema_temps () const
 Renvoie le schema en temps associe a l'equation.
virtual void associer_domaine_dis (const Domaine_dis_base &)
 Associe le domaine discretise a l'equation.
const Discretisation_basediscretisation () const
 Renvoie la discretisation associee a l'equation.
virtual Domaine_Cl_dis_basedomaine_Cl_dis ()
 Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
virtual const Domaine_Cl_dis_basedomaine_Cl_dis () const
 Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
Domaine_dis_basedomaine_dis ()
 Renvoie le domaine discretise associe a l'equation.
const Domaine_dis_basedomaine_dis () const
 Renvoie le domaine discretise associe a l'equation.
const Nomle_nom () const override
 Renvoie le nom de l'equation.
DoubleVect & get_residu ()
DoubleVect & residu_initial ()
void initialise_residu (int=0)
virtual void imprime_residu (SFichier &)
virtual Nom expression_residu ()
virtual void dimensionner_matrice (Matrice_Morse &mat_morse)
virtual void dimensionner_matrice_sans_mem (Matrice_Morse &mat_morse)
virtual void assembler (Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem)
virtual void modifier_pour_Cl (Matrice_Morse &mat_morse, DoubleTab &secmem) const
virtual void assembler_avec_inertie (Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem)
virtual void dimensionner_termes_croises (Matrice_Morse &matrice, const Probleme_base &autre_pb, int nl, int nc)
virtual void ajouter_termes_croises (const DoubleTab &inco, const Probleme_base &autre_pb, const DoubleTab &autre_inco, DoubleTab &resu) const
virtual void contribuer_termes_croises (const DoubleTab &inco, const Probleme_base &autre_pb, const DoubleTab &autre_inco, Matrice_Morse &matrice) const
virtual int has_interface_blocs () const
virtual double get_time_factor () const
virtual void dimensionner_blocs (matrices_t matrices, const tabs_t &semi_impl={}) const
virtual void assembler_blocs (matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={}) const
virtual void assembler_blocs_avec_inertie (matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={})
Champ_Inc_basechamp_conserve () const
int has_champ_conserve () const
void init_champ_conserve () const
virtual std::pair< std::string, fonc_calc_t > get_fonc_champ_conserve () const
virtual Champ_Inc_basechamp_convecte () const
virtual int has_champ_convecte () const
virtual void init_champ_convecte () const
virtual void mettre_a_jour_champs_conserves (double temps, int reset=0)
void creer_champ (const Motcle &motlu) override
const Champ_baseget_champ (const Motcle &nom) const override
void get_noms_champs_postraitables (Noms &nom, Option opt=NONE) const override
bool has_champ (const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
bool has_champ (const Motcle &nom) const override
virtual void verifie_ch_init_nb_comp (const Champ_Inc_base &ch_ref, const int nb_comp) const
 Verification du nombre de composantes lues pour la specification d un champ.
virtual void verifie_ch_init_nb_comp_cl (const Champ_Inc_base &ch_ref, const int nb_comp, const Cond_lim_base &cl) const
DoubleTab & derivee_en_temps_conv (DoubleTab &, const DoubleTab &)
 Add convection term In: solution is the unknown I.
void Gradient_conjugue_diff_impl (DoubleTrav &secmem, DoubleTab &solution)
void Gradient_conjugue_diff_impl (DoubleTrav &secmem, DoubleTab &solution, const DoubleTab &terme_mul)
 OWN_PTR (Parametre_equation_base) &parametre_equation()
const OWN_PTR (Parametre_equation_base) &parametre_equation() const
virtual const RefObjU & get_modele (Type_modele type) const
virtual int equation_non_resolue () const
int disable_equation_residual () const
virtual const Champ_Inc_basederivee_en_temps () const
virtual Champ_Inc_basederivee_en_temps ()
void set_calculate_time_derivative (int i)
int calculate_time_derivative () const
void set_residuals (const DoubleTab &residual)
virtual bool positive_unkown ()
void add_champs_compris (const Champ_base &ch)
void set_diffusion_multi_scalaire (bool flg=true)
const bool & diffusion_multi_scalaire () const
public_for_cuda void Gradient_conjugue_diff_impl (DoubleTrav &secmem, DoubleTab &solution, int size_terme_mul, const DoubleTab &term_mul)
 Solve: (1/dt + M-1*L)*dI = M-1 * secmem with a Conjugate Gradient matrix-free algorithm by default.
Public Member Functions inherited from Champs_compris_interface
virtual ~Champs_compris_interface ()
virtual bool has_champ (const Motcle &nom, OBS_PTR(Champ_base)&ref_champ) const =0
Public Member Functions inherited from Objet_U
 ~Objet_U () override
 Destructeur, supprime l'objet de la liste d'objets enregistres dans "memoire".
int numero () const
 Renvoie l'indice de l'objet dans Memoire::data.
virtual int duplique () const =0
virtual SortieprintOn (Sortie &) const
 Ecriture de l'objet sur un flot de sortie Methode a surcharger.
virtual EntreereadOn (Entree &)
 Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual unsigned taille_memoire () const =0
virtual int est_egal_a (const Objet_U &) const
 Renvoie 1 si l'objet x et *this sont une seule et meme instance (meme adresse en memoire).
int get_object_id () const
 Renvoie l'identifiant unique de l'objet object_id_.
virtual const Type_infoget_info () const
 Donne des informations sur le type de l'Objet_U.
const Nomque_suis_je () const
 renvoie la chaine identifiant la classe.
const char * le_type () const
 Donne le nom du type de l'Objet_U.
virtual int change_num (const int *const)
 Change le numero interne de l'Objet_U.
virtual int associer_ (Objet_U &)
 Associe l'Objet_U a un autre Objet_U Methode virtuelle a surcharger.
const Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Protected Member Functions

void lire_terme_mobilite ()
void lire_terme_kappa ()
void discretiser_concentration ()
void discretiser_mutilde ()
void discretiser_kappa ()
void discretiser_mobilite ()
void construire_kappa ()
void construire_mobilite (const DoubleTab &)
 OWN_PTR (Champ_Inc_base) concentration_
 OWN_PTR (Domaine_Cl_dis_base) le_dom_Cl_dis_mutilde_
 OWN_PTR (Champ_Don_base) mobilite_
 OBS_PTR (Milieu_base) milieu_
 OBS_PTR (Fermeture_Thermo_base) fermeture_
Protected Member Functions inherited from Equation_base
 OWN_PTR (Solveur_Masse_base) solveur_masse
 OBS_PTR (Schema_Temps_base) le_schema_en_temps
 OBS_PTR (Domaine_dis_base) le_dom_dis
 OWN_PTR (Domaine_Cl_dis_base) le_dom_Cl_dis
 OBS_PTR (Probleme_base) mon_probleme
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.
virtual Entreelire_sources (Entree &)
 Lecture des termes sources dans un flot d'entree.
virtual Entreelire_cond_init (Entree &)
 Lecture des conditions initiales dans un flot d'entree.
virtual Entreelire_cl (Entree &)
 Lecture des conditions limites sur un flot d'entree.
virtual int verif_Cl () const
 Verifie la compatibilite des conditions limites avec l'equation.
virtual void lire ()
 OWN_PTR (Parametre_equation_base) parametre_equation_
 LIST (RefObjU) liste_modeles_
 OWN_PTR (Champ_Inc_base) champ_conserve_
 OWN_PTR (Champ_Inc_base) champ_convecte_
 OWN_PTR (Champ_Inc_base) derivee_en_temps_
Protected Member Functions inherited from Objet_U
 Objet_U ()
 Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_), et enregistre l'objet en "memoire".
 Objet_U (const Objet_U &)
 Constructeur par copie.
const Objet_Uoperator= (const Objet_U &)
 Operateur= : ne fait rien (on conserve le numero et l'identifiant).

Protected Attributes

 mutilde_
int nb_parametres_d_ordre_ = -123
 kappa_
bool mobilite_explicite_ =false
bool passer_par_ajouter_kappa_ =false
bool passer_par_ajouter_mobilite_ =false
Operateur_Diff terme_mobilite_
Operateur_Diff terme_kappa_
bool matrices_initialisees_ =false
Matrice_Morse mat_mobilite_
Matrice_Morse mat_kappa_
DoubleTab contribution_CL_concentration_
DoubleTab contribution_CL_mutilde_
Protected Attributes inherited from Equation_base
Nom nom_
Sources les_sources
DoubleList dt_op_bak
int sys_invariant_
int implicite_
bool has_time_factor_
Champs_compris champs_compris_
Champs_Fonc list_champ_combi
Matrice_Morse matrice_stockee
int matrice_init
int calculate_time_derivative_
bool diffusion_multi_scalaire_ = false

Additional Inherited Members

Static Public Member Functions inherited from Equation_base
static void calculer_champ_conserve (const Objet_U &obj, DoubleTab &val, DoubleTab &bval, tabs_t &deriv)
Static Public Member Functions inherited from Objet_U
static const Nomnom_du_cas ()
 Renvoie une reference constante vers le nom du cas.
static Nomget_set_nom_du_cas ()
 Renvoie une reference non constante vers le nom du cas (pour pouvoir le modifier).
static const Type_infoinfo ()
 Donne des informations sur le type de l'Objet_U.
static const Objet_Uself_cast (const Objet_U &)
 methode ajoutee pour caster en python
static Objet_Uself_cast (Objet_U &)
Static Public Member Functions inherited from Process
static int me ()
 renvoie mon rang dans le groupe de communication courant.
static int nproc ()
 renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::current_group()
static bool is_parallel ()
static void exit (int exit_code=-1)
 Routine de sortie de TRUST dans une region Kokkos.
static double mp_sum (double)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 renvoie le plus grand int i sur l'ensemble des processeurs du groupe courant.
static int mp_min (int)
 renvoie le plus petit int i sur l'ensemble des processeurs du groupe courant.
static double mp_sum_as_double (int v)
static trustIdType mppartial_sum (trustIdType i)
 Calul de la somme partielle de i sur les processeurs 0 a me()-1 (renvoie 0 sur le processeur 0).
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2)
 C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2)
 C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2)
 C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename _TYPE_>
static void mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
static bool mp_and (bool)
 Calcule le 'et' logique de b sur tous les processeurs du groupe courant.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0), 0 sinon.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Routine de sortie de TRUST dans une region Kokkos.
static int node_master ()
 renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a la barriere).
static void abort ()
 Routine de sortie de Trio-U sur une erreur abort().
static SortieJournal (int message_level=0)
 Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)
Public Attributes inherited from Equation_base
Matrice_Morse_Diag diag_
Static Public Attributes inherited from Objet_U
static double precision_geom = 1e-10
static constexpr bool HAS_POINTER = false
static int dimension =0
static int format_precision_geom =11
static int axi =0
static int bidim_axi =0
static int DEACTIVATE_SIGINT_CATCH =0
static Type_info info_obj
static bool disable_TU =false
 Flag to disable or not the writing of the .TU files.
static bool stat_per_proc_perf_log =false
 Flag to enable the writing of the statistics detailed per processor in _csv.TU file.
Static Public Attributes inherited from Process
static int exception_sur_exit =0
static int multiple_files =5120

Detailed Description

classe Cahn_Hilliard

Equation de Cahn-Hilliard. L'équation s'applique à un champ conservé, ici la concentration. Elle s'écrit : dc / dt = ∇.M ∇(mutilde) où mutilde est le potentiel chimique généralisé. mutilde = beta*dW/dc - ∇. kappa ∇c

C'est une équation d'ordre 4, usuellement séparée en deux équations d'ordre 2. Pour cela, le vecteur d'inconnues est formé de c et mutilde en colonne. L'opérateur de diffusion est une matrice par blocs.

See also
Equation_base

Definition at line 47 of file Cahn_Hilliard.h.

Member Function Documentation

◆ abortTimeStep()

void Cahn_Hilliard::abortTimeStep ( )
overridevirtual

Reinitialiser ce qui doit l'etre.

Cette methode est appelee lorsqu'un pas de temps est abandonne, par exemple parce que le calcul a diverge. Il faut donc nettoyer ce qui pourrait polluer la nouvelle resolution.

Exceptions
WrongContext

Reimplemented from Equation_base.

Definition at line 507 of file Cahn_Hilliard.cpp.

◆ associer_milieu_base()

void Cahn_Hilliard::associer_milieu_base ( const Milieu_base & un_milieu)
overridevirtual

Associe un mileu physique a l'equation en construisant dynamiquement (cast) un objet de type Milieu_Incompressible_Phase_Field.

a partir de l'objet Milieu_base passe en parametre.

Parameters
(Milieu_base&un_milieu) le milieu a associer a l'equation

Implements Equation_base.

Definition at line 209 of file Cahn_Hilliard.cpp.

◆ associer_pb_base()

void Cahn_Hilliard::associer_pb_base ( const Probleme_base & pb)
overridevirtual

S'associe au probleme: apelle Equation_base::associer_pb_base(const Probleme_base&) les deux termes diffusifs doivent aussi être initialisés puisqu'ils ne sont pas lus dans le JDD.

Parameters
(Probleme_base&pb) le probleme auquel s'associer

Reimplemented from Equation_base.

Definition at line 198 of file Cahn_Hilliard.cpp.

◆ associer_sch_tps_base()

void Cahn_Hilliard::associer_sch_tps_base ( const Schema_Temps_base & un_schema_en_temps)
overridevirtual

S'associe au schema_en_temps : peut seulement être Schema_CH_Semi_Implicite pour l'instant.

Parameters
(Schema_Temps_base&un_schema_en_temps) le schema en temps a associer a l'equation

Reimplemented from Equation_base.

Definition at line 623 of file Cahn_Hilliard.cpp.

◆ calculer_contribution_CL_concentration()

void Cahn_Hilliard::calculer_contribution_CL_concentration ( const DoubleTab & inco)

Renvoie la contribution des conditions limites sur la concentration sous forme d'un vecteur (multi-composantes).

Definition at line 929 of file Cahn_Hilliard.cpp.

◆ calculer_contribution_CL_mutilde()

void Cahn_Hilliard::calculer_contribution_CL_mutilde ( const DoubleTab & inco)

Renvoie la contribution des conditions limites sur le potentiel chimique sous forme d'un vecteur (multi-composantes).

Definition at line 950 of file Cahn_Hilliard.cpp.

◆ calculer_pas_de_temps()

double Cahn_Hilliard::calculer_pas_de_temps ( ) const
overridevirtual

Calcul du prochain pas de temps.

Luis : Pour l'instant, dt = dt_min, je ne sais pas quel est le pas de temps optimal pour l'équation de Cahn-Hilliard

Returns
(double)

Reimplemented from Equation_base.

Definition at line 661 of file Cahn_Hilliard.cpp.

◆ completer()

void Cahn_Hilliard::completer ( )
overridevirtual

Complete l'equation base, associe le potentiel chimique généralisé a l'equation, initialise le vecteur résidu et construit les opérateurs de diffusion.

Reimplemented from Equation_base.

Definition at line 396 of file Cahn_Hilliard.cpp.

◆ compute_mutilde() [1/2]

void Cahn_Hilliard::compute_mutilde ( )

Calcul de mutilde = beta*dW/dc - ∇. kappa ∇c.

Definition at line 733 of file Cahn_Hilliard.cpp.

◆ compute_mutilde() [2/2]

DoubleTab Cahn_Hilliard::compute_mutilde ( const DoubleTab & c)

Calcul de mutilde = beta*dW/dc - ∇. kappa ∇c Stockage dans un autre vecteur.

Definition at line 789 of file Cahn_Hilliard.cpp.

◆ construire_kappa()

void Cahn_Hilliard::construire_kappa ( )
protected

Definition at line 338 of file Cahn_Hilliard.cpp.

◆ construire_mobilite()

void Cahn_Hilliard::construire_mobilite ( const DoubleTab & c)
protected

Definition at line 350 of file Cahn_Hilliard.cpp.

◆ data_a_sauvegarder()

std::vector< YAML_data > Cahn_Hilliard::data_a_sauvegarder ( ) const
overridevirtual

for PDI IO: retrieve name, type and dimensions of the fields to save/restore

Reimplemented from Equation_base.

Definition at line 572 of file Cahn_Hilliard.cpp.

◆ derivee_en_temps_inco()

DoubleTab & Cahn_Hilliard::derivee_en_temps_inco ( DoubleTab & derivee)
overridevirtual

Returns the time derivative of the unknown I of the equation: dI/dt = M-1*(sum(operators(I) + sources)).

In : derivee contains I (but immediatly set to 0) Out: derivee contains dI/dt

Reimplemented from Equation_base.

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 675 of file Cahn_Hilliard.cpp.

◆ discretiser()

void Cahn_Hilliard::discretiser ( )
overridevirtual

Dicretise l'equation.

Reimplemented from Equation_base.

Definition at line 256 of file Cahn_Hilliard.cpp.

◆ discretiser_concentration()

void Cahn_Hilliard::discretiser_concentration ( )
protected

Definition at line 292 of file Cahn_Hilliard.cpp.

◆ discretiser_kappa()

void Cahn_Hilliard::discretiser_kappa ( )
protected

Definition at line 316 of file Cahn_Hilliard.cpp.

◆ discretiser_mobilite()

void Cahn_Hilliard::discretiser_mobilite ( )
protected

Definition at line 328 of file Cahn_Hilliard.cpp.

◆ discretiser_mutilde()

void Cahn_Hilliard::discretiser_mutilde ( )
protected

Definition at line 304 of file Cahn_Hilliard.cpp.

◆ domaine_application()

const Motcle & Cahn_Hilliard::domaine_application ( ) const
overridevirtual

Renvoie le nom du domaine d'application: "Cahn_Hilliard".

Returns
(Motcle&) lenom representant le domaine d'application

Reimplemented from Equation_base.

Definition at line 170 of file Cahn_Hilliard.cpp.

◆ domaine_Cl_dis_mutilde() [1/2]

Domaine_Cl_dis_base & Cahn_Hilliard::domaine_Cl_dis_mutilde ( )
inline

Definition at line 103 of file Cahn_Hilliard.h.

◆ domaine_Cl_dis_mutilde() [2/2]

const Domaine_Cl_dis_base & Cahn_Hilliard::domaine_Cl_dis_mutilde ( ) const
inline

Definition at line 104 of file Cahn_Hilliard.h.

◆ fermeture() [1/2]

Fermeture_Thermo_base & Cahn_Hilliard::fermeture ( )
inline

Definition at line 114 of file Cahn_Hilliard.h.

◆ fermeture() [2/2]

const Fermeture_Thermo_base & Cahn_Hilliard::fermeture ( ) const
inline

Definition at line 113 of file Cahn_Hilliard.h.

◆ fonction_residu()

DoubleTab Cahn_Hilliard::fonction_residu ( const DoubleTab & c)
virtual

Construit la fonction résidu pour un algorithme de Newton :

En schéma Euler implicite c^n+1 - c^n - Δt M^-1 D mu^n+1 + CL(mu)^n+1 = 0 avec mu^n+1 = beta*dW/dc^n+1 - M^-1 K c^n+1 - CL(c)^n+1

Nécessite d'être généralisé à toute équation et tout schéma en temps

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 850 of file Cahn_Hilliard.cpp.

◆ inconnue() [1/2]

const Champ_Inc_base & Cahn_Hilliard::inconnue ( ) const
overridevirtual

Renvoie la concentration (champ inconnue de l'equation) (version const).

Returns
(Champ_Inc_base&) le champ inconnue representant la concentration

Implements Equation_base.

Definition at line 180 of file Cahn_Hilliard.cpp.

◆ inconnue() [2/2]

Champ_Inc_base & Cahn_Hilliard::inconnue ( )
overridevirtual

Renvoie la concentration (champ inconnue de l'equation).

Returns
(Champ_Inc_base&) le champ inconnue representant la concentration

Implements Equation_base.

Definition at line 189 of file Cahn_Hilliard.cpp.

◆ initialiser_matrices()

void Cahn_Hilliard::initialiser_matrices ( )

Definition at line 968 of file Cahn_Hilliard.cpp.

◆ initTimeStep()

bool Cahn_Hilliard::initTimeStep ( double dt)
overridevirtual

Allocation et initialisation de l'inconnue et des CLs jusqu'a present+dt.

  • autres initialisations pour les calculs sur le prochain pas de temps : operateurs, solveur_masse->
Returns
(0 en cas d'erreur, 1 sinon)

Reimplemented from Equation_base.

Definition at line 522 of file Cahn_Hilliard.cpp.

◆ kappa()

Champ_Don_base & Cahn_Hilliard::kappa ( )
inline

Definition at line 110 of file Cahn_Hilliard.h.

◆ lire_cl_potentiel()

Entree & Cahn_Hilliard::lire_cl_potentiel ( Entree & is)

Lecture des conditions limites sur un flot d'entree.

voir Domaine_Cl_dis_base::readOn

Parameters
(Entree&is) le flot d'entree
Returns
(Entree&) le flot d'entree modifie
Exceptions
ledomaine des conditions aux limites discretisee est vide

Definition at line 92 of file Cahn_Hilliard.cpp.

◆ lire_motcle_non_standard()

int Cahn_Hilliard::lire_motcle_non_standard ( const Motcle & motlu,
Entree & is )
overridevirtual

Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.

Parameters
(Motcle&motlu) le nom du terme a lire
(Entree&is) un flot d'entree
Returns
(int) negative value if the keyword is not understood, otherwise positive value.

Reimplemented from Objet_U.

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 72 of file Cahn_Hilliard.cpp.

◆ lire_terme_kappa()

void Cahn_Hilliard::lire_terme_kappa ( )
protected

Definition at line 379 of file Cahn_Hilliard.cpp.

◆ lire_terme_mobilite()

void Cahn_Hilliard::lire_terme_mobilite ( )
protected

Definition at line 361 of file Cahn_Hilliard.cpp.

◆ matrice_kappa()

Matrice_Morse & Cahn_Hilliard::matrice_kappa ( )
inline

Definition at line 126 of file Cahn_Hilliard.h.

◆ matrice_mobilite()

Matrice_Morse & Cahn_Hilliard::matrice_mobilite ( )
inline

Definition at line 125 of file Cahn_Hilliard.h.

◆ matrices_initialisees()

bool Cahn_Hilliard::matrices_initialisees ( )
inline

Definition at line 119 of file Cahn_Hilliard.h.

◆ mettre_a_jour()

void Cahn_Hilliard::mettre_a_jour ( double temps)
overridevirtual

Effectue une mise a jour en temps de l'equation.

Appelle Equation_base::mettre_a_jour(double) et met a jour le potentiel chimique généralisé.

Parameters
(doubletemps) le temps de mise a jour

Reimplemented from Equation_base.

Definition at line 644 of file Cahn_Hilliard.cpp.

◆ milieu() [1/2]

const Milieu_base & Cahn_Hilliard::milieu ( ) const
overridevirtual

Renvoie le milieu physique de l'equation.

Returns
(Milieu_base&) Le milieu

Implements Equation_base.

Definition at line 229 of file Cahn_Hilliard.cpp.

◆ milieu() [2/2]

Milieu_base & Cahn_Hilliard::milieu ( )
overridevirtual

Renvoie le milieu physique de l'equation.

Returns
(Milieu_base&) Le milieu

Implements Equation_base.

Definition at line 243 of file Cahn_Hilliard.cpp.

◆ mobilite()

Champ_Don_base & Cahn_Hilliard::mobilite ( )
inline

Definition at line 111 of file Cahn_Hilliard.h.

◆ mobilite_explicite()

bool Cahn_Hilliard::mobilite_explicite ( ) const
inline

Definition at line 116 of file Cahn_Hilliard.h.

◆ mutilde() [1/2]

Champ_Inc_base & Cahn_Hilliard::mutilde ( )
inline

Definition at line 101 of file Cahn_Hilliard.h.

◆ mutilde() [2/2]

const Champ_Inc_base & Cahn_Hilliard::mutilde ( ) const
inline

Definition at line 100 of file Cahn_Hilliard.h.

◆ nb_parametres_d_ordre()

int Cahn_Hilliard::nb_parametres_d_ordre ( )
inline

Definition at line 98 of file Cahn_Hilliard.h.

◆ nombre_d_operateurs()

int Cahn_Hilliard::nombre_d_operateurs ( ) const
overridevirtual

Renvoie le nombre d'operateurs de l'equation: Pour Cahn-Hilliard c'est 2.

Returns
(int) le nombre d'operateur de l'equation

Implements Equation_base.

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 111 of file Cahn_Hilliard.cpp.

◆ nombre_d_operateurs_tot()

int Cahn_Hilliard::nombre_d_operateurs_tot ( ) const
overridevirtual

Reimplemented from Equation_base.

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 116 of file Cahn_Hilliard.cpp.

◆ OBS_PTR() [1/2]

Cahn_Hilliard::OBS_PTR ( Fermeture_Thermo_base )
protected

◆ OBS_PTR() [2/2]

Cahn_Hilliard::OBS_PTR ( Milieu_base )
protected

◆ operateur() [1/2]

const Operateur & Cahn_Hilliard::operateur ( int i) const
overridevirtual

Renvoie le i-eme operateur de l'equation:

Parameters
(inti) l'index de l'operateur a renvoyer
Returns
(Operateur&) l'operateur indexe par i

Implements Equation_base.

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 126 of file Cahn_Hilliard.cpp.

◆ operateur() [2/2]

Operateur & Cahn_Hilliard::operateur ( int i)
overridevirtual

Renvoie le i-eme operateur de l'equation:

Parameters
(inti) l'index de l'operateur a renvoyer
Returns
(Operateur&) l'operateur indexe par i

Implements Equation_base.

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 148 of file Cahn_Hilliard.cpp.

◆ OWN_PTR() [1/3]

Cahn_Hilliard::OWN_PTR ( Champ_Don_base )
protected

◆ OWN_PTR() [2/3]

Cahn_Hilliard::OWN_PTR ( Champ_Inc_base )
protected

◆ OWN_PTR() [3/3]

Cahn_Hilliard::OWN_PTR ( Domaine_Cl_dis_base )
protected

◆ preparer_calcul()

int Cahn_Hilliard::preparer_calcul ( )
overridevirtual

cf Equation_base::preparer_calcul()

Returns
(int) renvoie toujours 1

Reimplemented from Equation_base.

Definition at line 482 of file Cahn_Hilliard.cpp.

◆ reprendre()

int Cahn_Hilliard::reprendre ( Entree & is)
overridevirtual

Effectue une reprise a partir d'un flot d'entree.

Appelle Equation_base::reprendre() et reprend mutilde.

Parameters
(Entree&is) un flot d'entree
Returns
(int) renvoie toujours 1
Exceptions
lareprise a echoue, identificateur du potentiel chimique non trouve

Reimplemented from Objet_U.

Definition at line 602 of file Cahn_Hilliard.cpp.

◆ resetTime()

void Cahn_Hilliard::resetTime ( double time)
overridevirtual

Reset current time of the equation. Used from ICoCo. See documentation of Problem_base::resetTime().

Reimplemented from Equation_base.

Definition at line 515 of file Cahn_Hilliard.cpp.

◆ sauvegarder()

int Cahn_Hilliard::sauvegarder ( Sortie & os) const
overridevirtual

Appelle Equation_base::sauvegarder(Sortie&) et sauvegarde le potentiel chimique sur un flot de sortie.

Parameters
(Sortie&os) un flot de sortie sur lequel sauvegarder
Returns
(int) renvoie toujours 1

Reimplemented from Objet_U.

Definition at line 585 of file Cahn_Hilliard.cpp.

◆ set_param()

void Cahn_Hilliard::set_param ( Param & param) const
overridevirtual

Reimplemented from Equation_base.

Reimplemented in Cahn_Hilliard_Convection.

Definition at line 62 of file Cahn_Hilliard.cpp.

◆ update_terme_mobilite()

void Cahn_Hilliard::update_terme_mobilite ( const DoubleTab & c)

Definition at line 1033 of file Cahn_Hilliard.cpp.

◆ updateGivenFields()

bool Cahn_Hilliard::updateGivenFields ( )
overridevirtual

cf Equation_base::updateGivenFields()

On rajoute ici les mises à jour des CL sur mutilde. Utile ? Je ne sais pas.

Reimplemented from Equation_base.

Definition at line 550 of file Cahn_Hilliard.cpp.

◆ verif_Cl_mutilde()

int Cahn_Hilliard::verif_Cl_mutilde ( ) const

Méthode pour vérifier la compatibilité entre les CL de la concentration et les CL du potentiel.

Definition at line 1066 of file Cahn_Hilliard.cpp.

Member Data Documentation

◆ contribution_CL_concentration_

DoubleTab Cahn_Hilliard::contribution_CL_concentration_
protected

Definition at line 173 of file Cahn_Hilliard.h.

◆ contribution_CL_mutilde_

DoubleTab Cahn_Hilliard::contribution_CL_mutilde_
protected

Definition at line 174 of file Cahn_Hilliard.h.

◆ kappa_

Cahn_Hilliard::kappa_
protected

Definition at line 151 of file Cahn_Hilliard.h.

◆ mat_kappa_

Matrice_Morse Cahn_Hilliard::mat_kappa_
protected

Definition at line 170 of file Cahn_Hilliard.h.

◆ mat_mobilite_

Matrice_Morse Cahn_Hilliard::mat_mobilite_
protected

Definition at line 169 of file Cahn_Hilliard.h.

◆ matrices_initialisees_

bool Cahn_Hilliard::matrices_initialisees_ =false
protected

Definition at line 168 of file Cahn_Hilliard.h.

◆ mobilite_explicite_

bool Cahn_Hilliard::mobilite_explicite_ =false
protected

Definition at line 158 of file Cahn_Hilliard.h.

◆ mutilde_

Cahn_Hilliard::mutilde_
protected

Definition at line 145 of file Cahn_Hilliard.h.

◆ nb_parametres_d_ordre_

int Cahn_Hilliard::nb_parametres_d_ordre_ = -123
protected

Definition at line 149 of file Cahn_Hilliard.h.

◆ passer_par_ajouter_kappa_

bool Cahn_Hilliard::passer_par_ajouter_kappa_ =false
protected

Definition at line 159 of file Cahn_Hilliard.h.

◆ passer_par_ajouter_mobilite_

bool Cahn_Hilliard::passer_par_ajouter_mobilite_ =false
protected

Definition at line 160 of file Cahn_Hilliard.h.

◆ terme_kappa_

Operateur_Diff Cahn_Hilliard::terme_kappa_
protected

Definition at line 165 of file Cahn_Hilliard.h.

◆ terme_mobilite_

Operateur_Diff Cahn_Hilliard::terme_mobilite_
protected

Definition at line 163 of file Cahn_Hilliard.h.


The documentation for this class was generated from the following files:
  • /home/docs/checkouts/readthedocs.org/user_builds/triocfd-documentation/checkouts/next/src/Multiphase/Phase_field/Equations/Cahn_Hilliard.h
  • /home/docs/checkouts/readthedocs.org/user_builds/triocfd-documentation/checkouts/next/src/Multiphase/Phase_field/Equations/Cahn_Hilliard.cpp