1 /*----------------------------------------------------------------------------*\
2 ______ ______ ____ __ __
3 | ____| | ____/ __ \ /\ | \/ |
4 | |__ _ __ ___ ___| |__ | | | | / \ | \ / |
5 | __| '__/ _ \/ _ \ __|| | | |/ /\ \ | |\/| |
6 | | | | | __/ __/ | | |__| / ____ \| | | |
7 |_| |_| \___|\___|_| \____/_/ \_\_| |_|
9 FreeFOAM: The Cross-Platform CFD Toolkit
11 Copyright (C) 2008-2009 Michael Wild <themiwi@users.sf.net>
12 Gerber van der Graaf <gerber_graaf@users.sf.net>
13 --------------------------------------------------------------------------------
15 This file is part of FreeFOAM.
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 2 of the License, or (at your
20 option) any later version.
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
27 You should have received a copy of the GNU General Public License
28 along with FreeFOAM; if not, write to the Free Software Foundation,
29 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
32 Foam::gammaPstreamImpl
35 GAMMA implementation of the PstreamImpl abstract base class.
40 \*----------------------------------------------------------------------------*/
42 #ifndef gammaPstreamImpl_H
43 #define gammaPstreamImpl_H
45 #include <OpenFOAM/PstreamImpl.H>
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
52 /*---------------------------------------------------------------------------*\
53 Class gammaPstreamImpl Declaration
54 \*---------------------------------------------------------------------------*/
56 class gammaPstreamImpl
60 // Private Member Functions
62 //- Disallow default bitwise copy construct
63 gammaPstreamImpl(const gammaPstreamImpl&);
65 //- Disallow default bitwise assignment
66 void operator=(const gammaPstreamImpl&);
70 // Declare name of the class and its debug switch
71 TypeName("gammaPstreamImpl");
80 //- Add the valid option this type of communications library
81 // adds/requires on the command line
82 virtual void addValidParOptions(HashTable<string>& validParOptions);
84 //- Initialisation function called from main
85 // Spawns slave processes and initialises inter-communication
86 virtual bool init(int& argc, char**& argv, int& myProcNo_, List<int>& procIDs_, bool& isParallel);
89 virtual void exit(int errnum);
94 //- Reduce implementation for scalars (@sa PstreamReduceOps.H)
95 void reduce(scalar& Value, const sumOp<scalar>& bop);
100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
102 } // End namespace Foam
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 // ************************ vim: set sw=4 sts=4 et: ************************ //