|
| 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.
|
| Entree & | lire_cl_potentiel (Entree &) |
| | Lecture des conditions limites sur un flot d'entree.
|
| const Milieu_base & | milieu () const override |
| | Renvoie le milieu physique de l'equation.
|
| Milieu_base & | milieu () 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 Operateur & | operateur (int) const override |
| | Renvoie le i-eme operateur de l'equation:
|
| Operateur & | operateur (int) override |
| | Renvoie le i-eme operateur de l'equation:
|
| const Champ_Inc_base & | inconnue () const override |
| | Renvoie la concentration (champ inconnue de l'equation) (version const).
|
| Champ_Inc_base & | inconnue () 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_data > | data_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 Motcle & | domaine_application () const override |
| | Renvoie le nom du domaine d'application: "Cahn_Hilliard".
|
| int | nb_parametres_d_ordre () |
| const Champ_Inc_base & | mutilde () const |
| Champ_Inc_base & | mutilde () |
| Domaine_Cl_dis_base & | domaine_Cl_dis_mutilde () |
| const Domaine_Cl_dis_base & | domaine_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_base & | kappa () |
| Champ_Don_base & | mobilite () |
| const Fermeture_Thermo_base & | fermeture () const |
| Fermeture_Thermo_base & | fermeture () |
| 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_Morse & | matrice_mobilite () |
| Matrice_Morse & | matrice_kappa () |
| virtual DoubleTab | fonction_residu (const DoubleTab &) |
| | Construit la fonction résidu pour un algorithme de Newton :
|
| 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 Operateur & | operateur_fonctionnel (int) const |
| virtual Operateur & | operateur_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 |
| Sources & | sources () |
| | Renvoie les termes sources asssocies a l'equation.
|
| const Sources & | sources () const |
| | Renvoie les termes sources asssocies a l'equation (version const).
|
| Solveur_Masse_base & | solv_masse () |
| | Renvoie le solveur de masse associe a l'equation.
|
| const Solveur_Masse_base & | solv_masse () const |
| | Renvoie le solveur de masse associe a l'equation.
|
| Probleme_base & | probleme () |
| | Renvoie le probleme associe a l'equation.
|
| const Probleme_base & | probleme () const |
| | Renvoie le probleme associe a l'equation.
|
| Schema_Temps_base & | schema_temps () |
| | Renvoie le schema en temps associe a l'equation.
|
| const Schema_Temps_base & | schema_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_base & | discretisation () const |
| | Renvoie la discretisation associee a l'equation.
|
| virtual Domaine_Cl_dis_base & | domaine_Cl_dis () |
| | Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
|
| virtual const Domaine_Cl_dis_base & | domaine_Cl_dis () const |
| | Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
|
| Domaine_dis_base & | domaine_dis () |
| | Renvoie le domaine discretise associe a l'equation.
|
| const Domaine_dis_base & | domaine_dis () const |
| | Renvoie le domaine discretise associe a l'equation.
|
| const Nom & | le_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_base & | champ_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_base & | champ_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_base & | get_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) ¶metre_equation() |
| const | OWN_PTR (Parametre_equation_base) ¶metre_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_base & | derivee_en_temps () const |
| virtual Champ_Inc_base & | derivee_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.
|
| virtual | ~Champs_compris_interface () |
| virtual bool | has_champ (const Motcle &nom, OBS_PTR(Champ_base)&ref_champ) const =0 |
| | ~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 Sortie & | printOn (Sortie &) const |
| | Ecriture de l'objet sur un flot de sortie Methode a surcharger.
|
| virtual Entree & | readOn (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_info * | get_info () const |
| | Donne des informations sur le type de l'Objet_U.
|
| const Nom & | que_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 Interprete & | interprete () const |
| Interprete & | interprete () |
| virtual | ~Process () |
|
| static void | calculer_champ_conserve (const Objet_U &obj, DoubleTab &val, DoubleTab &bval, tabs_t &deriv) |
| static const Nom & | nom_du_cas () |
| | Renvoie une reference constante vers le nom du cas.
|
| static Nom & | get_set_nom_du_cas () |
| | Renvoie une reference non constante vers le nom du cas (pour pouvoir le modifier).
|
| static const Type_info * | info () |
| | Donne des informations sur le type de l'Objet_U.
|
| static const Objet_U & | self_cast (const Objet_U &) |
| | methode ajoutee pour caster en python
|
| static Objet_U & | self_cast (Objet_U &) |
| 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 Sortie & | Journal (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) |
| Matrice_Morse_Diag | diag_ |
| 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 int | exception_sur_exit =0 |
| static int | multiple_files =5120 |
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.