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_;
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
Matrice_Base class - Base class of the matrix hierarchy.
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
class MorEqn Class that groups the functionalities of linking with an
class Nom: a character string for naming TRUST objects.
Objet_U()
Default constructor: assigns a unique identifier to the object (object_id_) and registers the object ...
Solveur_Masse_base Represents the mass matrix of an 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
Returns appliquer_impl(x/temporal_coefficient) if a temporal coefficient is set, otherwise returns ap...
void set_name_of_coefficient_temporel(const Nom &)
Allows choosing the name of the temporal coefficient to use for apply.
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