Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
NaluEnv.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 Sandia Corporation. */
3 /* This software is released under the license detailed */
4 /* in the file, LICENSE, which is located in the top-level Nalu */
5 /* directory structure */
6 /*------------------------------------------------------------------------*/
7 
8 
9 #ifndef NaluEnv_h
10 #define NaluEnv_h
11 
12 #include <mpi.h>
13 #include <fstream>
14 #include <streambuf>
15 
16 namespace sierra{
17 namespace nalu{
18 
19  class NaluEmptyStreamBuffer : public std::filebuf {
20  public:
21  int overflow(int c) {return c;}
22  };
23 
24 class NaluEnv
25 {
26  public:
27 
28  NaluEnv();
29  ~NaluEnv();
30 
31  static NaluEnv &self();
32 
34  int pSize_;
35  int pRank_;
36  std::streambuf *stdoutStream_;
37  std::ostream *naluLogStream_;
38  std::ostream *naluParallelStream_;
40 
42  std::filebuf naluStreamBuffer_;
44 
45  std::ostream & naluOutputP0();
46  std::ostream & naluOutput();
47 
48  MPI_Comm parallel_comm();
49  int parallel_size();
50  int parallel_rank();
51  void set_log_file_stream(std::string naluLogName, bool pprint = false);
52  void close_log_file_stream();
53  double nalu_time();
54 };
55 
56 } // namespace nalu
57 } // namespace Sierra
58 
59 #endif
int pRank_
Definition: NaluEnv.h:35
Definition: ABLForcingAlgorithm.C:26
std::ostream * naluLogStream_
Definition: NaluEnv.h:37
NaluEmptyStreamBuffer naluEmptyStreamBuffer_
Definition: NaluEnv.h:41
std::filebuf naluParallelStreamBuffer_
Definition: NaluEnv.h:43
Definition: NaluEnv.h:19
std::filebuf naluStreamBuffer_
Definition: NaluEnv.h:42
Definition: NaluEnv.h:24
int pSize_
Definition: NaluEnv.h:34
int overflow(int c)
Definition: NaluEnv.h:21
MPI_Comm parallelCommunicator_
Definition: NaluEnv.h:33
std::ostream * naluParallelStream_
Definition: NaluEnv.h:38
bool parallelLog_
Definition: NaluEnv.h:39
std::streambuf * stdoutStream_
Definition: NaluEnv.h:36