30 #ifndef __application_H
31 #define __application_H 1
33 #include <boost/optional.hpp>
34 #include <boost/format.hpp>
35 #include <boost/ptr_container/ptr_list.hpp>
37 #include <feel/feelcore/feel.hpp>
43 #include <boost/archive/binary_iarchive.hpp>
44 #include <boost/archive/binary_oarchive.hpp>
45 #include <boost/archive/text_iarchive.hpp>
46 #include <boost/archive/text_oarchive.hpp>
47 #include <boost/archive/xml_iarchive.hpp>
48 #include <boost/archive/xml_oarchive.hpp>
49 #include <boost/serialization/string.hpp>
51 #include <boost/mpi.hpp>
52 #if defined(FEELPP_HAS_MPI_H)
56 #if defined(FEELPP_HAS_TAU)
57 #include <Profile/Profiler.h>
63 namespace mpi = boost::mpi;
100 #if defined( FEELPP_HAS_MPI )
113 #if defined( FEELPP_HAS_MPI )
114 Application(
AboutData const& ad, po::options_description
const& od, MPI_Comm Comm = MPI_COMM_WORLD );
127 #if defined( FEELPP_HAS_MPI )
142 #if defined( FEELPP_HAS_MPI )
143 Application(
int argc,
char** argv,
AboutData const& ad, po::options_description
const& od, MPI_Comm Comm = MPI_COMM_WORLD );
186 po::variables_map
const&
vm()
const
208 return M_to_pass_further.size()+1;
221 return uint16_type( M_comm.size() );
229 return uint16_type( M_comm.rank() );
237 return mpi::environment::initialized();
248 return mpi::environment::initialized();
259 return mpi::environment::finalized();
273 #if defined( FEELPP_HAS_MPI )
274 return mpi::environment::processor_name();
277 return std::string(
"localhost" );
287 return M_simgets.begin();
293 return M_simgets.end();
299 return M_simgets.size();
308 return M_vm.count(
"verbose" );
320 void setName1( std::string
const& name1 );
325 void setName2( std::string
const& name2 );
330 void setH(
double h,
int precision = 4 );
349 #if defined( FEELPP_HAS_MPI )
350 static MPI_Comm COMM_WORLD;
351 #endif // FEELPP_HAS_MPI
394 virtual void run(
const double* X,
unsigned long P,
double* Y,
unsigned long N );
404 ALL = ERRORS | TIME | DATA | NUMBERS
410 void setStats( std::vector<std::string>
const& keys );
421 void printStats( std::ostream& out, std::vector<std::string>
const& keys,
size_type stats = ALL )
const;
446 void processGenericOptions();
455 void parseAndStoreOptions( po::command_line_parser parser,
bool extra_parser =
false );
465 void initMPI(
int,
char**, MPI_Comm );
473 po::options_description M_desc;
474 po::variables_map M_vm;
476 boost::optional<std::string> M_name1;
477 boost::optional<std::string> M_name2;
478 boost::optional<std::pair<double, int> > M_h;
479 boost::optional<int> M_dim;
481 std::vector<std::string> M_to_pass_further;
484 boost::shared_ptr<mpi::environment> M_env;
488 std::map<std::string,std::vector<ptree::ptree> > M_stats;
489 std::vector<std::string> M_keys;
Simulation Object.
Definition: simget.hpp:60
provides information about the Application
Definition: application.hpp:71
static bool initialized()
Definition: application.hpp:246
static bool finalized()
Definition: application.hpp:257
WorldComm & comm()
Definition: application.hpp:356
boost::ptr_list< Simget > simgets_type
Simget collection type.
Definition: application.hpp:81
void setLogs()
Definition: application.cpp:687
int unknownArgc() const
Definition: application.hpp:206
void add(Simget *simget)
Definition: application.cpp:877
std::string rootRepository() const
Definition: application.cpp:812
bool verbose() const
Definition: application.hpp:306
simget_iterator begin()
Definition: application.hpp:285
Application & changeRepository(boost::format)
Definition: application.cpp:818
uint16_type nProcess()
Definition: application.hpp:219
static std::string processorName()
Definition: application.hpp:271
Holds information needed by the "About" box and other classes.
Definition: about.hpp:173
void setName2(std::string const &name2)
Definition: application.cpp:665
simget_iterator end()
Definition: application.hpp:291
void setStats(std::vector< std::string > const &keys)
Definition: application.cpp:1232
po::options_description const & optionsDescription() const
Definition: application.hpp:175
void printStats(std::ostream &out, size_type stats=ALL) const
Definition: application.cpp:1237
void setH(double h, int precision=4)
Definition: application.cpp:671
std::string resultFileName() const
Definition: application.cpp:682
size_type nSimgets() const
Definition: application.hpp:297
char ** unknownArgv() const
Definition: application.cpp:636
po::variables_map const & vm() const
Definition: application.hpp:186
size_t size_type
Indices (starting from 0)
Definition: feelcore/feel.hpp:319
void setName1(std::string const &name1)
Definition: application.cpp:659
void barrier()
Definition: application.hpp:372
void doOptions(int argc, char **argv)
Definition: application.cpp:520
virtual void run()
Definition: application.cpp:947
void setDimension(int dim)
Definition: application.cpp:677
bool isMPIInitialized() const
Definition: application.hpp:235
WorldComm const & comm() const
Definition: application.hpp:364
AboutData const & about() const
Definition: application.hpp:198
uint16_type processId()
Definition: application.hpp:227
simgets_type::iterator simget_iterator
Simget iterator over the collection.
Definition: application.hpp:84