TrioCFD 1.9.9_beta
TrioCFD documentation
Loading...
Searching...
No Matches
Source_Con_Phase_field_Binaire_Compact Class Reference

#include <Source_Con_Phase_field_Binaire_Compact.h>

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

Public Member Functions

void premier_demi_dt () override
 Calcule le premier demi pas de temps dans le cas implicite Calcule le pas de temps dans le cas explicite.
Matrice_Morseget_matrice_kappa ()
const Matrice_Morseget_matrice_kappa () const
Matrice_Morseget_matrice_alpha ()
const Matrice_Morseget_matrice_alpha () const
void calculer_residu_jfnk (const DoubleTab &, DoubleTab &, const DoubleTab &)
 Construire le residu du JFNK.
Public Member Functions inherited from Source_Con_Phase_field
int lire_motcle_non_standard (const Motcle &, Entree &) override
 Reads non-simple-type parameters of an Objet_U from an input stream.
void associer_pb (const Probleme_base &) override
DoubleTab & ajouter (DoubleTab &) const override
DoubleTab & calculer (DoubleTab &) const override
void mettre_a_jour (double) override
 DOES NOTHING - to override in derived classes.
void calculer_champ_fonc_c (const double t, Champ_Don_base &champ_fonc_c, const DoubleTab &val_c) const override
const DoubleVect & get_u_carre () override
double drhodc (const int n_elem) const
Public Member Functions inherited from Source_base
virtual void resetTime (double t)
 DOES NOTHING - to override in derived classes.
virtual void completer ()
 Updates internal references of the Source_base object.
virtual void dimensionner (Matrice_Morse &) const
 Sizing of the implicit matrix of source terms.
virtual void dimensionner_bloc_vitesse (Matrice_Morse &) const
virtual void contribuer_a_avec (const DoubleTab &, Matrice_Morse &) const
 contribution to the implicit matrix of source terms, by default no contribution
virtual void contribuer_au_second_membre (DoubleTab &) const
 contribution to the right-hand side of source terms implicitly, by default error
virtual int impr (Sortie &os) const
void associer_domaines_public (const Domaine_dis_base &zdis, const Domaine_Cl_dis_base &zcldis)
virtual int initialiser (double temps)
 Unlike the mettre_a_jour methods, the initializer methods of sources cannot depend on the outside.
virtual void discretiser ()
virtual void associer_champ_rho (const Champ_base &champ_rho)
 This method (or the method of the derived class) is called by Sources::associer_champ_rho for each source in the list.
virtual int a_pour_Champ_Fonc (const Motcle &mot, OBS_PTR(Champ_base) &ch_ref) const
 If the source understands the keyword "mot", it fills the reference to ch_ref and returns 1, otherwise returns 0 (see Source_Translation for example).
virtual void contribuer_jacobienne (Matrice_Bloc &, int) const
virtual int reprendre (Entree &) override
 Restores an Objet_U from an input stream. Virtual method to override.
virtual int sauvegarder (Sortie &) const override
 Saves an Objet_U to an output stream. Virtual method to override.
virtual int has_interface_blocs () const
virtual void dimensionner_blocs (matrices_t matrices, const tabs_t &semi_impl={ }) const
virtual void ajouter_blocs (matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={ }) const
void creer_champ (const Motcle &motlu) override
const Champ_baseget_champ (const Motcle &nom) const override
bool has_champ (const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
bool has_champ (const Motcle &nom) const override
void get_noms_champs_postraitables (Noms &nom, Option opt=NONE) const override
virtual void ouvrir_fichier (SFichier &os, const Nom &, const int flag=1) const
 Opening/creation of a file for printing a source term. To override in derived classes.
void set_fichier (const Nom &)
void set_description (const Nom &nom)
void set_col_names (const Noms &col_names)
const Nom fichier () const
const Nom description () const
DoubleVect & bilan ()
DoubleVect & bilan () const
Champs_compris & champs_compris ()
const LIST (OBS_PTR(Champ_Don_base)) &champs_don() const
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 MorEqn
void associer_eqn (const Equation_base &)
 Associates an equation with the object.
virtual void calculer_pour_post (Champ_base &espace_stockage, const Nom &option, int comp) const
virtual Motcle get_localisation_pour_post (const Nom &option) const
const Equation_baseequation () const
 Returns the reference to the equation pointed to by MorEqn::mon_equation.
Equation_baseequation ()
 Returns the reference to the equation pointed to by MorEqn::mon_equation.
int mon_equation_non_nul () const
virtual void check_multiphase_compatibility () const
Public Member Functions inherited from Objet_U
 ~Objet_U () override
 Destructor. Removes the object from the list of objects registered in "memory".
int numero () const
 Returns the index of the object in Memoire::data.
virtual int duplique () const =0
virtual SortieprintOn (Sortie &) const
 Writes the object to an output stream. Virtual method to override.
virtual EntreereadOn (Entree &)
 Reads an Objet_U from an input stream. Virtual method to override.
virtual unsigned taille_memoire () const =0
virtual int est_egal_a (const Objet_U &) const
 Returns 1 if x and *this are the same instance (same memory address).
virtual const Nomle_nom () const
 Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual void nommer (const Nom &)
 Assigns a name to the Objet_U. Virtual method to override.
int get_object_id () const
 Returns the unique identifier of the object (object_id_).
virtual const Type_infoget_info () const
 Returns type information for the Objet_U.
const Nomque_suis_je () const
 Returns the string identifying the class.
const char * le_type () const
 Returns the type name of the Objet_U.
virtual int change_num (const int *const)
 Changes the internal number of the Objet_U.
virtual int associer_ (Objet_U &)
 Associates the Objet_U with another Objet_U. Virtual method to override.
const Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Protected Member Functions

void jacobian_vect (const DoubleTab &, const DoubleTab &, const DoubleTab &, DoubleTab &)
 Construire la jacobienne multipliée par un vecteur Y.
int resolution_jfnk (const DoubleTab &, const DoubleTab &, DoubleTab &, DoubleTab &)
 Algorithme JFNK (ancienne version de D. Jamet et nouvelle version de PETSc).
int petsc_snes (const DoubleTab &, const DoubleTab &, DoubleTab &, DoubleTab &)
DoubleTab & laplacien (const DoubleTab &, DoubleTab &) const
DoubleTab & div_kappa_grad (const DoubleTab &, const DoubleTab &, DoubleTab &) const
void calculer_div_alpha_rho_grad (const DoubleTab &, DoubleTab &) const
 Calcul de Div(alpha*rho*Grad((C)) au centre des elements.
void calculer_div_alpha_grad (const DoubleTab &, DoubleTab &) const
 Calcul de Div(alpha*rho*Grad((C)) au centre des elements.
void calculer_mutilde_demi (DoubleTab &, DoubleTab &) const
void calculer_mutilde (DoubleTab &) const
 Calcul de mutilde au centre des elements.
 OWN_PTR (Champ_base) ch_kappa_ou_alpha_
void initialiser_matrice_kappa ()
void initialiser_matrice_alpha ()
void update_tab_kappa (const DoubleTab &)
void update_matrice_kappa (const DoubleTab &)
Protected Member Functions inherited from Source_Con_Phase_field
 OBS_PTR (Champ_Don_base) drhodc_
 OBS_PTR (Probleme_base) pb_
 OBS_PTR (Domaine_VDF) le_dom_VDF_
 OBS_PTR (Domaine_Cl_VDF) le_dom_Cl_VDF_
void associer_domaines (const Domaine_dis_base &, const Domaine_Cl_dis_base &) override
void calculer_alpha_gradC_carre (DoubleTab &) const
 Calcul de alpha*(Grad(C))^2 au centre des elements.
void calculer_pression_thermo (DoubleTab &) const
 Calcul de la pression thermodynamique aux elements.
virtual void calculer_u2_elem (DoubleVect &)
Protected Member Functions inherited from Source_base
 LIST (OBS_PTR(Champ_Don_base)) champs_don_
Protected Member Functions inherited from MorEqn
 OBS_PTR (Equation_base) mon_equation
virtual ~MorEqn ()
Protected Member Functions inherited from Objet_U
 Objet_U ()
 Default constructor: assigns a unique identifier to the object (object_id_) and registers the object in "memory" by giving it a num_obj number.
 Objet_U (const Objet_U &)
 Copy constructor.
const Objet_Uoperator= (const Objet_U &)
 Assignment operator: does nothing (the number and identifier are preserved).
virtual void set_param (Param &) const

Protected Attributes

Matrice_Morse matrice_kappa_
DoubleTab kappa_tab_
Matrice_Morse matrice_alpha_
bool is_matrix_kappa_initialised_ = false
bool is_matrix_alpha_initialised_ = false
Operateur_Diff terme_diffusif_vdf_
DoubleTab vec_cl_
Protected Attributes inherited from Source_Con_Phase_field
DoubleVect u_carre_
DoubleTab prov_face_
DoubleTab prov_elem_
DoubleTab g_
DoubleTab accr_
double rho0_ = -123.
double mu1_ = -123.
double mu2_ = -123.
int kappa_moy_ = -123
int implicitation_ = -123
int mobilite_explicite_ =-123
int tpsaff_ = -123
int boussi_ = -123
int diff_boussi_ = -123
int mutype_ = -123
int couplage_ = -123
int nb_equation_CH_ = -123
int with_petsc_ = -123
double atol_ = -123.
double rtol_ = -123.
double stol_ = -123.
int maxit_newton_ = -123
int maxit_gmres_ = -123
int nkr_ = -123
double erel_ = -123.
double umin_ = -123
Protected Attributes inherited from Source_base
int col_width_ = 0
Nom out_
Nom description_
Noms col_names_
DoubleVect bilan_
SFichier Flux
Champs_compris champs_compris_

Additional Inherited Members

Static Public Member Functions inherited from Objet_U
static const Nomnom_du_cas ()
 Returns a constant reference to the case name. This method is static.
static Nomget_set_nom_du_cas ()
 Returns a non-constant reference to the case name (to allow modification). This method is static.
static const Type_infoinfo ()
 Returns type information for the Objet_U (static version).
static const Objet_Uself_cast (const Objet_U &)
 Method added for casting in Python.
static Objet_Uself_cast (Objet_U &)
Static Public Member Functions inherited from Process
static int me ()
 Returns the rank of the local processor in the current communication group. See Comm_Group::rank() and PE_Groups::current_group().
static int nproc ()
 Returns the number of processors in the current group. See Comm_Group::nproc() and PE_Groups::current_group().
static bool is_parallel ()
static void exit (int exit_code=-1)
 Exit routine for TRUST within a Kokkos region.
static double mp_sum (double)
 Computes the sum of x over all processors in the current group.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Computes the sum of x over all processors in the current group.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 Returns the maximum value of x across all processors in the current group.
static int mp_min (int)
 Returns the minimum value of x across all processors in the current group.
static double mp_sum_as_double (int v)
static trustIdType mppartial_sum (trustIdType i)
 Computes the partial sum of x over processors 0 to me()-1 (returns 0 on processor 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)
 Computes the logical AND of b across all processors in the current group.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Exit routine for TRUST within a Kokkos region.
static int node_master ()
 Returns 1 if on the NUMA node master processor, 0 otherwise.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronizes all processors in the current group (waits until all processors have reached the barrier).
static void abort ()
 Abort routine for TRUST on a fatal error.
static SortieJournal (int message_level=0)
 Returns a static Sortie object used as an event journal.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)
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

Definition at line 33 of file Source_Con_Phase_field_Binaire_Compact.h.

Member Function Documentation

◆ calculer_div_alpha_grad()

void Source_Con_Phase_field_Binaire_Compact::calculer_div_alpha_grad ( const DoubleTab & c,
DoubleTab & div_alpha_gradC ) const
protected

Calcul de Div(alpha*rho*Grad((C)) au centre des elements.

Parameters
(DoubleTab&div_alpha_gradC) Div(alpha*Grad((C)) au centre des elements

Definition at line 152 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ calculer_div_alpha_rho_grad()

void Source_Con_Phase_field_Binaire_Compact::calculer_div_alpha_rho_grad ( const DoubleTab & c,
DoubleTab & div_alpha_rho_gradC ) const
protected

Calcul de Div(alpha*rho*Grad((C)) au centre des elements.

Parameters
(DoubleTab&div_alpha_rho_gradC) Div(alpha*rho*Grad((C)) au centre des elements

Definition at line 182 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ calculer_mutilde()

void Source_Con_Phase_field_Binaire_Compact::calculer_mutilde ( DoubleTab & mutilde) const
protected

Calcul de mutilde au centre des elements.

Parameters
(mutilde)mutilde au centre des elements

Definition at line 1161 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ calculer_mutilde_demi()

void Source_Con_Phase_field_Binaire_Compact::calculer_mutilde_demi ( DoubleTab & mutilde_demi,
DoubleTab & c_demi ) const
protected

Definition at line 1189 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ calculer_residu_jfnk()

void Source_Con_Phase_field_Binaire_Compact::calculer_residu_jfnk ( const DoubleTab & c,
DoubleTab & v0,
const DoubleTab & c_demi )

Construire le residu du JFNK.

Definition at line 538 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ div_kappa_grad()

DoubleTab & Source_Con_Phase_field_Binaire_Compact::div_kappa_grad ( const DoubleTab & F,
const DoubleTab & kappa_var,
DoubleTab & resu ) const
protected

Definition at line 98 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ get_matrice_alpha() [1/2]

Matrice_Morse & Source_Con_Phase_field_Binaire_Compact::get_matrice_alpha ( )
inline

Definition at line 41 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ get_matrice_alpha() [2/2]

const Matrice_Morse & Source_Con_Phase_field_Binaire_Compact::get_matrice_alpha ( ) const
inline

Definition at line 42 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ get_matrice_kappa() [1/2]

Matrice_Morse & Source_Con_Phase_field_Binaire_Compact::get_matrice_kappa ( )
inline

Definition at line 39 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ get_matrice_kappa() [2/2]

const Matrice_Morse & Source_Con_Phase_field_Binaire_Compact::get_matrice_kappa ( ) const
inline

Definition at line 40 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ initialiser_matrice_alpha()

void Source_Con_Phase_field_Binaire_Compact::initialiser_matrice_alpha ( )
protected

Definition at line 450 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ initialiser_matrice_kappa()

void Source_Con_Phase_field_Binaire_Compact::initialiser_matrice_kappa ( )
protected

Definition at line 418 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ jacobian_vect()

void Source_Con_Phase_field_Binaire_Compact::jacobian_vect ( const DoubleTab & c,
const DoubleTab & v0,
const DoubleTab & x1,
DoubleTab & v1 )
protected

Construire la jacobienne multipliée par un vecteur Y.

Definition at line 583 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ laplacien()

DoubleTab & Source_Con_Phase_field_Binaire_Compact::laplacien ( const DoubleTab & F,
DoubleTab & resu ) const
protected

Definition at line 71 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ OWN_PTR()

Source_Con_Phase_field_Binaire_Compact::OWN_PTR ( Champ_base )
protected

◆ petsc_snes()

int Source_Con_Phase_field_Binaire_Compact::petsc_snes ( const DoubleTab & ,
const DoubleTab & ,
DoubleTab & ,
DoubleTab &  )
protected

◆ premier_demi_dt()

void Source_Con_Phase_field_Binaire_Compact::premier_demi_dt ( )
overridevirtual

Calcule le premier demi pas de temps dans le cas implicite Calcule le pas de temps dans le cas explicite.

Implements Source_Con_Phase_field_base.

Definition at line 236 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ resolution_jfnk()

int Source_Con_Phase_field_Binaire_Compact::resolution_jfnk ( const DoubleTab & c,
const DoubleTab & mutilde,
DoubleTab & c_demi,
DoubleTab & mutilde_demi )
protected

Algorithme JFNK (ancienne version de D. Jamet et nouvelle version de PETSc).

Parameters
(mutilde)inverse A x = b
Returns
(int)

Solves Ax = b by GMRES with nit iterations (reinitializations) and nkr Krilov vectors. Copied from Sch_Crank_Nicholson.cpp (scalar)//

Definition at line 921 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ update_matrice_kappa()

void Source_Con_Phase_field_Binaire_Compact::update_matrice_kappa ( const DoubleTab & donne)
protected

Definition at line 510 of file Source_Con_Phase_field_Binaire_Compact.cpp.

◆ update_tab_kappa()

void Source_Con_Phase_field_Binaire_Compact::update_tab_kappa ( const DoubleTab & donne)
protected

Definition at line 495 of file Source_Con_Phase_field_Binaire_Compact.cpp.

Member Data Documentation

◆ is_matrix_alpha_initialised_

bool Source_Con_Phase_field_Binaire_Compact::is_matrix_alpha_initialised_ = false
protected

Definition at line 62 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ is_matrix_kappa_initialised_

bool Source_Con_Phase_field_Binaire_Compact::is_matrix_kappa_initialised_ = false
protected

Definition at line 61 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ kappa_tab_

DoubleTab Source_Con_Phase_field_Binaire_Compact::kappa_tab_
protected

Definition at line 59 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ matrice_alpha_

Matrice_Morse Source_Con_Phase_field_Binaire_Compact::matrice_alpha_
protected

Definition at line 60 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ matrice_kappa_

Matrice_Morse Source_Con_Phase_field_Binaire_Compact::matrice_kappa_
protected

Definition at line 58 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ terme_diffusif_vdf_

Operateur_Diff Source_Con_Phase_field_Binaire_Compact::terme_diffusif_vdf_
protected

Definition at line 64 of file Source_Con_Phase_field_Binaire_Compact.h.

◆ vec_cl_

DoubleTab Source_Con_Phase_field_Binaire_Compact::vec_cl_
protected

Definition at line 66 of file Source_Con_Phase_field_Binaire_Compact.h.


The documentation for this class was generated from the following files: