Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
applicationepetra.hpp
1 /* -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2 
3  This file is part of the Feel library
4 
5  Author(s): Christophe Prud'homme <christophe.prudhomme@feelpp.org>
6  Date: 2006-04-25
7 
8  Copyright (C) 2006, 2009 EPFL
9 
10  This library is free software; you can redistribute it and/or
11  modify it under the terms of the GNU Lesser General Public
12  License as published by the Free Software Foundation; either
13  version 3.0 of the License, or (at your option) any later version.
14 
15  This library is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public
21  License along with this library; if not, write to the Free Software
22  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 */
29 #ifndef __Application_H
30 #define __Application_H 1
31 
32 
33 
34 #if defined( FEELPP_HAS_TRILINOS_EPETRA )
35 #undef PACKAGE_BUGREPORT
36 #undef PACKAGE_NAME
37 #undef PACKAGE_STRING
38 #undef PACKAGE_TARNAME
39 #undef PACKAGE_VERSION
40 //#include <Epetra_Vector.h>
41 #if defined(FEELPP_HAS_MPI)
43 #include <Epetra_MpiComm.h>
44 #else
46 #include <Epetra_SerialComm.h>
47 #endif /* FEELPP_HAS_MPI */
48 #undef PACKAGE_BUGREPORT
49 #undef PACKAGE_NAME
50 #undef PACKAGE_STRING
51 #undef PACKAGE_TARNAME
52 #undef PACKAGE_VERSION
53 namespace Feel
54 {
63 class Application
64 #if defined(FEELPP_HAS_MPI)
65  : public Application
66 #else
67  : public Application
68 #endif
69 {
70 #if defined(FEELPP_HAS_MPI)
71  typedef Application super;
72 #else
73  typedef Application super;
74 #endif
75 
76 public:
77 
78 
82 
83 #if defined(FEELPP_HAS_MPI)
84  typedef Epetra_MpiComm comm_type;
85 #else
86  typedef Epetra_SerialComm comm_type;
87 #endif /* FEELPP_HAS_MPI */
88 
90 
94 
98 #if defined( FEELPP_HAS_MPI )
99  Application( int argc,
100  char** argv,
101  AboutData const& ad,
102  MPI_Comm Comm = MPI_COMM_WORLD );
103 #else
104  Application( int argc,
105  char** argv,
106  AboutData const& ad );
107 #endif
108 
111 #if defined( FEELPP_HAS_MPI )
112  Application( int argc,
113  char** argv,
114  AboutData const& ad,
115  po::options_description const& od,
116  MPI_Comm Comm = MPI_COMM_WORLD );
117 #else
118  Application( int argc,
119  char** argv,
120  AboutData const& ad,
121  po::options_description const& od );
122 #endif
123 
126  ~Application();
127 
129 
133 
134 
136 
140 
144  static comm_type const& comm()
145  {
146  return *_S_comm;
147  }
148 
150 
154 
155 
157 
161 
162 
164 
165 
166 
167 protected:
168 
169 private:
170  Application( Application const & );
171 
172 private:
173  static void init( MPI_Comm& comm );
174 
175  static bool _S_is_Initialized;
176 
177  static boost::shared_ptr<comm_type> _S_comm;
178 };
179 } // Feel
180 #endif /* FEELPP_HAS_TRILINOS_EPETRA */
181 
182 #endif /* __Application_H */

Generated on Sun Oct 20 2013 08:24:54 for Feel++ by doxygen 1.8.4