Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
Pstream
mpi
mpiPstreamImpl.H
Go to the documentation of this file.
1
/*----------------------------------------------------------------------------*\
2
______ _ ____ __ __
3
| ____| _| |_ / __ \ /\ | \/ |
4
| |__ _ __ ___ ___ / \| | | | / \ | \ / |
5
| __| '__/ _ \/ _ ( (| |) ) | | |/ /\ \ | |\/| |
6
| | | | | __/ __/\_ _/| |__| / ____ \| | | |
7
|_| |_| \___|\___| |_| \____/_/ \_\_| |_|
8
9
FreeFOAM: The Cross-Platform CFD Toolkit
10
11
Copyright (C) 2008-2012 Michael Wild <themiwi@users.sf.net>
12
Gerber van der Graaf <gerber_graaf@users.sf.net>
13
--------------------------------------------------------------------------------
14
License
15
This file is part of FreeFOAM.
16
17
FreeFOAM is free software: you can redistribute it and/or modify it
18
under the terms of the GNU General Public License as published by the
19
Free Software Foundation, either version 3 of the License, or (at your
20
option) any later version.
21
22
FreeFOAM is distributed in the hope that it will be useful, but WITHOUT
23
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
24
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
25
for more details.
26
27
You should have received a copy of the GNU General Public License
28
along with FreeFOAM. If not, see <http://www.gnu.org/licenses/>.
29
30
Class
31
Foam::mpiPstreamImpl
32
33
Description
34
MPI implementation of the PstreamImpl abstract base class.
35
36
SourceFiles
37
mpiPstreamImpl.C
38
39
\*----------------------------------------------------------------------------*/
40
41
#ifndef mpiPstreamImpl_H
42
#define mpiPstreamImpl_H
43
44
#include <
OpenFOAM/PstreamImpl.H
>
45
46
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47
48
namespace
Foam
49
{
50
51
/*---------------------------------------------------------------------------*\
52
Class mpiPstreamImpl Declaration
53
\*---------------------------------------------------------------------------*/
54
55
class
mpiPstreamImpl
56
:
57
public
PstreamImpl
58
{
59
// Private Member Functions
60
61
//- Disallow default bitwise copy construct
62
mpiPstreamImpl
(
const
mpiPstreamImpl
&);
63
64
//- Disallow default bitwise assignment
65
void
operator=(
const
mpiPstreamImpl
&);
66
67
public
:
68
69
// Declare name of the class and its debug switch
70
TypeName
(
"mpiPstreamImpl"
);
71
72
// Constructors
73
74
//- Construct null
75
mpiPstreamImpl
(){}
76
77
// Member Functions
78
79
//- Add the valid option this type of communications library
80
// adds/requires on the command line
81
virtual
void
addValidParOptions
(
HashTable<string>
& validParOptions);
82
83
//- Initialisation function called from main
84
// Spawns slave processes and initialises inter-communication
85
virtual
bool
init
(
int
& argc,
char
**& argv,
int
& myProcNo_,
List<int>
& procIDs_,
bool
& isParallel);
86
87
//- Exit program
88
virtual
void
exit
(
int
errnum);
89
90
//- Abort program
91
virtual
void
abort
();
92
93
//- Reduce implementation for scalars (@sa PstreamReduceOps.H)
94
void
reduce
(scalar& Value,
const
sumOp<scalar>
& bop);
95
96
};
97
98
99
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
100
101
}
// End namespace Foam
102
103
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104
105
#endif
106
107
// ************************ vim: set sw=4 sts=4 et: ************************ //