Skip to content
Snippets Groups Projects
Commit 75b33167 authored by Jean-Matthieu Etancelin's avatar Jean-Matthieu Etancelin
Browse files

Cleaning Maple remeshing formula and get some unversionned files

parent 614d38cf
No related branches found
No related tags found
No related merge requests found
No preview for this file type
\documentclass[landscape,a3paper]{article}
\usepackage[top=1cm,bottom=1cm,left=1cm,right=1cm]{geometry}
\usepackage{tikz}
%\usetikzlibrary{arrows,shadows}%,svg.path} % for pgf-umlsd
%\usepackage[
% school,
%simplified
%]{pgf-umlcd}
\usepackage{pgf-umlcd}
\begin{document}
\input{parmescd_fig}
\end{document}
\begin{figure}[h]
\centering
%\resizebox{\textwidth}{!}{
\resizebox{!}{\textheight}{
\begin{tikzpicture}%[show background grid]
\definecolor{userVisible}{rgb}{0.13,0.46,0.78}
\begin{package}{domain}
\begin{interface}[text width=5cm]{Domain}{1,-3}
\attribute{dimension : int}
\attribute{topologies (list of Topology)}
\operation{addTopology(topology)}
\end{interface}
\begin{class}[text width=5cm, fill=userVisible!30]{Box}{1,-6}
\inherit{Domain}
\attribute{length}
\attribute{origin}
\attribute{max}
\attribute{boundaries}
\end{class}
\node[umlcd style, draw, inner sep=0.5cm, minimum width=12cm,
minimum height=5cm] at (-9,-6) (obstaclePackage) {};
\node[umlcd style, draw, outer ysep=-0.5, anchor=south west]
(obstaclePackageName) at
(obstaclePackage.north west) {obstacles};
\begin{class}[text width=3cm]{Obstacle}{-5,-4}
\attribute{zlayer}
\attribute{porousLayer}
\operation{chiFunctions}
\end{class}
\begin{class}[text width=3cm]{Obstacle2D}{-5,-7}
\inherit{Obstacle}
\end{class}
\begin{class}[text width=3cm]{Obstacle3D}{-9,-4}
\inherit{Obstacle}
\end{class}
\begin{class}[text width=3cm]{Cylinder}{-9,-7}
\inherit{Obstacle3D}
\end{class}
\begin{class}[text width=3cm]{Hemisphere}{-13,-7}
\inherit{Obstacle3D}
\end{class}
\begin{class}[text width=3cm]{Sphere}{-13,-4}
\inherit{Obstacle3D}
\end{class}
\end{package}
\begin{package}{mpi}
\begin{class}[text width=5cm]{Topology}{1,5}
\attribute{domain}
\attribute{dim}
\attribute{comm}
\attribute{idTopo}
\attribute{dims}
\attribute{periods}
\attribute{neighbours}
\attribute{mesh}
\attribute{fields (list)}
\attribute{localGridResolution}
\attribute{Gstart}
\operation{\_\_eq\_\_(Topology t)}
\operation{setUp()}
\end{class}
\begin{object}[text width=3cm]{mainvar}{-2,8}
\attribute{file : main\_var}
\attribute{MPI}
\attribute{main\_comm}
\attribute{main\_rank}
\attribute{main\_size}
\end{object}
\draw [color=\umldrawcolor] (mainvar) |- (Topology);
\begin{class}[text width=5cm]{Mesh}{8,7}
\attribute{\_topology}
\attribute{dim}
\attribute{resolution}
\attribute{global\_start}
\attribute{global\_end}
\attribute{space\_step}
\attribute{local\_start}
\attribute{local\_end}
\attribute{origin}
\attribute{end}
\attribute{coords}
\end{class}
\end{package}
\composition{Topology}{}{1}{Mesh}
\aggregation{Topology}{}{1}{Domain}
\begin{package}{fields}
\begin{class}[text width=5cm, fill=userVisible!30]{Field}{15,0}
\attribute{domain} \attribute{dim} \attribute{discreteField
(list)} \attribute{topologies (list)} \attribute{name}
\attribute{vector}
\operation{discretize(**topologyArgs) }
\end{class}
\composition{Field}{}{1}{Domain}
\composition{Field}{}{1..n}{Topology}
\begin{class}[text width=3cm, fill=userVisible!30]{AnalyticalField}{20,0}
\inherit{Field} \attribute{formula}
\operation{value(position) }
\end{class}
\begin{interface}[text width=5cm]{DiscreteField}{15,-5}
\attribute{topology}
\attribute{dim}
\attribute{resolution}
\attribute{name}
\attribute{data}
\attribute{contains\_data}
\end{interface}
\composition{DiscreteField}{}{1}{Topology}
\aggregation{Field}{}{1..n}{DiscreteField}
\begin{class}[text width=5cm]{VectorField}{22,-8}
%\inherit{DiscreteField}
\attribute{data : list of length dim of
numpy.arrays}
\operation{\_\_getitem\_\_(c, index) }
\operation{\_\_setitem\_\_(c, index) }
\end{class}
\draw [umlcd style inherit line] (DiscreteField) -| (VectorField);
\begin{class}[text width=5cm]{ScalarField}{28,-8}
%\inherit{DiscreteField}
\attribute{data : list of length 1 of
numpy.arrays}
\operation{\_\_getitem\_\_(index) }
\operation{\_\_setitem\_\_(index) }
\end{class}
\draw [umlcd style inherit line] (DiscreteField) -| (ScalarField);
\begin{interface}[text width=5cm]{GPUDiscreteField}{15,-11}
\inherit{DiscreteField}
\attribute{gpu\_data}
\attribute{data\_on\_device}
\attribute{mem\_used}
\operation{toHost}
\operation{toDevice}
\end{interface}
\begin{class}[text width=5cm]{GPUVectorField}{22,-13}
\inherit{VectorField}
\attribute{gpu\_data (list of cl.Buffer)}
\operation{toHost}
\operation{toDevice}
\end{class}
\draw [umlcd style inherit line] (GPUDiscreteField) -| (GPUVectorField);
\begin{class}[text width=5cm]{GPUScalarField}{28,-13}
\inherit{ScalarField}
\attribute{gpu\_data (cl.Buffer)}
\operation{toHost}
\operation{toDevice}
\end{class}
\draw [umlcd style inherit line] (GPUDiscreteField) -| (GPUScalarField);
\end{package}
\begin{package}{operators}
\begin{interface}[text width=5cm]{Operator}{22,10}
\attribute{variables}
\attribute{discreteOp}
\attribute{timingInfo}
\attribute{domain}
\attribute{dicreteFieldId : list of id}
\operation{setUp()}
\operation{apply()}
\operation{finalize()}
\operation{printTimingInfo()}
\end{interface}
\composition{Operator}{}{1..n}{Field}
\begin{interface}[text width=5cm]{DiscreteOperator}{30,7}
\attribute{variables}
\attribute{inputVars}
\attribute{outputVars}
\attribute{numMethod}
\attribute{timingInfo}
\attribute{totalTime}
\operation{apply()}
\operation{finalize()}
\operation{printTimingInfo()}
\end{interface}
\composition{Operator}{}{1}{DiscreteOperator}
\composition{DiscreteOperator}{}{1..n}{DiscreteField}
\begin{class}[text width=5cm, fill=userVisible!30]{Advection}{26,13}
%\inherit{Operator}
\attribute{velocity}
\attribute{scalar}
\end{class}
\begin{class}[text width=5cm, fill=userVisible!30]{Diffusion}{26,16}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\attribute{viscosity}
\end{class}
\begin{class}[text width=5cm, fill=userVisible!30]{Pressure}{26,20}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\attribute{viscosity}
\attribute{density}
\end{class}
\begin{class}[text width=5cm, fill=userVisible!30]{Penalization}{26,23}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\attribute{obstacle}
\attribute{lambda}
\end{class}
\begin{class}[text width=5cm, fill=userVisible!30]{Poisson}{26,26}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\end{class}
\begin{class}[text width=5cm, fill=userVisible!30]{Streching}{26,29}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\end{class}
\begin{class}[text width=5cm, fill=userVisible!30]{Velocity}{26,31}
%\inherit{Operator}
\attribute{velocity}
\end{class}
\draw [umlcd style inherit line] (Operator) |- (Advection);
\draw [umlcd style inherit line] (Operator) |- (Diffusion);
\draw [umlcd style inherit line] (Operator) |- (Pressure);
\draw [umlcd style inherit line] (Operator) |- (Penalization);
\draw [umlcd style inherit line] (Operator) |- (Poisson);
\draw [umlcd style inherit line] (Operator) |- (Streching);
\draw [umlcd style inherit line] (Operator) |- (Velocity);
\begin{class}[text width=5cm]{DifferentialOperator}{34,34}
%\inherit{DiscreteOperator}
\attribute{field1}
\attribute{field2}
\attribute{choice}
\end{class}
\begin{class}[text width=5cm]{AdvectionParticle}{34,13}
%\inherit{Operator}
\attribute{velocity}
\attribute{scalar}
\end{class}
\composition{Advection}{}{1}{AdvectionParticle}
\begin{class}[text width=5cm]{GPUAdvectionParticle}{34,10.75}
\inherit{AdvectionParticle}
\end{class}
\composition{Advection}{}{1}{GPUAdvectionParticle}
\begin{class}[text width=5cm]{GPUAdvectionParticle1k}{41,10}
\inherit{GPUAdvectionParticle}
\end{class}
\begin{class}[text width=5cm]{GPUAdvectionParticle2k}{41,12}
\inherit{GPUAdvectionParticle}
\end{class}
\begin{class}[text width=5cm]{ScalesAdvectionParticle}{34,9}
%\inherit{Operator}
\end{class}
\composition{Advection}{}{1}{ScalesAdvectionParticle}
\begin{class}[text width=5cm]{Diffusiond}{34,16}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\attribute{viscosity}
\end{class}
\composition{Diffusion}{}{1}{Diffusiond}
\begin{class}[text width=5cm]{Pressured}{34,20}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\attribute{viscosity}
\attribute{density}
\end{class}
\composition{Pressure}{}{1}{Pressured}
\begin{class}[text width=5cm]{Penalizationd}{34,23}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\attribute{obstacle}
\attribute{lambda}
\end{class}
\composition{Penalization}{}{1}{Penalizationd}
\begin{class}[text width=5cm]{Poissond}{34,26}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\end{class}
\composition{Poisson}{}{1}{Poissond}
\begin{class}[text width=5cm]{Strechingd}{34,29}
%\inherit{Operator}
\attribute{velocity}
\attribute{vorticity}
\end{class}
\composition{Streching}{}{1}{Strechingd}
\begin{class}[text width=5cm]{Velocityd}{34,31}
%\inherit{Operator}
\attribute{velocity}
\end{class}
\composition{Velocity}{}{1}{Velocityd}
\draw [umlcd style inherit line] (DiscreteOperator) |- (DifferentialOperator.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |- (AdvectionParticle.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |- (ScalesAdvectionParticle.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |- (Diffusiond.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |- (Pressured.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |- (Penalizationd.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |- (Poissond.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |- (Strechingd.south west);
\draw [umlcd style inherit line] (DiscreteOperator) |-
(Velocityd.south west);
\node[umlcd style, draw, inner sep=0.5cm, minimum width=12cm,
minimum height=6cm] at (45,22.5) (monitoringPackage) {};
\node[umlcd style, draw, outer ysep=-0.5, anchor=south west] (monitoringPackageName) at
(monitoringPackage.north west) {monitorings};
\begin{interface}[text width=3cm]{Monitoring}{45,25}
%\inherit{Operator}
\attribute{frequency}
\operation{\_\_call\_\_(iteration)}
\end{interface}
\draw [umlcd style inherit line] (Operator) |- (34,34.25) -| (Monitoring);
\begin{class}[text width=3cm, fill=userVisible!30]{Printer}{45,22}
\inherit{Monitoring}
\attribute{filePrefix}
\attribute{data}
\attribute{mode}
\end{class}
\begin{class}[text width=3cm, fill=userVisible!30]{Force}{41,22}
\inherit{Monitoring}
\attribute{printer}
\attribute{velocity}
\attribute{obstacle}
\end{class}
\composition{Force}{}{1}{Printer}
\begin{class}[text width=3cm, fill=userVisible!30]{Energy}{49,22}
\inherit{Monitoring}
\attribute{printer}
\attribute{velocity}
\end{class}
\composition{Energy}{}{1}{Printer}
\end{package}
\begin{package}{problem}
\begin{class}[text width=8cm]{Problem}{1,15}
\attribute{operators : list of Operator}
\attribute{timingInfo}
\attribute{domain}
\operation{setUp()}
\operation{solve()}
\end{class}
\composition{Problem}{}{1..n}{Operator}
\composition{Topology}{}{1..n}{Problem}
\begin{class}[text width=5cm, fill=userVisible!30]{TransportProblem}{6,19}
%\inherit{Problem}
\attribute{advectionOp}
\attribute{velocityOp}
\attribute{velocity}
\attribute{scalar}
\attribute{box}
\end{class}
\draw [umlcd style inherit line] (Problem) |- (TransportProblem);
\begin{class}[text width=5cm, fill=userVisible!30]{NSProblem}{6,23}
%\inherit{Problem}
\attribute{advectionOp}
\attribute{diffusionOp}
\attribute{poissonOp}
\attribute{strechingOp}
\attribute{velocity}
\attribute{vorticity}
\attribute{box}
\end{class}
\draw [umlcd style inherit line] (Problem) |- (NSProblem);
\begin{class}[text width=5cm, fill=userVisible!30]{NSObstacleProblem}{15,23}
\inherit{NSProblem}
\attribute{obstacle}
\end{class}
%\draw [umlcd style inherit line] (NSProblem) |- (NSObstacleProblem);
\begin{class}[text width=5cm, fill=userVisible!30]{NSMultiphaseProblem}{15,20}
\inherit{NSProblem}
\attribute{Pressure}
\attribute{density}
\end{class}
%\draw [umlcd style inherit line] (NSProblem) |- (NSMultiphaseProblem);
\end{package}
\begin{package}{numerics}
\node[umlcd style, draw, inner sep=0.5cm, minimum width=8cm,
minimum height=8cm] at (45,-5.5) (integratorsPackage) {};
\node[umlcd style, draw, outer ysep=-0.5, anchor=south west] (integratorsPackageName) at
(integratorsPackage.north west) {integrators};
\node[umlcd style, draw, inner sep=0.5cm, minimum width=9cm,
minimum height=5cm] at (43.5,-13) (remeshPackage) {};
\node[umlcd style, draw, outer ysep=-0.5, anchor=south west] (remeshPackageName) at
(remeshPackage.north west) {remesh};
\begin{interface}[text width=3cm]{NumMethod}{39,-5}
\operation{\_\_call\_\_}
\end{interface}
\composition{DiscreteOperator}{}{1..n}{NumMethod}
\begin{interface}[text width=3cm]{ODESolver}{43,-4}
\attribute{$y'(t_n)$}
\attribute{$x(t_n)$}
\inherit{NumMethod}
\end{interface}
\draw [umlcd style inherit line] (NumMethod) -- (ODESolver);
\begin{class}[text width=3cm]{Euler}{47,-2}
\inherit{ODESolver}
\end{class}
\begin{class}[text width=3cm]{RK2}{47,-4}
\inherit{ODESolver}
\end{class}
\begin{class}[text width=3cm]{RK3}{47,-6}
\inherit{ODESolver}
\end{class}
\begin{class}[text width=3cm]{RK4}{47,-8}
\inherit{ODESolver}
\end{class}
\begin{class}[text width=3cm]{Linear}{38,-1}
\inherit{NumMethod}
\end{class}
\begin{class}[text width=3cm]{Splitting}{35,-4}
\inherit{NumMethod}
\end{class}
\begin{interface}[text width=3cm]{Remeshing}{41,-11}
\inherit{NumMethod}
\attribute{$x_p(t_n)$}
\end{interface}
\draw [umlcd style inherit line] (NumMethod) -- (Remeshing);
\begin{class}[text width=3cm]{m4prime}{46,-12}
\inherit{Remeshing}
\end{class}
\begin{class}[text width=3cm]{m6prime}{45,-13.5}
\inherit{Remeshing}
\end{class}
\begin{class}[text width=3cm]{m8prime}{41,-14}
\inherit{Remeshing}
\end{class}
\begin{class}[text width=3cm]{Strech}{35,-7}
\inherit{NumMethod}
\end{class}
\begin{class}[text width=4cm]{KernelListLauncher}{36,-9}
\inherit{NumMethod}
\end{class}
\begin{class}[text width=4cm]{KernelLauncher}{36,-11}
\inherit{KernelListLauncher}
\end{class}
\end{package}
\begin{package}{gpu}
\begin{class}[text width=3cm]{Benchmark}{1,-11}
\attribute{kernels}
\operation{launch}
\end{class}
\begin{object}[text width=3cm]{tools}{5,-11}
\attribute{file : tools}
\attribute{cl}
\attribute{opencl\_environment}
\attribute{kernel\_src}
\end{object}
\draw [color=\umldrawcolor] (tools) -- (Benchmark);
\draw [color=\umldrawcolor] (tools) -- (GPUDiscreteField);
\draw [color=\umldrawcolor] (tools) |- (28,-16) -| (32,-13) |- (KernelListLauncher);
\draw [color=\umldrawcolor] (tools) |- (28,-16) -| (32,-13) |- (KernelLauncher);
\draw [color=\umldrawcolor] (tools) |- (28,-16) -| (50,-13) |- (GPUAdvectionParticle1k);
\draw [color=\umldrawcolor] (tools) |- (28,-16) -| (50,-13) |- (GPUAdvectionParticle2k);
\end{package}
% \pgfpathsvg{M 0 0 l 20 0 0 20 -20 0 q 10 0 10 10
% t 10 10 10 10 h -50 z}
% \pgfusepath{stroke}
\end{tikzpicture}}%
\caption{Class Diagram}
\end{figure}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "ParmesCD"
%%% End:
\section{Advection et remaillage}
\label{sec:advect-et-rema}
L'advection est implémentée de trois manières différentes dans ParMeS. En fortran, à travers le module \texttt{scales2py}, en python et en OpenCL. Les détails de l'implémentation OpenCL sur GPU sont donnés en section~\ref{sec:GPUdetails}.
Les versions fortran et OpenCL permetent de réaliser une advection multi-échelle. La vitesse étant connue sur une grille plus grossière que les quantités advectées. La vitesse de chaque particule est interpolée à partir de la grille grossière.
\subsection{Formules de remaillage $\Lambda_{n,k}$}
\label{sec:remaillage}
Les formules de remaillage de la forme $\Lambda_{n,k}$ sont des fonctions polynomiales par morceaux, symétriques, de support $]{ -n/2-1, n/2-1 }[$, de régularité $C^k$ qui conservent les $n$ premiers moments. La formule est donnée par morceaux sur les intervalles entiers par un polynôme $p_i$ de degré $2k+1$, soit $n+2$ polynômes. Les différentes formules générées sont résumées dans le tableau~\ref{tab:formulesRemaillage}.
Les contraintes sont les suivantes:
\begin{itemize}
\item Symétrie (seulement $n/2 + 1$ polynômes à chercher)
\begin{equation}
\label{eq:4}
\Lambda_{n,k} (x) = \Lambda_{n,k} (-x)
\end{equation}
\begin{equation}
\label{eq:7}
\Lambda_{n,k} =
\begin{cases}
p_i(x) & \text{ si } |x| \in [n/2-i ; n/2+1-i [\\
0 & \text{ sinon}
\end{cases}
\end{equation}
\begin{equation}
\label{eq:6}
p_i(x) = \sum_{j=0}^{2k+1}c_{i,j}x^j,\quad i=0,\dots , n/2 + 1
\end{equation}
\item Raccords $C^k$ entre les polynômes
\item Conservation des moments discrets:
\begin{equation}
\label{eq:2}
\sum_{l=-N}^N l^q\Lambda_{n,k}(s-l) = s^q,\quad 0<s<1, q=0\dots n
\end{equation}
\end{itemize}
Ainsi, par ces contraintes, on obtient un système d'équations dont les inconnues sont les coefficients $c_{i,k}$. Le nombre d'équation est bien supérieur au nombre d'inconnues.
Remarque 1: pour chaque formule obtenue, les moments continus sont conservés:
\begin{equation}
\label{eq:3}
\int_{-\infty}^\infty x^q\Lambda_{n,k}(x) \mathrm{d}x =
\begin{cases}
1 & \text{si } q = 0\\
0 & \text{sinon }
\end{cases}
\end{equation}
Remarque 2: on obtient une formule exacte aux points de coordonnées entières:
\begin{equation}
\label{eq:5}
\Lambda_{n,k} (i) = \begin{cases}
1 & \text{ si } i=0\\
0 & \text{sinon}
\end{cases},\quad i \in \lbrace -n/2+1,\dots, n/2-1 \rbrace
\end{equation}
\begin{equation}
\label{eq:lambda21}
M'_4 = \Lambda_{2,1}(x) =
\begin{cases}
1-{5 \over 2}|x|^2+{3 \over 2}|x|^3 & 0\leqslant |x|<1\\
2-4|x|+{5 \over 2}|x|^2-{1 \over 2}|x|^3 & 1\leqslant |x|<2\\
0 & |x| \geqslant 2
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda22}
\Lambda_{2,2}(x) =
\begin{cases}
1-|x|^2-{9 \over 2}|x|^3+{15 \over 2}|x|^4-3|x|^5& 0\leqslant |x|<1\\
-4+18|x|-29|x|^2+{43 \over 2}|x|^3-{15 \over 2}|x|^4+|x|^5& 1\leqslant |x|<2\\
0 & |x| \geqslant 2
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda23}
\Lambda_{2,3}(x) =
\begin{cases}
1-x^2-15x^4+({75 \over 2})x^5-({63 \over 2})x^6+9x^7 & 0\leqslant |x|<1\\
32-168x+376x^2-460x^3+330x^4-({277 \over 2})x^5+({63 \over 2})x^6-3x^7 & 1\leqslant |x|<2\\
0 & |x| \geqslant 2
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda24}
\Lambda_{2,4}(x) =
\begin{cases}
1-x^2-({105 \over 2})x^5+({357 \over 2})x^6-231x^7+135x^8-30x^9& 0\leqslant |x|<1\\
-208+1432x-4304x^2+7420x^3-8085x^4+({11543 \over 2})x^5& \\ \hspace{3cm}-({5397 \over 2})x^6+797x^7-135x^8+10x^9& 1\leqslant |x|<2\\
0 & |x| \geqslant 2
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda42}
M'_6 = \Lambda_{4,2}(x) =
\begin{cases}
1-{5 \over 4}|x|^2-{35 \over 12}|x|^3+{21 \over 4}|x|^4-{25 \over 12}|x|^5 & 0\leqslant |x|<1\\
-4+{75 \over 4}|x|-{245 \over 8}|x|^2+{545 \over 24}|x|^3-{63 \over 8}|x|^4+{25 \over 24}|x|^5 & 1\leqslant |x|<2\\
18-{153 \over 4}|x|+{255 \over 8}|x|^2-{313 \over 24}|x|^3+{21 \over 8}|x|^4-{5 \over 24}|x|^5 & 2\leqslant |x|<3\\
0 & |x| \geqslant 3
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda43}
\Lambda_{4,3}(x) =
\begin{cases}
1-{5 \over 4}|x|^2-{28 \over 3}|x|^4+{145 \over 6}|x|^5-{245 \over 12}|x|^6+{35 \over 6}|x|^7 & 0\leqslant |x|<1\\
31-{1945 \over 12}|x|+{2905 \over 8}|x|^2-{5345 \over 12}|x|^3+{1281 \over 4}|x|^4-{1615 \over 12}|x|^5& \\ \hspace{6cm}+{245 \over 8}|x|^6-{35 \over 12}|x|^7 & 1\leqslant |x|<2\\
-297+{3501 \over 4}|x|-{8775 \over 8}|x|^2+{3029 \over 4}|x|^3-{3731 \over 12}|x|^4+{911 \over 12}|x|^5& \\ \hspace{6cm}-{245 \over 24}|x|^6+{7 \over 12}|x|^7 & 2\leqslant |x|<3\\
0 & |x| \geqslant 3
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda44}
\Lambda_{4,4}(x) =
\begin{cases}
1-{5 \over 4}|x|^2+{1 \over 4}|x|^4-{100 \over 3}|x|^5+{455 \over 4}|x|^6-{295 \over 2}|x|^7+{345 \over 4}|x|^8-{115 \over 6}|x|^9 & 0\leqslant |x|<1\\
-199+{5485 \over 4}|x|-{32975 \over 8}|x|^2+{28425 \over 4}|x|^3-{61953 \over 8}|x|^4+{33175 \over 6}|x|^5& \\ \hspace{4cm} -{20685 \over 8}|x|^6+{3055 \over 4}|x|^7-{1035 \over 8}|x|^8+{115 \over 12}|x|^9 & 1\leqslant |x|<2\\
5913-{89235 \over 4}|x|+{297585 \over 8}|x|^2-{143895 \over 4}|x|^3+{177871 \over 8}|x|^4-{54641 \over 6}|x|^5& \\ \hspace{4cm} +{19775 \over 8}|x|^6-{1715 \over 4}|x|^7+{345 \over 8}|x|^8-{23 \over 12}|x|^9 & 2\leqslant |x|<3\\
0 & |x| \geqslant 3
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda63}
\Lambda_{6,3}(x) =
\begin{cases}
1-{49 \over 36}|x|^2-{959 \over 144}|x|^4+{2569 \over 144}|x|^5-{727 \over 48}|x|^6+{623 \over 144}|x|^7& 0\leqslant |x|<1\\
{138\over 5}-{8617 \over 60}|x|+{12873 \over 40}|x|^2-{791 \over 2}|x|^3+{4557 \over 16}|x|^4-{9583 \over 80}|x|^5& \\ \hspace{7cm} +{2181 \over 80}|x|^6-{623 \over 240}|x|^7& 1\leqslant |x|<2\\
-440+{25949 \over 20}|x|-{117131 \over 72}|x|^2+{2247 \over 2}|x|^3-{66437 \over 144}|x|^4+{81109 \over 720}|x|^5& \\ \hspace{7cm} -{727 \over 48}|x|^6+{623 \over 720}|x|^7& 2\leqslant |x|<3\\
{3632\over 5}-{7456 \over 5}|x|+{58786 \over 45}|x|^2-633|x|^3+{26383 \over 144}|x|^4-{22807 \over 720}|x|^5& \\ \hspace{7cm} +{727 \over 240}|x|^6-{89 \over 720}|x|^7& 3\leqslant |x|<4\\
0 & |x| \geqslant 4
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda64}
\Lambda_{6,4}(x) =
\begin{cases}
1-{49 \over 36}|x|^2+{7 \over 18}|x|^4-{3521 \over 144}|x|^5+{12029 \over 144}|x|^6-{15617 \over 144}|x|^7+{1015 \over 16}|x|^8-{1015 \over 72}|x|^9& 0\leqslant |x|<1\\
-{877\over5}+{72583 \over 60}|x|-{145467 \over 40}|x|^2+{18809 \over 3}|x|^3-{54663 \over 8}|x|^4+{390327 \over 80}|x|^5& \\ \hspace{4cm} -{182549 \over 80}|x|^6+{161777 \over 240}|x|^7-{1827 \over 16}|x|^8+{203 \over 24}|x|^9& 1\leqslant |x|<2\\
8695-{656131 \over 20}|x|+{3938809 \over 72}|x|^2-{158725 \over 3}|x|^3+{2354569 \over 72}|x|^4-{9644621 \over 720}|x|^5& \\ \hspace{4cm} +{523589 \over 144}|x|^6-{454097 \over 720}|x|^7+{1015 \over 16}|x|^8-{203 \over 72}|x|^9& 2\leqslant |x|<3\\
-{142528\over5}+{375344 \over 5}|x|-{3942344 \over 45}|x|^2+{178394 \over 3}|x|^3-{931315 \over 36}|x|^4+{5385983 \over 720}|x|^5& \\ \hspace{4cm} -{1035149 \over 720}|x|^6+{127511 \over 720}|x|^7-{203 \over 16}|x|^8+{29 \over 72}|x|^9& 3\leqslant |x|<4\\
0 & |x| \geqslant 4
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda65}
\Lambda_{6,5}(x) =
\begin{cases}
1-{49 \over 36}|x|^2+{7 \over 18}|x|^4-{701 \over 8}|x|^6+{54803 \over 144}|x|^7-{32165 \over 48}|x|^8+{9555 \over 16}|x|^9-{38731 \over 144}|x|^{10}+{3521 \over 72}|x|^{11}& 0\leqslant |x|<1\\
1233-{617533 \over 60}|x|+{1544613 \over 40}|x|^2-{515179 \over 6}|x|^3+{502579 \over 4}|x|^4-{3809911 \over 30}|x|^5& \\ \hspace{2.5cm} +{3618099 \over 40}|x|^6-{10894163 \over 240}|x|^7+{251685 \over 16}|x|^8-{172123 \over 48}|x|^9+{38731 \over 80}|x|^{10}-{3521 \over 120}|x|^{11}& 1\leqslant |x|<2\\
-181439+{16709441 \over 20}|x|-{125352311 \over 72}|x|^2+{13002493 \over 6}|x|^3-{64445353 \over 36}|x|^4+{30912301 \over 30}|x|^5& \\ \hspace{2.5cm}-{3373567 \over 8}|x|^6+{88345523 \over 720}|x|^7-{1194095 \over 48}|x|^8+{160657 \over 48}|x|^9-{38731 \over 144}|x|^{10}+{3521 \over 360}|x|^{11}& 2\leqslant |x|<3\\
1188352-{19108864 \over 5}|x|+{250837216 \over 45}|x|^2-{14600752 \over 3}|x|^3+{25437902 \over 9}|x|^4-{17195278 \over 15}|x|^5& \\ \hspace{2.5cm}+{13253241 \over 40}|x|^6-{49136309 \over 720}|x|^7+{471205 \over 48}|x|^8-{45083 \over 48}|x|^9+{38731 \over 720}|x|^{10}-{503 \over 360}|x|^{11}& 3\leqslant |x|<4\\
0 & |x| \geqslant 4
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda66}
\Lambda_{6,6}(x) =
\begin{cases}
1-{49 \over 36}|x|^2+{7 \over 18}|x|^4-{1 \over 36}|x|^6-{46109 \over 144}|x|^7+{81361 \over 48}|x|^8-{544705 \over 144}|x|^9+{655039 \over 144}|x|^{10}& \\ \hspace{9cm} -{223531 \over 72}|x|^{11}+{81991 \over 72}|x|^{12}-{6307 \over 36}|x|^{13} & 0\leqslant |x|<1\\
-{44291 \over 5}+{1745121 \over 20}|x|-{15711339 \over 40}|x|^2+{32087377 \over 30}|x|^3-{7860503 \over 4}|x|^4+{38576524 \over 15}|x|^5& \\ \hspace{2.5cm} -{24659323 \over 10}|x|^6+{84181657 \over 48}|x|^7-{74009313 \over 80}|x|^8+{17159513 \over 48}|x|^9-{7870247 \over 80}|x|^{10}& \\ \hspace{9cm} +{438263 \over 24}|x|^{11}-{81991 \over 40}|x|^{12}+{6307 \over 60}|x|^{13}& 1\leqslant |x|<2\\
3905497-{424679647 \over 20}|x|+{3822627865 \over 72}|x|^2-{2424839767 \over 30}|x|^3+{3009271097 \over 36}|x|^4-{930168127 \over 15}|x|^5& \\ \hspace{2.5cm} +{305535494 \over 9}|x|^6-{9998313437 \over 720}|x|^7+{203720335 \over 48}|x|^8-{137843153 \over 144}|x|^9+{22300663 \over 144}|x|^{10}& \\ \hspace{9cm} -{6126883 \over 360}|x|^{11}+{81991 \over 72}|x|^{12}-{6307 \over 180}|x|^{13}& 2\leqslant |x|<3\\
-{255622144\over 5}+{971097344 \over 5}|x|-{15295867328 \over 45}|x|^2+{5442932656 \over 15}|x|^3-{2372571796 \over 9}|x|^4+{2064517469 \over 15}|x|^5& \\ \hspace{2.5cm} -{9563054381 \over 180}|x|^6+{2210666335 \over 144}|x|^7-{796980541 \over 240}|x|^8+{76474979 \over 144}|x|^9-{43946287 \over 720}|x|^{10}& \\ \hspace{9cm} +{343721 \over 72}|x|^{11}-{81991 \over 360}|x|^{12}+{901 \over 180}|x|^{13}& 3\leqslant |x|<4\\
0 & |x| \geqslant 4
\end{cases}
\end{equation}
\begin{equation}
\label{eq:lambda84}
\Lambda_{8,4}(x) =
\begin{cases}
1-{205 \over 144}x^2+{91 \over 192}x^4-{6181 \over 320}x^5+{6337 \over 96}x^6-{2745 \over 32}x^7+{28909 \over 576}x^8-{3569 \over 320}x^9& 0\leqslant |x|<1\\
-154+{12757 \over 12}x-{230123 \over 72}x^2+{264481 \over 48}x^3-{576499 \over 96}x^4+{686147 \over 160}x^5& \\ \hspace{6cm}-{96277 \over 48}x^6+{14221 \over 24}x^7-{28909 \over 288}x^8+{3569 \over 480}x^9& 1\leqslant |x|<2\\
{68776\over7}-{1038011 \over 28}x+{31157515 \over 504}x^2-{956669 \over 16}x^3+{3548009 \over 96}x^4-{2422263 \over 160}x^5& \\ \hspace{6cm}+{197255 \over 48}x^6-{19959 \over 28}x^7+{144545 \over 2016}x^8-{3569 \over 1120}x^9& 2\leqslant |x|<3\\
-56375+{8314091 \over 56}x-{49901303 \over 288}x^2+{3763529 \over 32}x^3-{19648027 \over 384}x^4+{9469163 \over 640}x^5& \\ \hspace{6cm}-{545977 \over 192}x^6+{156927 \over 448}x^7-{28909 \over 1152}x^8+{3569 \over 4480}x^9& 3\leqslant |x|<4\\
{439375\over7}-{64188125 \over 504}x+{231125375 \over 2016}x^2-{17306975 \over 288}x^3+{7761805 \over 384}x^4-{2895587 \over 640}x^5& \\ \hspace{6cm}+{129391 \over 192}x^6-{259715 \over 4032}x^7+{28909 \over 8064}x^8-{3569 \over 40320}x^9& 4\leqslant |x|<5\\
0 & |x| \geqslant 5
\end{cases}
\end{equation}
\begin{equation}
\label{eq:m8prime}
M'_8(x) =
\begin{cases}
{5 \over 48}x^7-{11 \over 32}x^6+{7 \over 8}x^4-{35 \over 24}x^2+{151 \over 168} & 0\leqslant |x|<1\\
{103 \over 112}-{7 \over 30}x-{7 \over 16}x^2-{7 \over 3}x^3+{63 \over 16}x^4-{7 \over 3}x^5+{99 \over 160}x^6-{1 \over 16}x^7 & 1\leqslant |x|<2\\
-{139 \over 336}+{217 \over 30}x-{805 \over 48}x^2+{49 \over 3}x^3-{133 \over 16}x^4+{7 \over 3}x^5-{11 \over 32}x^6+{1 \over 48}x^7 & 2\leqslant |x|<3\\
{128 \over 21}-{256 \over 15}x+{56 \over 3}x^2-{32 \over 3}x^3+{7 \over 2}x^4-{2 \over 3}x^5+{11 \over 160}x^6-{1 \over 336}x^7& 3\leqslant |x|<4\\
0 & |x| \geqslant 4
\end{cases}
\end{equation}
\paragraph{Résumé des formules disponibles}
\begin{table}[h]\centering
\begin{tabular}{@{}lccccccccc@{}} \toprule
& & Moments & Régularité & Nb points & Degré & Support & \multicolumn{3}{c}{Implémentation} \\
& & & & & & & Fortran & Python & OpenCL \\\midrule
$\Lambda_{2,1}=M'_4$ &\eqref{eq:lambda21} & 2 & $C^1$ & 4 & 3 & $[-2;2]$ & \checkmark&\checkmark & \checkmark \\
$\Lambda_{2,2}$ &\eqref{eq:lambda22} & 2 & $C^2$ & 4 & 5 & $[-2;2]$ & - &\checkmark & \checkmark\\
$\Lambda_{2,3}$ &\eqref{eq:lambda23} & 2 & $C^3$ & 4 & 7 & $[-2;2]$ &- & \checkmark&\checkmark \\
$\Lambda_{2,4}$ &\eqref{eq:lambda24} & 2 & $C^4$ & 4 & 9 & $[-2;2]$ &- & \checkmark& \checkmark\\\midrule
$\Lambda_{4,2} = M'_6$ &\eqref{eq:lambda42} & 4 & $C^2$ & 6 & 5 & $[-3;3]$ &\checkmark & \checkmark&\checkmark\\
$\Lambda_{4,3}$ &\eqref{eq:lambda43} & 4 & $C^3$ & 6 & 7 & $[-3;3]$ & -& \checkmark&\checkmark\\
$\Lambda_{4,4}$ &\eqref{eq:lambda44} & 4 & $C^4$ & 6 & 9 & $[-3;3]$ & \checkmark &\checkmark & \checkmark\\\midrule
$\Lambda_{6,3}$ &\eqref{eq:lambda63} & 6 & $C^3$ & 8 & 7 & $[-4;4]$ &- & \checkmark&\checkmark\\
$\Lambda_{6,4}$ &\eqref{eq:lambda64} & 6 & $C^4$ & 8 & 9 & $[-4;4]$ & \checkmark &\checkmark &\checkmark\\
$\Lambda_{6,5}$ &\eqref{eq:lambda65} & 6 & $C^5$ & 8 & 11 & $[-4;4]$ & -& \checkmark&\checkmark\\
$\Lambda_{6,6}$ &\eqref{eq:lambda66} & 6 & $C^6$ & 8 & 13 & $[-4;4]$ &\checkmark & \checkmark&\checkmark \\\midrule
$\Lambda_{8,4}$ &\eqref{eq:lambda84} & 8 & $C^4$ & 10 & 9 & $[-5;5]$ &\checkmark &\checkmark & \checkmark \\\midrule
$M'_8$ & \eqref{eq:m8prime} & & $C^4$ & 8 & 7 & $[-4;4]$ &\checkmark & \checkmark&\checkmark \\ \bottomrule
\end{tabular}
\caption{Formules de remaillage disponibles.}
\label{tab:formulesRemaillage}
\end{table}
......@@ -17,7 +17,7 @@
\usepackage{cancel}
\usepackage{xcolor}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2.5cm]{geometry}
\overfullrule 5pt
\overfullrule 5pt
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2.5cm]{geometry}
\overfullrule 5pt %Pour d\'esigner les listes couples d'un *full carre noir la ou l on sort
......@@ -41,7 +41,7 @@
\DeclarePairedDelimiter\abs{\lvert}{\rvert}%
\DeclarePairedDelimiter\norm{\lVert}{\rVert}%
% Swap the definition of \abs* and \norm*, so that \abs
% and \norm resizes the size of the brackets, and the
% and \norm resizes the size of the brackets, and the
% starred version does not.
\makeatletter
\let\oldabs\abs
......@@ -56,7 +56,7 @@
\begin{document}
\maketitle
\definecolor{codebg}{rgb}{0.95,1.0,0.97}
\definecolor{codebg}{rgb}{0.95,1.0,0.97}
\part{Introduction}
......@@ -69,12 +69,10 @@
%\input{monitors}
\section{Redistribute operators}
\input{advection}
\end{document}
%%% Local Variables:
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
%%% End:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment