Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
G4MPIrandomSeedGenerator Class Reference

#include <Doxymodules_parallel.h>

Inheritance diagram for G4MPIrandomSeedGenerator:
G4VMPIseedGenerator

Public Member Functions

 G4MPIrandomSeedGenerator ()
 
 ~G4MPIrandomSeedGenerator ()
 
- Public Member Functions inherited from G4VMPIseedGenerator
 G4VMPIseedGenerator ()
 
virtual ~G4VMPIseedGenerator ()
 
void SetMasterSeed (G4long aseed)
 
G4long GetMasterSeed () const
 
const std::vector< G4long > & GetSeedList () const
 

Protected Member Functions

G4bool CheckDoubleCount ()
 
virtual void GenerateSeeds ()
 

Additional Inherited Members

- Protected Attributes inherited from G4VMPIseedGenerator
G4long master_seed_
 
std::vector< G4long > seed_list_
 

Detailed Description

Definition at line 65 of file Doxymodules_parallel.h.

Constructor & Destructor Documentation

◆ G4MPIrandomSeedGenerator()

G4MPIrandomSeedGenerator::G4MPIrandomSeedGenerator ( )

◆ ~G4MPIrandomSeedGenerator()

G4MPIrandomSeedGenerator::~G4MPIrandomSeedGenerator ( )

Definition at line 41 of file G4MPIrandomSeedGenerator.cc.

42{
43}

Member Function Documentation

◆ CheckDoubleCount()

G4bool G4MPIrandomSeedGenerator::CheckDoubleCount ( )
protected

Definition at line 46 of file G4MPIrandomSeedGenerator.cc.

47{
49
50 G4int nsize = g4mpi-> GetActiveSize();
51
52 for ( G4int i = 0; i < nsize; i++ ) {
53 for ( G4int j = 0; j < nsize; j++ ) {
54 if( (i != j) && (seed_list_[i] == seed_list_[j]) ) {
55 G4double x = G4UniformRand();
56 seed_list_[j] = G4long(x*LONG_MAX);
57 return false;
58 }
59 }
60 }
61
62 return true;
63}
static G4MPImanager * GetManager()
std::vector< G4long > seed_list_

◆ GenerateSeeds()

void G4MPIrandomSeedGenerator::GenerateSeeds ( )
protectedvirtual

Implements G4VMPIseedGenerator.

Definition at line 66 of file G4MPIrandomSeedGenerator.cc.

67{
69
70 G4int nsize = g4mpi-> GetActiveSize();
71
72 seed_list_.clear();
73
74 for ( G4int i = 0; i < nsize; i++ ) {
75 G4double x = G4UniformRand();
76 G4int seed = G4long(x*LONG_MAX);
77 seed_list_.push_back(seed);
78 }
79
80 while(! CheckDoubleCount()) {
81 continue;
82 }
83}

The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration