16#ifndef Source_Con_Phase_field_Binaire_Compact_included
17#define Source_Con_Phase_field_Binaire_Compact_included
19#include <Convection_Diffusion_Concentration.h>
20#include <Source_Con_Phase_field.h>
21#include <Source_Con_Phase_field_base.h>
22#include <Equation_base.h>
23#include <Matrice_Morse.h>
24#include <SolveurSys.h>
47 void jacobian_vect(
const DoubleTab&,
const DoubleTab&,
const DoubleTab&, DoubleTab&);
48 int resolution_jfnk(
const DoubleTab&,
const DoubleTab&, DoubleTab&, DoubleTab&);
49 int petsc_snes(
const DoubleTab&,
const DoubleTab&, DoubleTab&, DoubleTab&);
51 DoubleTab&
laplacien(
const DoubleTab&, DoubleTab&)
const;
52 DoubleTab&
div_kappa_grad(
const DoubleTab&,
const DoubleTab&, DoubleTab&)
const;
classe Champ_base Cette classe est la base de la hierarchie des champs.
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
classe Operateur_Diff Classe generique de la hierarchie des operateurs representant un terme
void calculer_div_alpha_rho_grad(const DoubleTab &, DoubleTab &) const
Calcul de Div(alpha*rho*Grad((C)) au centre des elements.
void calculer_mutilde(DoubleTab &) const
Calcul de mutilde au centre des elements.
bool is_matrix_kappa_initialised_
Matrice_Morse & get_matrice_kappa()
bool is_matrix_alpha_initialised_
const Matrice_Morse & get_matrice_alpha() const
void initialiser_matrice_kappa()
void initialiser_matrice_alpha()
void calculer_div_alpha_grad(const DoubleTab &, DoubleTab &) const
Calcul de Div(alpha*rho*Grad((C)) au centre des elements.
int petsc_snes(const DoubleTab &, const DoubleTab &, DoubleTab &, DoubleTab &)
void premier_demi_dt() override
Calcule le premier demi pas de temps dans le cas implicite Calcule le pas de temps dans le cas explic...
Operateur_Diff terme_diffusif_vdf_
DoubleTab & div_kappa_grad(const DoubleTab &, const DoubleTab &, DoubleTab &) const
DoubleTab & laplacien(const DoubleTab &, DoubleTab &) const
void jacobian_vect(const DoubleTab &, const DoubleTab &, const DoubleTab &, DoubleTab &)
Construire la jacobienne multipliée par un vecteur Y.
const Matrice_Morse & get_matrice_kappa() const
OWN_PTR(Champ_base) ch_kappa_ou_alpha_
int resolution_jfnk(const DoubleTab &, const DoubleTab &, DoubleTab &, DoubleTab &)
Algorithme JFNK (ancienne version de D. Jamet et nouvelle version de PETSc).
Matrice_Morse & get_matrice_alpha()
void calculer_residu_jfnk(const DoubleTab &, DoubleTab &, const DoubleTab &)
Construire le residu du JFNK.
void update_tab_kappa(const DoubleTab &)
Matrice_Morse matrice_kappa_
Matrice_Morse matrice_alpha_
void calculer_mutilde_demi(DoubleTab &, DoubleTab &) const
void update_matrice_kappa(const DoubleTab &)