16#ifndef Operateur_base_included
17#define Operateur_base_included
20#include <Equation_base.h>
22#include <SolveurSys.h>
51 virtual DoubleTab&
ajouter(
const DoubleTab&, DoubleTab&)
const;
52 virtual DoubleTab&
calculer(
const DoubleTab&, DoubleTab&)
const;
67 virtual void dimensionner_blocs(matrices_t matrices,
const tabs_t& semi_impl = { })
const;
68 virtual void ajouter_blocs(matrices_t matrices, DoubleTab& secmem,
const tabs_t& semi_impl = { })
const;
71 virtual void ajouter_termes_croises(
const DoubleTab& inco,
const Probleme_base& autre_pb,
const DoubleTab& autre_inco, DoubleTab& resu)
const;
72 virtual void contribuer_termes_croises(
const DoubleTab& inco,
const Probleme_base& autre_pb,
const DoubleTab& autre_inco, Matrice_Morse& matrice)
const;
122 virtual void ajouter_flux(
const DoubleTab& inconnue, DoubleTab& contribution)
const;
123 virtual void calculer_flux(
const DoubleTab& inconnue, DoubleTab& flux)
const;
classe Champ_base Cette classe est la base de la hierarchie des champs.
classe Champs_compris_interface Cette classe contient une interface de methodes destinees a gerer
classe Conds_lim Cette classe represente un vecteur de conditions aux limites.
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 Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
classe Frontiere_dis_base Classe representant une frontiere discretisee.
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
Classe Matrice Classe generique de la hierarchie des matrices.
classe MorEqn Classe qui regroupe les fonctionnalites de liaison avec une
void associer_eqn(const Equation_base &)
Associe une equation a l'objet.
Une chaine de caractere (Nom) en majuscules.
class Nom Une chaine de caractere pour nommer les objets de TRUST
Un tableau de chaine de caracteres (VECT(Nom)).
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
classe Operateur_base Classe est la base de la hierarchie des objets representant un
virtual void ajouter_termes_croises(const DoubleTab &inco, const Probleme_base &autre_pb, const DoubleTab &autre_inco, DoubleTab &resu) const
void set_fichier(const Nom &)
virtual void modifier_pour_Cl(Matrice_Morse &, DoubleTab &) const
DOES NOTHING - to override in derived classes.
const SolveurSys & get_solveur() const
Champs_compris champs_compris_
virtual void calculer_dt_local(DoubleTab &) const
virtual void associer_champ(const Champ_Inc_base &, const std::string &nom_ch)
void creer_champ(const Motcle &motlu) override
DoubleTab & flux_bords() const
OBS_PTR(Champ_Inc_base) le_champ_inco
virtual DoubleTab & calculer(const DoubleTab &, DoubleTab &) const
virtual void contribuer_a_avec(const DoubleTab &, Matrice_Morse &) const
DOES NOTHING - to override in derived classes.
SolveurSys & set_solveur()
virtual void associer_domaine_cl_dis(const Domaine_Cl_dis_base &)
virtual int has_interface_blocs() const
void tester_contribuer_a_avec(const DoubleTab &, const Matrice_Morse &)
virtual void associer(const Domaine_dis_base &, const Domaine_Cl_dis_base &, const Champ_Inc_base &inco)=0
const Nom fichier() const
bool has_champ_inco() const
virtual void mettre_a_jour(double temps)
DOES NOTHING - to override in derived classes.
virtual void ajouter_flux(const DoubleTab &inconnue, DoubleTab &contribution) const
void ouvrir_fichier_partage(EcrFicPartage &, const Nom &, const int flag=1) const
Ouverture/creation d'un fichier d'impression d'un operateur A surcharger dans les classes derivees.
void calculer_pour_post(Champ_base &espace_stockage, const Nom &option, int comp) const override
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
int get_decal_temps() const
virtual void preparer_calcul()
const Champ_Inc_base & mon_inconnue() const
virtual void dimensionner_bloc_vitesse(Matrice_Morse &matrice) const
virtual double calculer_dt_stab() const
Calcul dt_stab.
bool has_impr_file() const
int set_nb_ss_pas_de_temps(int)
virtual void dimensionner_termes_croises(Matrice_Morse &, const Probleme_base &autre_pb, int nl, int nc) const
virtual void dimensionner(Matrice_Morse &) const
DOES NOTHING - to override in derived classes.
virtual void completer()
Associe l'operateur au domaine_dis, le domaine_Cl_dis, et a l'inconnue de son equation.
int get_nb_ss_pas_de_temps() const
const Matrice & get_matrice() const
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
virtual int impr(Sortie &os) const
DOES NOTHING - to override in derived classes.
Entree & lire_solveur(Entree &)
virtual void contribuer_bloc_vitesse(const DoubleTab &, Matrice_Morse &) const
Motcle get_localisation_pour_post(const Nom &option) const override
virtual void dimensionner_blocs(matrices_t matrices, const tabs_t &semi_impl={ }) const
const Champ_base & get_champ(const Motcle &nom) const override
virtual void contribuer_au_second_membre(DoubleTab &) const
DOES NOTHING - to override in derived classes.
const std::string & nom_inconnue() const
virtual void resetTime(double time)
virtual void ajouter_contribution_explicite_au_second_membre(const Champ_Inc_base &inconnue, DoubleTab &derivee) const
virtual void abortTimeStep()
void set_description(const Nom &nom)
void associer_eqn(const Equation_base &)
Associe une equation a l'operateur.
const Nom description() const
virtual DoubleTab & ajouter(const DoubleTab &, DoubleTab &) const
virtual int systeme_invariant() const
virtual void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={ }) const
virtual void contribuer_termes_croises(const DoubleTab &inco, const Probleme_base &autre_pb, const DoubleTab &autre_inco, Matrice_Morse &matrice) const
virtual void calculer_flux(const DoubleTab &inconnue, DoubleTab &flux) const
void ouvrir_fichier(SFichier &os, const Nom &, const int flag=1) const
Ouverture/creation d'un fichier d'impression d'un operateur A surcharger dans les classes derivees.
Cette classe est a la classe C++ ofstream ce que la classe Sortie est a la classe C++ ostream Elle re...
class SolveurSys Un SolveurSys represente n'importe qu'elle classe