16#ifndef Source_Con_Phase_field_Binaire_included
17#define Source_Con_Phase_field_Binaire_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>
45 void jacobian_vect(
const DoubleTab&,
const DoubleTab&,
const DoubleTab&, DoubleTab&);
46 int resolution_jfnk(
const DoubleTab&,
const DoubleTab&, DoubleTab&, DoubleTab&);
47 int petsc_snes(
const DoubleTab&,
const DoubleTab&, DoubleTab&, DoubleTab&);
49 DoubleTab&
laplacien(
const DoubleTab&, DoubleTab&)
const;
50 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
Operateur_Diff terme_diffusif_vdf_
void calculer_mutilde_demi(DoubleTab &, DoubleTab &) const
Matrice_Morse ancienne_matrice_
const Matrice_Bloc & get_matrice_diffusion_CH() const
DoubleTab & div_kappa_grad(const DoubleTab &, const DoubleTab &, DoubleTab &) const
OWN_PTR(Champ_base) ch_kappa_ou_alpha_
void calculer_residu_jfnk(const DoubleTab &, DoubleTab &, const DoubleTab &)
Construire le residu du JFNK.
Matrice_Bloc & get_matrice_diffusion_CH()
void assembler_ancienne_matrice()
Ancien assemblage de matrice "à la main" : ne prend pas en compte les différents types de schémas num...
void update_bloc_kappa(const DoubleTab &)
void calculer_mutilde(DoubleTab &) const
Calcul de mutilde au centre des elements.
bool is_matrix_initialised_
void initialiser_matrice_bloc()
int resolution_jfnk(const DoubleTab &, const DoubleTab &, DoubleTab &, DoubleTab &)
Algorithme JFNK (ancienne version de D. Jamet et nouvelle version de PETSc).
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 jacobian_vect(const DoubleTab &, const DoubleTab &, const DoubleTab &, DoubleTab &)
Construire la jacobienne multipliée par un vecteur Y.
Matrice_Bloc matrice_diffusion_CH_
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...
DoubleTab & laplacien(const DoubleTab &, DoubleTab &) const
void update_tab_kappa(const DoubleTab &)
void calculer_div_alpha_rho_grad(const DoubleTab &, DoubleTab &) const
Calcul de Div(alpha*rho*Grad((C)) au centre des elements.