Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
G4MPImessenger Class Reference

#include <Doxymodules_parallel.h>

Inheritance diagram for G4MPImessenger:
G4UImessenger

Public Member Functions

 G4MPImessenger ()
 
 ~G4MPImessenger ()
 
virtual void SetNewValue (G4UIcommand *command, G4String newValue)
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
void SetTargetObject (G4MPImanager *mpi_manager)
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (G4MPImessenger)
 

Private Attributes

G4MPImanagerg4mpi_
 
G4UIdirectorydir_
 
G4UIcmdWithAnIntegerverbose_
 
G4UIcmdWithoutParameterstatus_
 
G4UIcmdWithAStringexecute_
 
G4UIcommandbeam_on_
 
G4UIcommanddot_beam_on_
 
G4UIcmdWithADoublemaster_weight_
 
G4UIcmdWithoutParametershow_seeds_
 
G4UIcmdWithAnIntegerset_master_seed_
 
G4UIcommandset_seed_
 

Detailed Description

Definition at line 64 of file Doxymodules_parallel.h.

Constructor & Destructor Documentation

◆ G4MPImessenger()

G4MPImessenger::G4MPImessenger ( )

Definition at line 43 of file G4MPImessenger.cc.

45{
46 // /mpi
47 dir_ = new G4UIdirectory("/mpi/");
48 dir_-> SetGuidance("MPI control commands");
49
50 // /mpi/verbose
51 verbose_ = new G4UIcmdWithAnInteger("/mpi/verbose", this);
52 verbose_-> SetGuidance("Set verbose level.");
53 verbose_-> SetParameterName("verbose", false, false);
54 verbose_->SetRange("verbose>=0 && verbose<=1");
55
56 // /mpi/status
57 status_ = new G4UIcmdWithoutParameter("/mpi/status", this);
58 status_-> SetGuidance( "Show mpi status.");
59
60 // /mpi/execute
61 execute_ = new G4UIcmdWithAString("/mpi/execute", this);
62 execute_-> SetGuidance("Execute a macro file. (=/control/execute)");
63 execute_-> SetParameterName("fileName", false, false);
64
65 // /mpi/beamOn
66 beam_on_ = new G4UIcommand("/mpi/beamOn", this);
67 beam_on_-> SetGuidance("Start a parallel run w/ thread.");
68
69 G4UIparameter* p1= new G4UIparameter("numberOfEvent", 'i', true);
70 p1-> SetDefaultValue(1);
71 p1-> SetParameterRange("numberOfEvent>=0");
72 beam_on_-> SetParameter(p1);
73
74 G4UIparameter* p2= new G4UIparameter("divide", 'b', true);
75 p2-> SetDefaultValue(true);
76 beam_on_-> SetParameter(p2);
77
78 // /mpi/.beamOn
79 dot_beam_on_ = new G4UIcommand("/mpi/.beamOn", this);
80 dot_beam_on_-> SetGuidance("Start a parallel run w/o thread.");
81
82 p1= new G4UIparameter("numberOfEvent", 'i', true);
83 p1-> SetDefaultValue(1);
84 p1-> SetParameterRange("numberOfEvent>=0");
85 dot_beam_on_-> SetParameter(p1);
86
87 p2= new G4UIparameter("divide", 'b', true);
88 p2-> SetDefaultValue(true);
89 dot_beam_on_-> SetParameter(p2);
90
91 // /mpi/masterWeight
92 master_weight_ = new G4UIcmdWithADouble("/mpi/masterWeight", this);
93 master_weight_-> SetGuidance("Set weight for master node.");
94 master_weight_-> SetParameterName("weight", false, false);
95 master_weight_-> SetRange("weight>=0. && weight<=1.");
96
97 // /mpi/showSeeds
98 show_seeds_ = new G4UIcmdWithoutParameter("/mpi/showSeeds", this);
99 show_seeds_-> SetGuidance("Show seeds of MPI nodes.");
100
101 // /mpi/setMasterSeed
102 set_master_seed_ = new G4UIcmdWithAnInteger("/mpi/setMasterSeed", this);
103 set_master_seed_-> SetGuidance("Set a master seed for the seed generator.");
104 set_master_seed_-> SetParameterName("seed", false, false);
105
106 // /mpi/setSeed
107 set_seed_ = new G4UIcommand("/mpi/setSeed", this);
108 set_seed_-> SetGuidance("Set a seed for a specified node.");
109
110 p1 = new G4UIparameter("node", 'i', false);
111 p1-> SetParameterRange("node>=0");
112 set_seed_-> SetParameter(p1);
113
114 p2 = new G4UIparameter("seed", 'i', false);
115 set_seed_-> SetParameter(p2);
116}
G4UIcmdWithoutParameter * show_seeds_
G4UIcmdWithAString * execute_
G4UIdirectory * dir_
G4UIcmdWithoutParameter * status_
G4UIcommand * beam_on_
G4UIcommand * set_seed_
G4UIcommand * dot_beam_on_
G4UIcmdWithAnInteger * verbose_
G4UIcmdWithAnInteger * set_master_seed_
G4UIcmdWithADouble * master_weight_

◆ ~G4MPImessenger()

G4MPImessenger::~G4MPImessenger ( )

Definition at line 119 of file G4MPImessenger.cc.

120{
121 delete verbose_;
122 delete status_;
123 delete execute_;
124 delete beam_on_;
125 delete dot_beam_on_;
126 delete master_weight_;
127 delete show_seeds_;
128 delete set_master_seed_;
129 delete set_seed_;
130
131 delete dir_;
132}

Member Function Documentation

◆ SetNewValue()

void G4MPImessenger::SetNewValue ( G4UIcommand command,
G4String  newValue 
)
virtual

Definition at line 135 of file G4MPImessenger.cc.

136{
137 if ( command == verbose_ ) { // /mpi/verbose
138 G4int lv = verbose_-> GetNewIntValue(newValue);
139 g4mpi_-> SetVerbose(lv);
140
141 } else if ( command == status_ ) { // /mpi/status
142 g4mpi_-> ShowStatus();
143
144 } else if ( command == execute_ ) { // /mpi/execute
145 G4UImanager* UI = G4UImanager::GetUIpointer();
146 g4mpi_-> ExecuteMacroFile(UI-> FindMacroPath(newValue));
147
148 } else if ( command == beam_on_ ) { // /mpi/beamOn
149 std::istringstream is(newValue);
150 G4int nevent;
151 G4bool qdivide;
152 is >> nevent >> qdivide;
153 g4mpi_-> BeamOn(nevent, qdivide);
154
155 } else if ( command == dot_beam_on_ ) { // /mpi/.beamOn
156 std::istringstream is(newValue);
157 G4int nevent;
158 G4bool qdivide;
159 is >> nevent >> qdivide;
160 g4mpi_-> BeamOn(nevent, qdivide);
161
162 } else if ( command == master_weight_ ) { // /mpi/masterWeight
163 G4double weight= master_weight_-> GetNewDoubleValue(newValue);
164 g4mpi_-> SetMasterWeight(weight);
165
166 } else if ( command == show_seeds_ ) { // /mpi/showSeeds
167 g4mpi_-> ShowSeeds();
168
169 } else if ( command == set_master_seed_ ) { // /mpi/setMasterSeed
170 std::istringstream is(newValue);
171 G4long seed;
172 is >> seed;
173 g4mpi_-> GetSeedGenerator()-> SetMasterSeed(seed);
174 g4mpi_-> DistributeSeeds();
175
176 } else if ( command == set_seed_ ) { // /mpi/setSeed
177 std::istringstream is(newValue);
178 G4int inode;
179 G4long seed;
180 is >> inode >> seed;
181 g4mpi_-> SetSeed(inode, seed);
182 }
183
184 return;
185}
G4MPImanager * g4mpi_

◆ GetCurrentValue()

G4String G4MPImessenger::GetCurrentValue ( G4UIcommand command)
virtual

Definition at line 188 of file G4MPImessenger.cc.

189{
190 G4String cv;
191
192 if ( command == verbose_ ) {
193 cv = verbose_-> ConvertToString(g4mpi_->GetVerbose());
194 } else if ( command == master_weight_ ) {
195 cv= master_weight_-> ConvertToString(g4mpi_->GetMasterWeight());
196 }
197
198 return cv;
199}
G4double GetMasterWeight() const
G4int GetVerbose() const

◆ SetTargetObject()

void G4MPImessenger::SetTargetObject ( G4MPImanager mpi_manager)
inline

Definition at line 78 of file G4MPImessenger.hh.

79{
80 g4mpi_ = mpi_manager;
81}

◆ DISALLOW_COPY_AND_ASSIGN()

G4MPImessenger::DISALLOW_COPY_AND_ASSIGN ( G4MPImessenger  )
private

Member Data Documentation

◆ g4mpi_

G4MPImanager* G4MPImessenger::g4mpi_
private

Definition at line 58 of file G4MPImessenger.hh.

◆ dir_

G4UIdirectory* G4MPImessenger::dir_
private

Definition at line 61 of file G4MPImessenger.hh.

◆ verbose_

G4UIcmdWithAnInteger* G4MPImessenger::verbose_
private

Definition at line 63 of file G4MPImessenger.hh.

◆ status_

G4UIcmdWithoutParameter* G4MPImessenger::status_
private

Definition at line 64 of file G4MPImessenger.hh.

◆ execute_

G4UIcmdWithAString* G4MPImessenger::execute_
private

Definition at line 66 of file G4MPImessenger.hh.

◆ beam_on_

G4UIcommand* G4MPImessenger::beam_on_
private

Definition at line 68 of file G4MPImessenger.hh.

◆ dot_beam_on_

G4UIcommand* G4MPImessenger::dot_beam_on_
private

Definition at line 69 of file G4MPImessenger.hh.

◆ master_weight_

G4UIcmdWithADouble* G4MPImessenger::master_weight_
private

Definition at line 70 of file G4MPImessenger.hh.

◆ show_seeds_

G4UIcmdWithoutParameter* G4MPImessenger::show_seeds_
private

Definition at line 72 of file G4MPImessenger.hh.

◆ set_master_seed_

G4UIcmdWithAnInteger* G4MPImessenger::set_master_seed_
private

Definition at line 73 of file G4MPImessenger.hh.

◆ set_seed_

G4UIcommand* G4MPImessenger::set_seed_
private

Definition at line 74 of file G4MPImessenger.hh.


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

Applications | User Support | Publications | Collaboration