3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
dumuxmessage.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*****************************************************************************
4 * See the file COPYING for full copying permissions. *
5 * *
6 * This program is free software: you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation, either version 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
24#ifndef DUMUX_MESSAGE_HH
25#define DUMUX_MESSAGE_HH
26
27#include <iomanip>
28#include <iostream>
29#include <ctime>
30
31namespace Dumux {
32
38{
40 static const int nMessages_ = 11;
41
42public:
43
48 static void print(bool firstCall = false)
49 {
50 // initialize in case someone forgets to set first call
51 static int dice = 8;
52
53 if(firstCall)
54 {
55 // roll the dice to decide which start message will be displayed
56 std::srand(std::time(0));
57 dice = std::rand() % (nMessages_ + 1);
58 }
59
60 std::cout << std::endl;
61
62 switch (dice)
63 {
64 case 0:
65 if(firstCall)
66 std::cout << "Welcome aboard DuMuX airlines. Please fasten your seatbelts! "
67 << "Emergency exits are near the time integration." << std::endl;
68 else
69 std::cout << "We hope that you enjoyed simulating with us " << std::endl
70 << "and that you will choose us next time, too." << std::endl;
71 break;
72 case 1:
73 if(firstCall)
74 std::cout << "Let's get the cow off the ice." << std::endl;
75 else
76 std::cout << "DuMuX got the cow off the ice." << std::endl;
77 break;
78 case 2:
79 if(firstCall)
80 std::cout << "Science, my lad, is made up of mistakes, but they are "
81 << "mistakes which it is useful to make, because they lead little "
82 << "by little to the truth." << std::endl
83 << " - Jules Verne, A journey to the center of the earth" << std::endl;
84 else
85 std::cout << "[We see that] science is eminently perfectible, and that each theory has "
86 << "constantly to give way to a fresh one." << std::endl
87 << " - Jules Verne, Journey to the Center of the Earth" << std::endl;
88
89 break;
90 case 3:
91 if(firstCall)
92 std::cout << "Wherever he saw a hole he always wanted to know the depth of it. "
93 << "To him this was important." << std::endl
94 << " - Jules Verne, A journey to the center of the earth" << std::endl;
95 else
96 std::cout << "We may brave human laws, but we cannot resist natural ones." << std::endl
97 << " - Jules Verne, 20,000 Leagues Under the Sea" << std::endl;
98 break;
99 case 4:
100 if(firstCall)
101 std::cout << "Silence - to delight Bernd." << std::endl;
102 else
103 std::cout << std::endl << std::endl;
104 break;
105 case 5:
106 std::cout << "Don't panic... !" << std::endl;
107 break;
108 case 6:
109 if(firstCall)
110 std::cout << "You idiot! You signed the order to destroy Earth!" << std::endl
111 << " - Douglas Adams, HGttG" << std::endl;
112 else
113 std::cout << "Marvin: I've been talking to the main computer." << std::endl
114 << "Arthur: And?" << std::endl
115 << "Marvin: It hates me." << std::endl
116 << " - Douglas Adams, HGttG" << std::endl;
117 break;
118 case 7:
119 if(firstCall)
120 std::cout << "In the beginning the Universe was created. This has made a lot of "
121 << "people very angry and has been widely regarded as a bad move.!" << std::endl
122 << " - Douglas Adams, HGttG " << std::endl;
123 else
124 std::cout << "Forty-two. I checked it very thoroughly, and that quite definitely is the answer. I think "
125 << "the problem, to be quite honest with you, is that you\'ve never actually known what the question is." << std::endl
126 << " - Douglas Adams, HGttG " << std::endl;
127 break;
128 case 8:
129 std::cout << " ## @@@@ @ @ @ @" << std::endl;
130 std::cout << " ### # @ @ @@ @@ @ " << std::endl;
131 std::cout << " ## # @ @ @ @ @ @ @ @ @ @ @" << std::endl;
132 std::cout << " ## # @ @ @ @ @ @ @ @ " << std::endl;
133 std::cout << " # # @@@@ @@@ @ @ @@@ " << std::endl;
134 std::cout << " # # " << std::endl;
135 std::cout << " # # " << std::endl;
136 std::cout << " # ## %%% " << std::setw(8) << std::right << DUMUX_VERSION << std::endl;
137 std::cout << " # ### % % %% %% " << std::endl;
138 std::cout << "#### #%%% %% %%%%% %%%%%%%%%%%%%%%%%" << std::endl;
139 break;
140 case 9:
141 std::cout << "### # # # # " << std::endl;
142 std::cout << "# # # # ## ## # # # " << std::endl;
143 std::cout << "# # # # # # # # # # # " << std::endl;
144 std::cout << "### ## # # ## " << std::endl;
145 std::cout << " " << std::endl;
146 std::cout << "Dune for Multi-{ Phase, " << std::endl;
147 std::cout << " Component, " << std::endl;
148 std::cout << " Scale, " << std::endl;
149 std::cout << " Physics, " << std::endl;
150 std::cout << " ...} flow and transport in porous media" << std::endl;
151 break;
152 case 10:
153 if(firstCall)
154 std::cout << "Elliot Carver: Mr. Jones, are we ready to release our new software?" << std::endl
155 << "Jones: Yes, sir. As requested, it's full of bugs, which means people will be forced to upgrade for years." << std::endl
156 << " - James Bond, Tomorrow Never Dies" << std::endl;
157 else
158 {
159 std::cout << "Elliot Carver: Outstanding." << std::endl
160 << " - James Bond, Tomorrow Never Dies" << std::endl;
161 }
162 break;
163 case 11:
164 if(firstCall)
165 std::cout << "Chuck Norris has successfully compiled DuMuX." << std::endl;
166 else
167 std::cout << "Chuck Norris has compiled DuMuX even two times in a row!" << std::endl;
168 break;
169
170 // Note: If you add a case, you have to increase the number of messages (nMessages_ variable).
171
172 default: // silence to delight Bernd
173 return;
174 }
175 std::cout << std::endl;
176 }
177};
178
179} // end namespace Dumux
180
181#endif
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
DuMux start and end message.
Definition: dumuxmessage.hh:38
static void print(bool firstCall=false)
Selects random messages to write out at the start and end of a simulation run.
Definition: dumuxmessage.hh:48