16#include <Remailleur_Collision_FT_Juric.h>
17#include <Transport_Interfaces_FT_Disc.h>
18#include <Probleme_base.h>
22#include <Synonyme_info.h>
27Remailleur_Collision_FT_Juric::Remailleur_Collision_FT_Juric() :
28 source_isovaleur_(INDICATRICE)
48 param.ajouter(
"source_isovaleur", & src);
51 param.lire_avec_accolades_depuis(is);
55 Cerr <<
" Using indicator function to reconstruct interfaces" << finl;
60 Cerr <<
" Using distance function to reconstruct interfaces (DANGEROUS: not robust)" << finl;
65static void calculer_iso_avec_distance(
const Domaine& domaine,
67 const DoubleTab& distance,
68 DoubleTab& fonction_iso)
70 fonction_iso = distance;
77 DoubleTab indicatrice_sommets(nb_som,1);
79 const double valeur_invalide = -1.E30;
80 for (i = 0; i < nb_som; i++)
82 double d = fonction_iso(i);
83 if (d < valeur_invalide)
85 double indic = indicatrice_sommets(i,0);
86 d = (indic < 0.5) ? -1.e6 : 1.e6;
93static void calculer_iso_avec_indicatrice(
const Domaine& domaine,
95 DoubleTab& fonction_iso)
97 const int nb_som = fonction_iso.
dimension(0);
100 DoubleTab f(nb_som,1);
103 for (i = 0; i < nb_som; i++)
105 fonction_iso(i) = f(i, 0) - 0.5;
120 Process::Journal()<<
"DEB Remailleur_Collision_FT_Juric::traite_RuptureCoalescenceInterfaces"<<finl;
125 DoubleTab fonction_iso;
131 domaine.creer_tableau_sommets(fonction_iso);
132 calculer_iso_avec_indicatrice(domaine, indicatrice, fonction_iso);
138 calculer_iso_avec_distance(domaine, indicatrice, distance, fonction_iso);
142 Cerr <<
"Erreur dans Remailleur_Collision_FT_Juric::traite_RuptureCoalescenceInterfaces" << finl;
143 Cerr <<
" option source_isovaleur_ non implementee" << finl;
156 Process::Journal()<<
"FIN Remailleur_Collision_FT_Juric::traite_RuptureCoalescenceInterfaces res="<<res<<finl;
161 int nb_fa7Intersectees,
162 const IntTab& couples_fa7Intersectees,
163 const DoubleTab& segmentsInter_fa7Intersectees,
virtual DoubleTab & valeurs()=0
classe Champ_base Cette classe est la base de la hierarchie des champs.
virtual DoubleTab & valeur_aux_sommets(const Domaine &, DoubleTab &) const
renvoie les valeurs aux sommets du Domaine dom
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
Domaine_dis_base & domaine_dis()
Renvoie le domaine discretise associe a l'equation.
: class Maillage_FT_Disc Cette classe decrit un maillage:
Transport_Interfaces_FT_Disc & equation_transport()
int construire_iso(const DoubleVect &valeurs_sommets, double isovaleur, Maillage_FT_Disc &maillage, DoubleVect &indicatrice_approchee, const Maillage_FT_Disc::AjoutPhase phase, int ignorer_collision=0) const
Construction d'un maillage en segments ou en triangles comme l'isovaleur d'une fonction discretisee a...
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.
static Sortie & Journal(int message_level=0)
Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
classe Remailleur_Collision_FT_Juric Classe implementant un remailleur d'interfaces entrees en collis...
Source_Isovaleur source_isovaleur_
int traite_RuptureCoalescenceInterfaces(Maillage_FT_Disc &maillage, int nb_fa7Intersectees, const IntTab &couples_fa7Intersectees, const DoubleTab &segmentsInter_fa7Intersectees, Champ_base &indicatrice) override
classe Remailleur_Collision_FT_base Classe de base pour la hierarchie des remailleurs d'interfaces en...
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")
virtual const DoubleTab & get_update_distance_interface_sommets() const
Renvoi de la distance signee entre l'interface et les sommets du maillage eulerien.
virtual const Marching_Cubes & marching_cubes() const