16#include <Equation_Navier_Cauchy.h>
17#include <Discretisation_base.h>
18#include <Schema_Temps_base.h>
19#include <Probleme_base.h>
20#include <Domaine_dis_base.h>
34 solveur_masse->set_name_of_coefficient_temporel(
"masse_volumique");
49 Cerr <<
"Reading and typing of the diffusion operator : " << finl;
53 terme_diffusif.associer_diffusivite(milieu_->mu_lame());
54 terme_diffusif.associer_diffusivite_volumique(milieu_->lambda_lame());
64 return terme_diffusif;
70 return terme_diffusif;
93 dis.
discretiser_champ(
"champ_elem", dom,
"von_mises",
"Pa", 1, temps, von_mises_);
94 dis.
discretiser_champ(
"champ_elem", dom,
"contraintes",
"Pa", 3, temps, contraintes_);
95 dis.
discretiser_champ(
"champ_elem", dom,
"deformations",
"", 3, temps, deformations_);
97 deformations_->fixer_nom_compo(0,
bidim_axi ?
"eps_r" :
"eps_xx");
98 deformations_->fixer_nom_compo(1,
bidim_axi ?
"eps_z" :
"eps_yy");
99 deformations_->fixer_nom_compo(2,
bidim_axi ?
"eps_theta" :
"eps_zz");
100 contraintes_->fixer_nom_compo(0,
bidim_axi ?
"sigma_r" :
"sigma_xx");
101 contraintes_->fixer_nom_compo(1,
bidim_axi ?
"sigma_z" :
"sigma_yy");
102 contraintes_->fixer_nom_compo(2,
bidim_axi ?
"sigma_theta" :
"sigma_zz");
108 terme_diffusif.associer_eqn(*
this);
115 static Motcle domaine =
"Mecanique";
127void Equation_Navier_Cauchy::update_velocity()
130 const DoubleTab& disp_n = deplacement_->valeurs();
131 const DoubleTab& disp_nm1 = deplacement_->passe();
132 DoubleTab& vit_n = vitesse_noeuds_->valeurs();
136 vit_n(i, j) = (disp_n(i, j) - disp_nm1(i, j)) / dt;
143 von_mises_->changer_temps(temps);
144 contraintes_->changer_temps(temps);
145 deformations_->changer_temps(temps);
146 vitesse_noeuds_->changer_temps(temps);
148 ref_cast(
Operateur_Diff_base, terme_diffusif.l_op_base()).calculer_von_mises(deplacement_->valeurs(), deformations_->valeurs(), contraintes_->valeurs(), von_mises_->valeurs());
classe Discretisation_base Cette classe represente un schema de discretisation en espace,...
void discretiser_champ(const Motcle &directive, const Domaine_dis_base &z, const Nom &nom, const Nom &unite, int nb_comp, int nb_pas_dt, double temps, OWN_PTR(Champ_Inc_base)&champ, const Nom &sous_type=NOM_VIDE) const
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
Navier–Cauchy equation for small-strain linear elasticity.
void set_param(Param ¶m) const override
const Motcle & domaine_application() const override
Renvoie "indetermine" Navier_Stokes_standard par exemple surcharge cette methode.
void associer_milieu_base(const Milieu_base &) override
void discretiser() override
Discretise l'equation.
int lire_motcle_non_standard(const Motcle &mot, Entree &is) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
virtual const Champ_Don_base & diffusivite_pour_transport() const
const Operateur & operateur(int) const override
void valider_iteration() override
methode virtuelle permettant de corriger l'onconnue lors d'iterations implicites par exemple K-eps do...
virtual const Champ_base & diffusivite_pour_pas_de_temps() const
void mettre_a_jour(double temps) override
La valeur de l'inconnue sur le pas de temps a ete calculee.
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
virtual void set_param(Param &titi) const override
const Discretisation_base & discretisation() const
Renvoie la discretisation associee a l'equation.
virtual void valider_iteration()
methode virtuelle permettant de corriger l'onconnue lors d'iterations implicites par exemple K-eps do...
virtual void mettre_a_jour(double temps)
La valeur de l'inconnue sur le pas de temps a ete calculee.
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
Schema_Temps_base & schema_temps()
Renvoie le schema en temps associe a l'equation.
virtual void discretiser()
Discretise l'equation.
Champs_compris champs_compris_
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
Isotropic small-strain linear elastic medium.
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
Une chaine de caractere (Nom) en majuscules.
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
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 Operateur_Diff_base Cette classe est la base de la hierarchie des operateurs representant
classe Operateur Classe generique de la hierarchie des operateurs.
Helper class to factorize the readOn method of Objet_U classes.
void ajouter_non_std(const char *keyword, const Objet_U *value, Param::Nature nat=Param::OPTIONAL)
Register a keyword handled by Objet_U::lire_motcle_non_standard.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
double temps_courant() const
Renvoie le temps courant.
double pas_de_temps() const
Renvoie le pas de temps (delta_t) courant.
virtual int nb_valeurs_temporelles() const =0
Classe de base des flux de sortie.
_SIZE_ dimension_tot(int) const override