Compare commits
14 Commits
4b804950a0
...
master
Author | SHA1 | Date | |
---|---|---|---|
31d18b0715 | |||
93350f469a | |||
3e03f791cd | |||
be0b840231 | |||
610b0c5633 | |||
539ec4fad7 | |||
fe639d7cf0 | |||
48d652676d | |||
b957e2723d | |||
040971e50f | |||
8b803efbdc | |||
6e53dc13c6 | |||
c3955de037 | |||
98c93372dd |
@ -44,28 +44,28 @@ target_compile_features(pfe PRIVATE cxx_std_17)
|
|||||||
|
|
||||||
target_sources(pfe PRIVATE
|
target_sources(pfe PRIVATE
|
||||||
src/main.cc
|
src/main.cc
|
||||||
src/angles_filter.cc
|
src/analysis/angles_filter.cc
|
||||||
src/angles_filter.h
|
src/analysis/angles_filter.h
|
||||||
src/aspect_ratio_filter.cc
|
src/analysis/aspect_ratio_filter.cc
|
||||||
src/aspect_ratio_filter.h
|
src/analysis/aspect_ratio_filter.h
|
||||||
src/dihedral_angles_filter.cc
|
src/analysis/dihedral_angles_filter.cc
|
||||||
src/dihedral_angles_filter.h
|
src/analysis/dihedral_angles_filter.h
|
||||||
src/surface_points_filter.cc
|
src/surface_points_filter.cc
|
||||||
src/surface_points_filter.h
|
src/surface_points_filter.h
|
||||||
src/kd_tree.cc
|
src/kd_tree.cc
|
||||||
src/kd_tree.h
|
src/kd_tree.h
|
||||||
src/mesh_fit_filter.cc
|
src/fitting/mesh_fit_filter.cc
|
||||||
src/mesh_fit_filter.h
|
src/fitting/mesh_fit_filter.h
|
||||||
src/point_tris_dist.cc
|
src/point_tris_dist.cc
|
||||||
src/point_tris_dist.h
|
src/point_tris_dist.h
|
||||||
src/project_surface_points_on_poly.cc
|
src/fitting/project_surface_points_on_poly.cc
|
||||||
src/project_surface_points_on_poly.h
|
src/fitting/project_surface_points_on_poly.h
|
||||||
src/remove_external_cells_filter.cc
|
src/fitting/remove_external_cells_filter.cc
|
||||||
src/remove_external_cells_filter.h
|
src/fitting/remove_external_cells_filter.h
|
||||||
src/relaxation_filter.cc
|
src/fitting/relaxation_filter.cc
|
||||||
src/relaxation_filter.h
|
src/fitting/relaxation_filter.h
|
||||||
src/max_distance_filter.cc
|
src/analysis/max_distance_filter.cc
|
||||||
src/max_distance_filter.h
|
src/analysis/max_distance_filter.h
|
||||||
src/closest_polymesh_point.cc
|
src/closest_polymesh_point.cc
|
||||||
src/closest_polymesh_point.h)
|
src/closest_polymesh_point.h)
|
||||||
|
|
||||||
|
BIN
rapport/img/Pipeline2.png
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
rapport/img/cow-head-poly.png
Normal file
After Width: | Height: | Size: 183 KiB |
BIN
rapport/img/cow-head-tet-out.png
Normal file
After Width: | Height: | Size: 162 KiB |
BIN
rapport/img/cow-head-tet.png
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
rapport/img/dist_point_tris_sectors.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
rapport/img/explosion.png
Normal file
After Width: | Height: | Size: 241 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 159 KiB |
BIN
rapport/img/not_relaxed.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
rapport/img/project_triangle_schema.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
rapport/img/relaxed.png
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
rapport/img/surface_points.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
117
rapport/présentation.txt
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
+------------+
|
||||||
|
| Partie 1/3 |
|
||||||
|
+------------+
|
||||||
|
|
||||||
|
1. Présentation du sujet
|
||||||
|
|
||||||
|
[4/37] Maillages volumiques
|
||||||
|
- Structure composée de cellules polyédriques (tétraèdres, hexaèdres…)
|
||||||
|
reliées entre elles comme pour un maillage polygonal
|
||||||
|
classique, mais les cellules sont en 3D.
|
||||||
|
|
||||||
|
[5/37] Anisotropie
|
||||||
|
Notion de dépendance à l'orientation.
|
||||||
|
Image : plasma dans un réacteur à fusion nucléaire. On distingue clairement
|
||||||
|
une direction principale qui est la « boucle ». Cet exemple présente
|
||||||
|
donc de l'anisotropie.
|
||||||
|
|
||||||
|
[6/37] Anisotropie
|
||||||
|
Plus formellement, un champ de métriques.
|
||||||
|
Une métrique définit la déformation locale.
|
||||||
|
|
||||||
|
À gauche : isotropie.
|
||||||
|
À droite : espace anisotropique circulaire.
|
||||||
|
|
||||||
|
[7/37] Applications
|
||||||
|
Principalement dans le domaine de la simulation physique
|
||||||
|
Notamment la mécanique des fluides, où ils sont utilisés comme base de
|
||||||
|
discrétisation pour porter les calculs.
|
||||||
|
|
||||||
|
Par rapport à une simple voxélisation : résolution adaptative, plus
|
||||||
|
haute résolution dans les zones « intéressantes », pas de perte de temps
|
||||||
|
sur les calculs dans les zones moins intéressantes.
|
||||||
|
|
||||||
|
Par rapport à une voxélisation multi-niveaux comme un octree ou un
|
||||||
|
maillage isotropique, la forme des cellules peut être adaptée au
|
||||||
|
problème pour encore améliorer la précision des calculs. Le problème
|
||||||
|
reste maintenant de générer ces maillages anisotropiques.
|
||||||
|
|
||||||
|
[8/37]
|
||||||
|
Présente des approches pour la génération de maillages surfaciques (et
|
||||||
|
pas volumiques) anisotropes.
|
||||||
|
D'après leur conclusion : « Bien qu'elles soient toutes prouvablement
|
||||||
|
correctes, aucune des méthodes présentées n'est universellement
|
||||||
|
pratique ».
|
||||||
|
De plus, celle avec les résultats les « moins pires » est coûteuse en
|
||||||
|
temps de calcul, ce qui ne ferait qu'empirer après adaptation sur
|
||||||
|
maillages volumiques.
|
||||||
|
|
||||||
|
+------------+
|
||||||
|
| Partie 2/3 |
|
||||||
|
+------------+
|
||||||
|
|
||||||
|
[11/37]
|
||||||
|
Difficile d'imaginer en trois mois qu'on puisse produire une solution
|
||||||
|
qui fonctionne quand une thèse entière qui ne se consacre qu'au
|
||||||
|
surfacique y peine.
|
||||||
|
|
||||||
|
[17/37]
|
||||||
|
Présentation de la chaîne de traitement « pipeline »
|
||||||
|
Deux modes : analyse et adaptation
|
||||||
|
Image : en mode adaptation. En mode analyse on enlève simplement les
|
||||||
|
étapes qui modifient la géométrie du maillage.
|
||||||
|
|
||||||
|
[19/37]
|
||||||
|
point-in-polygon : permet de détecter si un point est dans un
|
||||||
|
polygone. On tire un rayon depuis le point vers l'infini et compte le
|
||||||
|
nombre d'intersections, pair : le points est hors du polygone,
|
||||||
|
impair : le point est dans le polygone.
|
||||||
|
|
||||||
|
[20/37]
|
||||||
|
Les cellules dont tous les points sont à l'extérieur du maillage
|
||||||
|
surfaciques sont supprimées.
|
||||||
|
|
||||||
|
[21/37]
|
||||||
|
Les points de surface sont ensuite marqués. Pour cela on détecte
|
||||||
|
quelles faces sont mitoyennes, ce qu'on peut déduire car on sait à
|
||||||
|
quelle cellules appartiennent chaque point.
|
||||||
|
Si les trois points d'une face appartiennent tous à une autre cellule,
|
||||||
|
c'est que la face qu'ils forment et mitoyenne. Sinon, elle est en
|
||||||
|
surface.
|
||||||
|
|
||||||
|
[22/37]
|
||||||
|
Les points de surface sont ensuite plaqués sur le point du maillage
|
||||||
|
surfacique le plus proche.
|
||||||
|
|
||||||
|
[23/37]
|
||||||
|
En déplaçant les points, on accumule l'information du déplacement de
|
||||||
|
chaque point dans le voisinage dans un certain rayon, pondéré par la
|
||||||
|
distance.
|
||||||
|
|
||||||
|
Le rayon est proportionel à la distance de déplacement multipliée par
|
||||||
|
un facteur, ce qui assure qu'on ne produit pas de cellules inversées
|
||||||
|
dites « chaussettes ».
|
||||||
|
|
||||||
|
Ceci est similaire à la « modification proportionelle » de blender.
|
||||||
|
|
||||||
|
[25/37] et [26/37]
|
||||||
|
Influence du facteur de multiplication du rayon d'action sur la
|
||||||
|
qualité. On voit qu'un rayon de 3 semble maximiser les angles les plus
|
||||||
|
faibles, sans trop réduire les angles les plus élevés pour autant.
|
||||||
|
|
||||||
|
[27/37]
|
||||||
|
Relaxation : on déplace chaque point dans le barycentre de son
|
||||||
|
voisinage. Une itération améliore la qualité du maillage, plus d'une
|
||||||
|
itération la dégrade.
|
||||||
|
|
||||||
|
+------------+
|
||||||
|
| Partie 3/3 |
|
||||||
|
+------------+
|
||||||
|
|
||||||
|
implémentation, moi
|
||||||
|
|
||||||
|
+------------+
|
||||||
|
| Partie 4/3 |
|
||||||
|
+------------+
|
||||||
|
|
||||||
|
résultats et conclusion
|
@ -6,6 +6,7 @@
|
|||||||
\usepackage{url}
|
\usepackage{url}
|
||||||
\usepackage{caption}
|
\usepackage{caption}
|
||||||
\usepackage{listings}
|
\usepackage{listings}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
|
||||||
\title{Génération de maillages anisotropes}
|
\title{Génération de maillages anisotropes}
|
||||||
\author[Jérémy André, Cyril Colin et Christine Cozzolino]
|
\author[Jérémy André, Cyril Colin et Christine Cozzolino]
|
||||||
@ -84,15 +85,79 @@ mais qui approxime que grossièrement le maillage surfacique, et devons
|
|||||||
tenter de le rendre plus fidèle au maillage surfacique en évitant de
|
tenter de le rendre plus fidèle au maillage surfacique en évitant de
|
||||||
dégrader la qualité.
|
dégrader la qualité.
|
||||||
|
|
||||||
\section{Présentation de notre méthode}
|
%-----------------------------------------------------------------------
|
||||||
\subsection{Plaquage des points sur maillage surfacique}
|
\section{Redéfinition de nos objectifs}
|
||||||
\subsubsection{Recherche du point le plus proche}
|
La thèse de Rouxel-Labbé présente une excellente introduction du
|
||||||
\subsubsection{Mouvement pondéré du voisinage}
|
domaine en plus d'un état de l'art remarquable, mais les approches
|
||||||
\subsection{Régularisation}
|
qu'elle propose restent assez limitée. L’auteur lui-même indique
|
||||||
\section{Implémentation}
|
que bien que prouvablement correctes, elles sont limitées dans leurs
|
||||||
\section{Métrique de qualité}
|
applications. De plus, une des méthodes présentées qui fournit les
|
||||||
\section{Résultats}
|
meilleurs résultats à le défaut d'être coûteuse en temps de calcul,
|
||||||
\subsection{Analyse d'un cas déféctueux}
|
défaut qui ne ferait que s'aggraver si on la traduisait dans le
|
||||||
|
domaine des maillages volumiques.
|
||||||
|
|
||||||
|
Pour cette raison, et au vu de la complexité de la tâche, notre
|
||||||
|
encadrant a redéfini nos objectifs : il s'agit désormais de prendre un
|
||||||
|
maillage tétraédrique généré à partir d'un maillage surfacique de
|
||||||
|
manière simpliste, et de l'adapter pour réduire l'écart entre le
|
||||||
|
maillage surfacique et le maillage tétraédrique sans trop dégrader la
|
||||||
|
qualité de celui-ci.
|
||||||
|
%-----------------------------------------------------------------------
|
||||||
|
\section{Résultats et validation}
|
||||||
|
Notre méthode présente des résultats en demi-teinte. Elle réussi
|
||||||
|
effectivement à grandement diminuer la distance entre le maillage
|
||||||
|
polygonal source et le maillage tétraédrique, mais pas sans générer
|
||||||
|
par endroit des zones de très faible qualité. De plus, elle ne peut
|
||||||
|
pas toujours corriger les défauts causés par la tétraédrisation
|
||||||
|
initiale.
|
||||||
|
|
||||||
|
Les points les plus éloignés du maillage surfacique après application
|
||||||
|
de notre méthode sont en effet ceux où trop de détails et de géométrie
|
||||||
|
ont été perdus dans la tétrahédrisation (voir figure
|
||||||
|
\ref{fig:cow-head}). On peut également y voir un défaut de notre
|
||||||
|
méthode de projection qui choisit les points les plus proches.
|
||||||
|
|
||||||
|
\begin{figure*}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ccc}
|
||||||
|
\includegraphics[width=4.7cm]{img/cow-head-poly.png} &
|
||||||
|
\includegraphics[width=4.7cm]{img/cow-head-tet.png} &
|
||||||
|
\includegraphics[width=4.7cm]{img/cow-head-tet-out.png} \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Tête de la vache dans le maillage polygonal source, le
|
||||||
|
maillage tétraédrique initial, et le maillage tétraédrique après
|
||||||
|
application de notre méthode, de gauche à droite respectivement.}
|
||||||
|
\label{fig:cow-head}
|
||||||
|
\end{figure*}
|
||||||
|
|
||||||
|
L'étape de relaxation améliore la qualité du maillage en minimisant le
|
||||||
|
nombre de cellules qui ont des angles faibles. Cependant en faire plus
|
||||||
|
d'une itération dégrade le maillage plus que de ne pas faire de
|
||||||
|
relaxation du tout. Les angles moins faibles ne sont eux que peu
|
||||||
|
affectés (Voir figure \ref{fig:courbe-relaxation}).
|
||||||
|
|
||||||
|
\begin{figure*}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=14cm]{img/influence-relaxation.png} \\
|
||||||
|
\caption{Influence de la relaxation sur les angles dièdres}
|
||||||
|
\label{fig:courbe-relaxation}
|
||||||
|
\end{figure*}
|
||||||
|
|
||||||
|
Pour ce qui est du rayon d'action de la modification proportionelle,
|
||||||
|
un multiplicateur de rayon de 3 réduit grandement la proportion de
|
||||||
|
cellules avec des angles très faible, mais au-delà de ça l'effet est
|
||||||
|
négligeable (Voir figure \ref{fig:courbe-rayon}).
|
||||||
|
|
||||||
|
\begin{figure*}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{cc}
|
||||||
|
\includegraphics[width=8cm]{img/influence-rayon-0-3.png} &
|
||||||
|
\includegraphics[width=8cm]{img/influence-rayon-5-20.png} \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Influence du rayon de modification proportionelle sur les
|
||||||
|
angles dièdres}
|
||||||
|
\label{fig:courbe-rayon}
|
||||||
|
\end{figure*}
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\bibliography{rapport}
|
\bibliography{rapport}
|
||||||
|
15
rapport/slides.bib
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
@article{plasma,
|
||||||
|
author = {Helander, P and Beidler, C and Bird, T and Drevlak, M and Feng, Y. and Hatzky, R and Jenko, Frank and Kleiber, R. and Proll, Josefine and Turkin, Yu and Xanthopoulos, Panagiotis},
|
||||||
|
year = {2012},
|
||||||
|
month = {11},
|
||||||
|
pages = {124009},
|
||||||
|
title = {Stellarator and tokamak plasmas: A comparison},
|
||||||
|
volume = {54},
|
||||||
|
journal = {Plasma Physics and Controlled Fusion},
|
||||||
|
doi = {10.1088/0741-3335/54/12/124009}
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{gamma,
|
||||||
|
author = {Frédéric Alauzet et al.},
|
||||||
|
howpublished = {https://team.inria.fr/gamma/}
|
||||||
|
}
|
@ -3,6 +3,10 @@
|
|||||||
\usepackage[french]{babel}
|
\usepackage[french]{babel}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage[T1]{fontenc}
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\usepackage[backend=biber]{biblatex}
|
||||||
|
|
||||||
|
\addbibresource{slides.bib}
|
||||||
|
|
||||||
\usetheme{JuanLesPins}
|
\usetheme{JuanLesPins}
|
||||||
\beamertemplatenavigationsymbolsempty
|
\beamertemplatenavigationsymbolsempty
|
||||||
@ -12,10 +16,10 @@
|
|||||||
\newlength\graphwidth
|
\newlength\graphwidth
|
||||||
\setlength\graphwidth{10.5cm}
|
\setlength\graphwidth{10.5cm}
|
||||||
\newlength\graphheight
|
\newlength\graphheight
|
||||||
\setlength\graphheight{7cm}
|
\setlength\graphheight{5.5cm}
|
||||||
\makeatother
|
\makeatother
|
||||||
|
|
||||||
\title{Approximation et amélioration de la qualité des maillages tétrahédriques}
|
\title{Génération de maillages anisotropes}
|
||||||
\author{Jérémy André, Cyril Colin, Christine Cozzolino}
|
\author{Jérémy André, Cyril Colin, Christine Cozzolino}
|
||||||
\institute{Aix-Marseille Université} \date{\today}
|
\institute{Aix-Marseille Université} \date{\today}
|
||||||
\titlegraphic{\includegraphics[width=2.5cm]{img/logo-gig.png}}
|
\titlegraphic{\includegraphics[width=2.5cm]{img/logo-gig.png}}
|
||||||
@ -40,32 +44,41 @@
|
|||||||
|
|
||||||
\begin{frame}{Maillages volumiques}
|
\begin{frame}{Maillages volumiques}
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{cc}
|
\begin{figure}
|
||||||
\includegraphics[width=4.5cm]{img/cow-00.png} &
|
\begin{tabular}{cc}
|
||||||
\includegraphics[width=4.5cm]{img/cow-03.png} \\
|
\includegraphics[width=4.5cm]{img/cow-00.png} &
|
||||||
\includegraphics[width=4.5cm]{img/cow-06.png} &
|
\includegraphics[width=4.5cm]{img/cow-03.png} \\
|
||||||
\includegraphics[width=4.5cm]{img/cow-09.png} \\
|
\includegraphics[width=4.5cm]{img/cow-06.png} &
|
||||||
\end{tabular}
|
\includegraphics[width=4.5cm]{img/cow-09.png} \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Différentes coupes du maillage volumique d'une vache}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Anisotropie}
|
\begin{frame}{Anisotropie}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics{img/plasma.png}
|
\begin{figure}
|
||||||
|
\includegraphics[height=\graphheight]{img/plasma.png}
|
||||||
|
\caption{Plasma dans un réacteur à fusion nucléaire \cite{plasma}}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Anisotropie}
|
\begin{frame}{Anisotropie}
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{cc}
|
\begin{figure}
|
||||||
\includegraphics[width=4.5cm]{img/isotropique.png} &
|
\begin{tabular}{cc}
|
||||||
\includegraphics[width=4.5cm]{img/anisotropique.png}
|
\includegraphics[width=4.5cm]{img/isotropique.png} &
|
||||||
\end{tabular}
|
\includegraphics[width=4.5cm]{img/anisotropique.png}
|
||||||
|
\end{tabular}
|
||||||
|
\caption{À gauche : plan isotropique. À droite : plan anisotropique circulaire.}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Applications}
|
\begin{frame}{Applications}
|
||||||
\begin{figure}[htb]
|
\begin{figure}[htb]
|
||||||
\includegraphics[width=9cm]{img/symmetry-plane.png}
|
\includegraphics[width=9cm]{img/symmetry-plane.png}
|
||||||
\caption{\label{fig:inria-gamma}
|
\caption{\label{fig:inria-gamma}
|
||||||
Image issue du projet GAMMA d'Inria \url{https://team.inria.fr/gamma/}
|
Image issue du projet GAMMA d'Inria \cite{gamma}
|
||||||
}
|
}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
@ -87,18 +100,37 @@
|
|||||||
\begin{frame}
|
\begin{frame}
|
||||||
Le sujet étant jugé trop complexe, notre encadrant nous guide vers
|
Le sujet étant jugé trop complexe, notre encadrant nous guide vers
|
||||||
un sujet un peu simplifié.
|
un sujet un peu simplifié.
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\titlepage
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[plain]{}
|
||||||
|
\hspace*{-12mm}
|
||||||
|
\includegraphics[width=\paperwidth]{img/explosion.png}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\title{Approximation et amélioration de la qualité des maillages tétrahédriques}
|
||||||
|
\begin{frame}
|
||||||
|
\titlepage
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
\begin{block}{Nouveau sujet}
|
\begin{block}{Nouveau sujet}
|
||||||
Adapter un maillage tétrahédrique simple existant au maillage
|
Adapter un maillage tétrahédrique simple existant au maillage
|
||||||
surfacique utilisé pour le générer, tout en préservant sa qualité.
|
surfacique utilisé pour le générer, tout en préservant sa qualité.
|
||||||
\end{block}
|
\end{block}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\section{Présentation de notre méthode}
|
\section{Présentation de notre méthode}
|
||||||
|
|
||||||
\begin{frame}{Chaîne de traitement}
|
\begin{frame}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[height=\graphheight]{img/pipeline.png}
|
\begin{figure}
|
||||||
|
\includegraphics[height=\graphheight]{img/pipeline2.png}
|
||||||
|
\caption{Chaîne de traitement de notre approche}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\subsection{Pré-traitement}
|
\subsection{Pré-traitement}
|
||||||
@ -110,21 +142,46 @@
|
|||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Point-dans-polygone}
|
\begin{frame}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[height=\graphheight]{img/point_in_polygon.png}
|
\begin{figure}
|
||||||
|
\includegraphics[height=\graphheight]{img/point_in_polygon.png}
|
||||||
|
\caption{Point-dans-polygone}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Suppression des cellules externes}
|
\begin{frame}{Suppression des cellules externes}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=\graphwidth]{img/remove_external.png}
|
\begin{figure}
|
||||||
|
\includegraphics[width=\graphwidth]{img/remove_external.png}
|
||||||
|
\caption{Cellules supprimées}
|
||||||
|
\end{figure}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\centering
|
||||||
|
\begin{figure}
|
||||||
|
\includegraphics[width=\graphwidth]{img/surface_points.png}
|
||||||
|
\caption{Détection des points de surface}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\subsection{Projection des points}
|
\subsection{Projection des points}
|
||||||
|
|
||||||
|
\begin{frame}{Recherche des points les plus proches}
|
||||||
|
\centering
|
||||||
|
\begin{figure}
|
||||||
|
\includegraphics[height=\graphheight]{img/project_triangle_schema.png}
|
||||||
|
\caption{Méthode de recherche du point le plus proche}
|
||||||
|
\end{figure}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=\graphwidth]{img/project.png}
|
\begin{figure}
|
||||||
|
\includegraphics[width=\graphwidth]{img/project.png}
|
||||||
|
\caption{Vache après projection des points}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\subsection{« Modification proportionelle »}
|
\subsection{« Modification proportionelle »}
|
||||||
@ -185,10 +242,12 @@
|
|||||||
\includegraphics[width=\graphwidth]{img/vtk-unstructuredgrid-3.png}
|
\includegraphics[width=\graphwidth]{img/vtk-unstructuredgrid-3.png}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}{Paraview}
|
\begin{frame}{Paraview}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=\graphwidth]{img/paraview.png}
|
\begin{figure}
|
||||||
|
\includegraphics[height=5cm]{img/paraview.png}
|
||||||
|
\caption{Capture d'écran de Paraview}
|
||||||
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
@ -206,5 +265,8 @@
|
|||||||
\includegraphics[width=\graphwidth]{img/cas-échec-2.png}
|
\includegraphics[width=\graphwidth]{img/cas-échec-2.png}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\printbibliography
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "max_distance_filter.h"
|
#include "max_distance_filter.h"
|
||||||
#include "closest_polymesh_point.h"
|
#include "../closest_polymesh_point.h"
|
||||||
|
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <vtkPolyData.h>
|
#include <vtkPolyData.h>
|
@ -6,7 +6,7 @@
|
|||||||
#include <vtkDoubleArray.h>
|
#include <vtkDoubleArray.h>
|
||||||
#include <vtkCellIterator.h>
|
#include <vtkCellIterator.h>
|
||||||
|
|
||||||
#include "kd_tree.h"
|
#include "../kd_tree.h"
|
||||||
|
|
||||||
vtkStandardNewMacro(MeshFitFilter);
|
vtkStandardNewMacro(MeshFitFilter);
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
#include "project_surface_points_on_poly.h"
|
#include "project_surface_points_on_poly.h"
|
||||||
#include "closest_polymesh_point.h"
|
#include "../closest_polymesh_point.h"
|
||||||
|
|
||||||
#include <vtkUnstructuredGrid.h>
|
#include <vtkUnstructuredGrid.h>
|
||||||
#include <vtkPointData.h>
|
#include <vtkPointData.h>
|
@ -1,5 +1,5 @@
|
|||||||
#include "remove_external_cells_filter.h"
|
#include "remove_external_cells_filter.h"
|
||||||
#include "point_tris_dist.h"
|
#include "../point_tris_dist.h"
|
||||||
|
|
||||||
#include <vtkCellType.h>
|
#include <vtkCellType.h>
|
||||||
#include <vtkUnstructuredGrid.h>
|
#include <vtkUnstructuredGrid.h>
|
10
src/main.cc
@ -1,9 +1,9 @@
|
|||||||
#include "dihedral_angles_filter.h"
|
#include "analysis/dihedral_angles_filter.h"
|
||||||
#include "remove_external_cells_filter.h"
|
#include "analysis/max_distance_filter.h"
|
||||||
|
#include "fitting/remove_external_cells_filter.h"
|
||||||
|
#include "fitting/project_surface_points_on_poly.h"
|
||||||
|
#include "fitting/relaxation_filter.h"
|
||||||
#include "surface_points_filter.h"
|
#include "surface_points_filter.h"
|
||||||
#include "project_surface_points_on_poly.h"
|
|
||||||
#include "relaxation_filter.h"
|
|
||||||
#include "max_distance_filter.h"
|
|
||||||
|
|
||||||
#include <vtkGeometryFilter.h>
|
#include <vtkGeometryFilter.h>
|
||||||
#include <vtkCellArrayIterator.h>
|
#include <vtkCellArrayIterator.h>
|
||||||
|