16#include <Schema_RK_Rationnel.h>
17#include <Equation_base.h>
51 const double b1 = 2.0, b2 = -1, c2 = 0.5;
56 DoubleTrav g1(present), g2(present);
59 DoubleTrav sauv(present);
81 double normeg2 = mp_carre_norme_vect(g2) + DMINFLOAT;
83 double normeg1 = -mp_carre_norme_vect(g1);
85 double psc1 = 2.0 * mp_prodscal(g1, g2);
92 futur.ajoute(normeg1, g2);
93 futur /= (normeg2 *
dt_);
101 futur.echange_espace_virtuel();
DoubleTab & futur(int i=1) override
Renvoie les valeurs du champs a l'instant t+i.
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
virtual void imposer_cond_lim(Champ_Inc_base &, double)=0
Class defining operators and methods for all reading operation in an input flow (file,...
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
virtual const Champ_Inc_base & inconnue() const =0
virtual DoubleTab & derivee_en_temps_inco(DoubleTab &)
Returns the time derivative of the unknown I of the equation: dI/dt = M-1*(sum(operators(I) + sources...
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
: classe RRK2 Cette classe represente un schema de Runge Kutta
int faire_un_pas_de_temps_eqn_base(Equation_base &) override
Effectue un pas de temps de Runge Kutta rationnel d'ordre 2, sur l'equation passee en parametre.
double temps_courant() const
Renvoie le temps courant.
double dt_
Pas de temps de calcul.
double pas_de_temps() const
Renvoie le pas de temps (delta_t) courant.
int nb_pas_dt() const
Renvoie le nombre de pas de temps effectues.
void update_critere_statio(const DoubleTab &tab_critere, Equation_base &equation)
//Actualisation de stationnaire_atteint_ et residu_ (critere residu_<seuil_statio_)
Classe de base des flux de sortie.
void print_warning(const int nw)
void ajoute(_SCALAR_TYPE_ alpha, const TRUSTVect &y, Mp_vect_options opt=VECT_ALL_ITEMS)