-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathgraphical_overview.tex
104 lines (92 loc) · 6.23 KB
/
graphical_overview.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
% !TEX root = main.tex
% Core: Kokkos, Kokkos Kernels, Teuchos, Tpetra, Thyra (5)
% Linear Solvers and Preconditioners: Belos, Ifpack2, FROSch, MueLu, ShyLu and Amesos2, Teko, Anasazi, Stratimikos (8)
% Nonlinear Solvers and Analysis Tools: NOX & LOCA, ROL, Sacado, Stokhos, Piro (5)
% Discretization Tools: Intrepid2, Phalanx, Tempus, Panzer, Comparde (5)
% Framework: Build and Test Infrastructure, Documentation Infrastructure, PyTrilinos2 (3)
\begin{tikzpicture}
\definecolor{colTum}{rgb}{0.0,0.396,0.741} % TUM blue
\definecolor{colUniBwOr}{rgb}{0.929,0.431,0.0} % Unibw Orange
\definecolor{colUniBwGr}{RGB}{113,112,114} % Unibw Gray
\definecolor{myDarkGreen}{rgb}{0,0.6,0}
\definecolor{myPurple}{RGB}{125,0,255}
\definecolor{myDarkRed}{RGB}{210,0,0}
\definecolor{myYellow}{RGB}{255,202,5}
\definecolor{myPetrol}{RGB}{0,172,164}
\def\ri{4}
\def\rm{4.5}
\def\ro{5}
\def\areah{0.75}
\def\packagew{3.0}
\def\packageh{0.6}
\def\dist{0.1}
\def\colCore{myDarkRed}
\def\colNonlinear{myPetrol}
\def\colDisc{myDarkGreen}
\def\colLinear{colTum}
\def\colFrame{colUniBwOr}
\node at (0,0) {\includegraphics[width=4cm]{logo_trilinos.jpeg}};
\fill[even odd rule,gray!20] circle (\ri) circle (\ro);
\begin{scope}[shift={(84:\rm-0.6)}]
\begin{scope}[shift={(-0.5*\packagew,-2.5*\packageh)}]
% Core: Kokkos, Kokkos Kernels, Teuchos, Tpetra, Thyra (5)
\draw [fill=\colCore!20] (-\dist-\areah,-\dist) rectangle (\packagew+\dist, 6*\packageh+6*\dist);
\node [rotate=90,align=center] at (-0.5*\dist-0.5*\areah,3*\dist+3*\packageh) {\textbf{Core}};
\draw [fill=\colCore!40] (0,0) rectangle (\packagew, \packageh) node [pos=0.5] {Zoltan2};
\draw [fill=\colCore!40] (0,\packageh+1*\dist) rectangle (\packagew, 2*\packageh+1*\dist) node [pos=0.5] {Thyra};
\draw [fill=\colCore!40] (0,2*\packageh+2*\dist) rectangle (\packagew, 3*\packageh+2*\dist) node [pos=0.5] {Tpetra};
\draw [fill=\colCore!40] (0,3*\packageh+3*\dist) rectangle (\packagew, 4*\packageh+3*\dist) node [pos=0.5] {Teuchos};
\draw [fill=\colCore!40,dashed] (0,4*\packageh+4*\dist) rectangle (\packagew, 5*\packageh+4*\dist) node [pos=0.5] {Kokkos Kernels};
\draw [fill=\colCore!40,dashed] (0,5*\packageh+5*\dist) rectangle (\packagew, 6*\packageh+5*\dist) node [pos=0.5] {Kokkos};
\end{scope}
\end{scope}
\begin{scope}[shift={(156:\rm+0.2)}]
\begin{scope}[shift={(-0.5*\packagew,-2.5*\packageh)}]
% Nonlinear Solvers and Analysis Tools: NOX & LOCA, ROL, Sacado, Stokhos, Piro (5)
\draw [fill=\colNonlinear!20] (-\dist-\areah,-\dist) rectangle (\packagew+\dist, 5*\packageh+5*\dist);
\node [rotate=90,align=center] at (-0.5*\dist-0.5*\areah,2*\dist+2.5*\packageh) {\textbf{Nonlinear Solvers}\\\textbf{and Analysis Tools}};
\draw [fill=\colNonlinear!40] (0,0) rectangle (\packagew, \packageh) node [pos=0.5] {Piro};
\draw [fill=\colNonlinear!40] (0,\packageh+1*\dist) rectangle (\packagew, 2*\packageh+1*\dist) node [pos=0.5] {Stokhos};
\draw [fill=\colNonlinear!40] (0,2*\packageh+2*\dist) rectangle (\packagew, 3*\packageh+2*\dist) node [pos=0.5] {Sacado};
\draw [fill=\colNonlinear!40] (0,3*\packageh+3*\dist) rectangle (\packagew, 4*\packageh+3*\dist) node [pos=0.5] {ROL};
\draw [fill=\colNonlinear!40] (0,4*\packageh+4*\dist) rectangle (\packagew, 5*\packageh+4*\dist) node [pos=0.5] {NOX \& LOCA};
\end{scope}
\end{scope}
\begin{scope}[shift={(218:\rm+0.6)}]
\begin{scope}[shift={(-0.5*\packagew,-2.5*\packageh)}]
% Discretization Tools: Intrepid2, Phalanx, Tempus, Panzer, Comparde (5)
\draw [fill=\colDisc!20] (-0.5*\dist-\dist-\areah,-\dist) rectangle (\packagew+\dist, 5*\packageh+5*\dist);
\node [rotate=90] at (-0.5*\areah,2*\dist+2.5*\packageh) {\textbf{Discretization Tools}};
\draw [fill=\colDisc!40,dashed] (0,0) rectangle (\packagew, \packageh) node [pos=0.5] {Compadre};
\draw [fill=\colDisc!40] (0,\packageh+1*\dist) rectangle (\packagew, 2*\packageh+1*\dist) node [pos=0.5] {Panzer};
\draw [fill=\colDisc!40] (0,2*\packageh+2*\dist) rectangle (\packagew, 3*\packageh+2*\dist) node [pos=0.5] {Tempus};
\draw [fill=\colDisc!40] (0,3*\packageh+3*\dist) rectangle (\packagew, 4*\packageh+3*\dist) node [pos=0.5] {Phalanx};
\draw [fill=\colDisc!40] (0,4*\packageh+4*\dist) rectangle (\packagew, 5*\packageh+4*\dist) node [pos=0.5] {Intrepid2};
\end{scope}
\end{scope}
\begin{scope}[shift={(0:\rm+0.5)}]
\begin{scope}[shift={(-0.5*\packagew,-4*\packageh)}]
% Linear Solvers and Preconditioners: Belos, Ifpack2, FROSch, MueLu, ShyLU and Amesos2, Teko, Anasazi, Stratimikos (8)
\draw [fill=\colLinear!20] (-\dist-\areah,-\dist) rectangle (\packagew+\dist, 8*\packageh+8*\dist);
\node [rotate=90] at (-0.5*\dist-0.5*\areah,3.5*\dist+4*\packageh) {\textbf{Linear Solvers and Preconditioners}};
\draw [fill=\colLinear!40] (0,0) rectangle (\packagew, \packageh) node [pos=0.5] {Stratimikos};
\draw [fill=\colLinear!40] (0,\packageh+1*\dist) rectangle (\packagew, 2*\packageh+1*\dist) node [pos=0.5] {Anasazi};
\draw [fill=\colLinear!40] (0,2*\packageh+2*\dist) rectangle (\packagew, 3*\packageh+2*\dist) node [pos=0.5] {Teko};
\draw [fill=\colLinear!40] (0,3*\packageh+3*\dist) rectangle (\packagew, 4*\packageh+3*\dist) node [pos=0.5] {ShyLU \& Amesos2};
\draw [fill=\colLinear!40] (0,4*\packageh+4*\dist) rectangle (\packagew, 5*\packageh+4*\dist) node [pos=0.5] {MueLu};
\draw [fill=\colLinear!40] (0,5*\packageh+5*\dist) rectangle (\packagew, 6*\packageh+5*\dist) node [pos=0.5] {FROSch};
\draw [fill=\colLinear!40] (0,6*\packageh+6*\dist) rectangle (\packagew, 7*\packageh+6*\dist) node [pos=0.5] {Ifpack2};
\draw [fill=\colLinear!40] (0,7*\packageh+7*\dist) rectangle (\packagew, 8*\packageh+7*\dist) node [pos=0.5] {Belos};
\end{scope}
\end{scope}
\begin{scope}[shift={(284:\rm+0.2)}]
\begin{scope}[shift={(-0.5*\packagew,-1.5*\packageh)}]
% Framework: Build and Test Infrastructure, Documentation Infrastructure, PyTrilinos2 (3)
\draw [fill=\colFrame!20] (-\dist-\areah,-\dist) rectangle (\packagew+\dist, 3*\packageh+3*\dist);
\node [rotate=90] at (-0.5*\dist-0.5*\areah,1*\dist+1.5*\packageh) {\textbf{Framework}};
\draw [fill=\colFrame!40] (0,0) rectangle (\packagew, \packageh) node [pos=0.5] {PyTrilinos2};
\draw [fill=\colFrame!40] (0,\packageh+1*\dist) rectangle (\packagew, 2*\packageh+1*\dist) node [pos=0.5] {Documentation};
\draw [fill=\colFrame!40] (0,2*\packageh+2*\dist) rectangle (\packagew, 3*\packageh+2*\dist) node [pos=0.5] {Building \& Testing};
\end{scope}
\end{scope}
\end{tikzpicture}