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());
class Discretisation_base This class represents a spatial discretization scheme, which
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
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
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
Returns "indeterminate" Navier_Stokes_standard for example overrides this method.
void associer_milieu_base(const Milieu_base &) override
void discretiser() override
Discretizes the equation.
int lire_motcle_non_standard(const Motcle &mot, Entree &is) override
Reads non-simple-type parameters of an Objet_U from an input stream.
virtual const Champ_Don_base & diffusivite_pour_transport() const
const Operateur & operateur(int) const override
void valider_iteration() override
virtual method to correct the unknown during implicit iterations for example K-eps must remain positi...
virtual const Champ_base & diffusivite_pour_pas_de_temps() const
void mettre_a_jour(double temps) override
The value of the unknown at the time step has been calculated.
class Equation_base The role of an equation is the calculation of one or more fields....
virtual void set_param(Param &titi) const override
const Discretisation_base & discretisation() const
Returns the discretization associated with the equation.
virtual void valider_iteration()
virtual method to correct the unknown during implicit iterations for example K-eps must remain positi...
virtual void mettre_a_jour(double temps)
The value of the unknown at the time step has been calculated.
Probleme_base & probleme()
Returns the problem associated with the equation.
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
Schema_Temps_base & schema_temps()
Returns the time scheme associated with the equation.
virtual void discretiser()
Discretizes the equation.
Champs_compris champs_compris_
Domaine_dis_base & domaine_dis()
Returns the discretized domain associated with the equation.
Isotropic small-strain linear elastic medium.
Milieu_base This class is the base of the (physical) medium hierarchy.
A character string (Nom) in uppercase.
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Operateur_Diff_base This class is the base of the hierarchy of operators representing.
class Operateur Generic class of the operator hierarchy.
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)
Exit routine for TRUST within a Kokkos region.
double temps_courant() const
Returns the current time.
double pas_de_temps() const
Returns the current time step (delta_t).
virtual int nb_valeurs_temporelles() const =0
Base class for output streams.
_SIZE_ dimension_tot(int) const override