From 15796f2575654ee5e1194086248425145d0f87e6 Mon Sep 17 00:00:00 2001 From: Lionel GUEZ <guez@lmd.ens.fr> Date: Fri, 12 Apr 2019 14:08:53 +0200 Subject: [PATCH] Reverse change made in commit 569f9e5: constraint on max_radius. I am not sure about this. I will stay on the safe side for now. Support periodic grid in successive_overlap. --- Documentation_texfol/Graphiques/.gitignore | 1 + Documentation_texfol/Graphiques/GNUmakefile | 2 +- .../Graphiques/set_all_outerm.odg | Bin 0 -> 12272 bytes Documentation_texfol/documentation.tex | 37 ++++++++++++++++-- extraction_eddies.f90 | 5 ++- successive_overlap.f90 | 10 ++++- 6 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 Documentation_texfol/Graphiques/set_all_outerm.odg diff --git a/Documentation_texfol/Graphiques/.gitignore b/Documentation_texfol/Graphiques/.gitignore index 12f9b6c9..5015fed7 100644 --- a/Documentation_texfol/Graphiques/.gitignore +++ b/Documentation_texfol/Graphiques/.gitignore @@ -7,3 +7,4 @@ regions.pdf window.pdf periodicity.pdf copy.pdf +set_all_outerm.pdf diff --git a/Documentation_texfol/Graphiques/GNUmakefile b/Documentation_texfol/Graphiques/GNUmakefile index 4d57024f..fd3e40cc 100644 --- a/Documentation_texfol/Graphiques/GNUmakefile +++ b/Documentation_texfol/Graphiques/GNUmakefile @@ -1,4 +1,4 @@ -sources = window processes m3 call_graph input_output degeneracy periodicity copy +sources = window processes m3 call_graph input_output degeneracy periodicity copy set_all_outerm objects := $(addsuffix .pdf, ${sources}) diff --git a/Documentation_texfol/Graphiques/set_all_outerm.odg b/Documentation_texfol/Graphiques/set_all_outerm.odg new file mode 100644 index 0000000000000000000000000000000000000000..821cd1c1a7f49f3bc92e6c4109fd221f302bd866 GIT binary patch literal 12272 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 Y-2iV^Hjn}V1_1^$76yhTphf)*09w^Q_y7O^ literal 0 HcmV?d00001 diff --git a/Documentation_texfol/documentation.tex b/Documentation_texfol/documentation.tex index 3fc1d308..421054a5 100644 --- a/Documentation_texfol/documentation.tex +++ b/Documentation_texfol/documentation.tex @@ -519,7 +519,7 @@ Les procédures géométriques utilisées : travaillent dans le plan et non sur la sphère. Ces procédures sont appelées par : \begin{itemize} -\item spherical\_polyline\_area +\item spher\_polyline\_area \item inside\_4 \item good\_contour \end{itemize} @@ -544,7 +544,7 @@ procédures qui appellent les procédures géométriques doivent se charger d'ajouter le multiple de $2 \pi$ pour ramener les longitudes dans un intervalle de longueur strictement inférieure à $\pi$. La contrainte de domaine de longitudes s'applique aux procédures -\verb+get_1_outerm+ et \verb+set_max_speed+. +\verb+get_1_outerm+ et \verb+set_max_speed+. Cf. § \ref{sec:set_all_outerm}. \subsection{Sous-algorithmes} @@ -656,6 +656,7 @@ Cas de périodicité : field(i + m - 2, :) = field(i, :). Il manque des tests pour lesquels direction vaut 1 et 4. \subsubsection{set\_all\_outerm} +\label{sec:set_all_outerm} Notons ici : \begin{align*} @@ -666,6 +667,15 @@ Notons ici : & w = \mathtt{corner\_window(1)} \\ & m = \mathtt{max\_radius(1)} \end{align*} +Cf. figure (\ref{fig:set_all_outerm}). +\begin{figure}[htbp] + \centering + \includegraphics{set_all_outerm} + \caption{Contrainte sur les longitudes dans set\_all\_outerm. Les + valeurs en vert sont dans l'espace des indices, les valeurs en + noir dans l'espace des longitudes.} + \label{fig:set_all_outerm} +\end{figure} Pour que la contrainte de domaine de longitudes dans \verb+get_1_outerm+ soit satisfaite, il faut que, dans set\_all\_outerm, au moment de l'appel à \verb+get_1_outerm+ : @@ -734,7 +744,7 @@ weight à u et v, c'est-à-dire qu'il faudrait conserver u, v à plusieurs dates en dehors de \verb+get_snpashot+. Cela remettrait en question tout l'algorithme. -\subsubsection{spherical\_polyline\_area} +\subsubsection{spher\_polyline\_area} La procédure de calcul des contours donne une suite de sommets. Les courbes reliant ces sommets ne sont en fait pas imposés @@ -971,7 +981,7 @@ Les procédures géométriques utilisées : \end{itemize} Ces procédures sont appelées par : \begin{itemize} -\item spherical\_polyline\_area +\item spher\_polyline\_area \item \verb+successive_overlap+ \end{itemize} Cf. discussion autour de l'équation~(\ref{eq:length_pi}). @@ -1512,6 +1522,25 @@ dans polygon\_1 et polygon\_2, il faudrait faire des copies de gagnerait rien en quantité de copie, et on perdrait en mémoire vive occupée. +Contrainte géométrique : les extremums i1 et i2 doivent être ramenés, +via une modulation de $2 \pi$, à une distance inférieure à $pi$ en +longitude. Si $\lambda_1$ désigne la longitude de l'extremum 1, et +$\lambda$ une longitude quelconque, on cherche $m \in \mathbb{Z}$ tel +que : +\begin{equation*} + |\lambda + 2 m \pi - \lambda_1| < \pi +\end{equation*} +Si $m$ existe (ce qui est le cas pour $\lambda$ correspondant à i2) +alors : +\begin{equation*} + m = E\left(\frac{\lambda_1 - \lambda}{2 \pi} + \frac{1}{2} \right) +\end{equation*} +Dans \verb+set_all_outerm+, le multiple de $2 \pi$ à ajouter aux +longitudes de \verb+outside_points+ peut varier selon le point. Ici, +le multiple de $2 \pi$ à ajouter aux longitudes doit être le même pour +tous les points du contour, et égal au multiple à ajouter à la +longitude de l'extremum i2. + \subsubsection{weight} D'autant plus proche de 0 que les tourbillons sont diff --git a/extraction_eddies.f90 b/extraction_eddies.f90 index 53d7c896..bcf27449 100644 --- a/extraction_eddies.f90 +++ b/extraction_eddies.f90 @@ -112,8 +112,9 @@ program extraction_eddies ! "periodic" must be consistent with the values of step(1) and nlon: periodic = nint(twopi / step(1)) == nlon print *, "periodic = ", periodic - if (periodic) call assert(2 * max_radius(1) * step(1) < pi, & - "extraction_eddies max_radius") + + call assert(2 * max_radius(1) * step(1) < pi, "extraction_eddies max_radius") + ! (Let us require this even if not periodic. This is clearer.) copy = merge(max_radius(1), 0, periodic) allocate(ssh(1 - copy:nlon + copy, nlat), u(1 - copy:nlon + copy, nlat), & diff --git a/successive_overlap.f90 b/successive_overlap.f90 index 6a9c64bd..e6088a99 100644 --- a/successive_overlap.f90 +++ b/successive_overlap.f90 @@ -17,6 +17,7 @@ contains ! Libraries: use contour_531, only: polyline use gpc_f, only: gpc_polygon_clip_f, GPC_INT, polygon + use nr_util, only: twopi use candidate_overlap_m, only: candidate_overlap use derived_types, only: snapshot @@ -32,7 +33,7 @@ contains ! Local: - integer i1, i2, l, n_select + integer i1, i2, l, n_select, m type(polyline) polyline_1, polyline_2 type(polygon) res_pol @@ -74,6 +75,13 @@ contains polyline_2 = merge(flow(j)%list_vis(i2)%speed_cont%polyline, & flow(j)%list_vis(i2)%out_cont%polyline, & flow(j)%list_vis(i2)%speed_cont%n_points /= 0) + + ! Shift the longitudes of polyline_2 to values close to the + ! longitude of extremum i1: + m = floor((flow(j - 1)%list_vis(i1)%coord_extr(1) & + - flow(j)%list_vis(i2)%coord_extr(1)) / twopi + 0.5) + polyline_2%points(1, :) = polyline_2%points(1, :) + m * twopi + call gpc_polygon_clip_f(GPC_INT, polygon(nparts = 1, & part = [polyline_1], hole = [.false.]), & polygon(nparts = 1, part = [polyline_2], hole = [.false.]), & -- GitLab