New_Package Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Newp_Hello.cpp
Go to the documentation of this file.
1 
2 //@HEADER
3 // ***********************************************************************
4 //
5 // New_Package Example Package
6 // Copyright (2004) Sandia Corporation
7 //
8 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9 // license for use of this work by or on behalf of the U.S. Government.
10 //
11 // This library is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Lesser General Public License as
13 // published by the Free Software Foundation; either version 2.1 of the
14 // License, or (at your option) any later version.
15 //
16 // This library is distributed in the hope that it will be useful, but
17 // WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 // Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public
22 // License along with this library; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24 // USA
25 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
26 //
27 // ***********************************************************************
28 //@HEADER
29 
30 #include "Newp_Hello.h"
31 #include "Epetra_Comm.h"
32 
33 //=============================================================================
34 Newp_Hello::Newp_Hello(const Epetra_Comm& Comm):Comm_(Comm.Clone()) {}
35 
36 //=============================================================================
37 Newp_Hello::Newp_Hello(const Newp_Hello& Source):Comm_(Source.Comm_->Clone()) {}
38 
39 //=============================================================================
41 
42 //=======================================================================
43 void Newp_Hello::Print(ostream& os) const {
44  int MyPID = Comm_->MyPID();
45  int NumProc = Comm_->NumProc();
46 
47  for (int iproc=0; iproc < NumProc; iproc++) {
48  if (MyPID==iproc) {
49 
50  if (MyPID==0) {
51  os << "This will print out one line for each of the " << NumProc << " processes " << endl ;
52  os << endl;
53  }
54  os << "Hello. I am process " << MyPID << endl ;
55  os << flush;
56  }
57 
58  // Do a few global ops to give I/O a chance to complete
59  Comm_->Barrier();
60  Comm_->Barrier();
61  Comm_->Barrier();
62  }
63  return;
64 }
65 
66 
const Epetra_Comm * Comm_
Definition: Newp_Hello.h:93
virtual void Barrier() const =0
virtual int MyPID() const =0
virtual ~Newp_Hello()
Definition: Newp_Hello.cpp:40
Newp_Hello(const Epetra_Comm &Comm)
Creates a Newp_Hello object and fills with default values.
Definition: Newp_Hello.cpp:34
A sample class.
Definition: Newp_Hello.h:59
virtual void Print(ostream &os) const
Definition: Newp_Hello.cpp:43
virtual int NumProc() const =0