16#ifndef Solveur_Masse_base_included
17#define Solveur_Masse_base_included
19#include <TRUSTTabs_forward.h>
20#include <Interface_blocs.h>
22#include <TRUST_Deriv.h>
45 virtual DoubleTab&
appliquer(DoubleTab&)
const;
54 virtual DoubleTab&
ajouter_masse(
double dt, DoubleTab& x,
const DoubleTab& y,
int penalisation=1,
bool use_old_volumes=
false)
const;
56 virtual DoubleTab&
ajouter_masse_dt_local(DoubleVect& dt_locaux, DoubleTab& x,
const DoubleTab& y,
int penalisation=1)
const;
57 virtual void get_masse_dt_local(DoubleVect& m_dt_locaux, DoubleVect& dt_locaux,
int penalisation=1);
60 virtual DoubleTab&
corriger_solution(DoubleTab& x,
const DoubleTab& y,
int incr = 0)
const;
83 virtual void dimensionner_blocs(matrices_t matrices,
const tabs_t& semi_impl = {})
const;
84 virtual void ajouter_blocs(matrices_t matrices, DoubleTab& secmem,
double dt,
const tabs_t& semi_impl,
int resoudre_en_increments)
const;
104 mutable double penalisation_;
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Classe Matrice_Base Classe de base de la hierarchie des matrices.
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
classe MorEqn Classe qui regroupe les fonctionnalites de liaison avec une
class Nom Une chaine de caractere pour nommer les objets de TRUST
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
classe Solveur_Masse_base Represente la matrice de masse d'une equation.
void set_penalisation_flag(int pen)
virtual void dimensionner(Matrice_Morse &matrix) const
virtual void assembler()
DOES NOTHING.
const Nom & get_name_of_coefficient_temporel() const
int has_coefficient_temporel() const
virtual Matrice_Base & ajouter_masse_dt_local(DoubleVect &dt_locaux, Matrice_Base &matrice, int penalisation=1) const
virtual void dimensionner_blocs(matrices_t matrices, const tabs_t &semi_impl={}) const
virtual void get_masse_divide_by_local_dt(DoubleVect &m_dt_locaux, DoubleVect &dt_locaux, int penalisation=1)
virtual void get_masse_dt_local(DoubleVect &m_dt_locaux, DoubleVect &dt_locaux, int penalisation=1)
virtual Matrice_Base & ajouter_masse(double dt, Matrice_Base &matrice, int penalisation=1) const
virtual DoubleTab & appliquer_impl(DoubleTab &x) const =0
int has_coefficient_temporel_
virtual DoubleTab & corriger_solution(DoubleTab &x, const DoubleTab &y, int incr=0) const
virtual void preparer_calcul()
virtual void associer_domaine_dis_base(const Domaine_dis_base &)=0
virtual void resetTime(double temps)
DOES NOTHING - to override in derived classes.
virtual DoubleTab & appliquer(DoubleTab &) const
renvoie appliquer_impl(x/coeffient_temporelle) si on a un coefficient temporel sinon renvoie applique...
void set_name_of_coefficient_temporel(const Nom &)
permet de choisir le nom du coefficient temporelle que l'on veut utiliser pour appliquer
Nom name_of_coefficient_temporel_
virtual void associer_domaine_cl_dis_base(const Domaine_Cl_dis_base &)=0
virtual int has_interface_blocs() const
virtual void mettre_a_jour(double temps)
DOES NOTHING - to override in derived classes.
virtual void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, double dt, const tabs_t &semi_impl, int resoudre_en_increments) const