MCPcopy Create free account
hub / github.com/Kitware/VTK / CreateSubController

Method CreateSubController

Parallel/Core/vtkMultiProcessController.cxx:246–274  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

244
245//------------------------------------------------------------------------------
246vtkMultiProcessController* vtkMultiProcessController::CreateSubController(vtkProcessGroup* group)
247{
248 if (group->GetCommunicator() != this->Communicator)
249 {
250 vtkErrorMacro(<< "Invalid group for creating a sub controller.");
251 return nullptr;
252 }
253
254 if (group->FindProcessId(this->GetLocalProcessId()) < 0)
255 {
256 // The group does not contain this process. Just return nullptr.
257 return nullptr;
258 }
259
260 vtkSubCommunicator* subcomm = vtkSubCommunicator::New();
261 subcomm->SetGroup(group);
262
263 // We only need a basic implementation of vtkMultiProcessController for the
264 // subgroup, so we just use vtkDummyController here. It's a bit of a misnomer
265 // and may lead to confusion, but I think it's better than creating yet
266 // another class we have to maintain.
267 vtkDummyController* subcontroller = vtkDummyController::New();
268 subcontroller->SetCommunicator(subcomm);
269 subcontroller->SetRMICommunicator(subcomm);
270
271 subcomm->Delete();
272
273 return subcontroller;
274}
275
276//------------------------------------------------------------------------------
277vtkMultiProcessController* vtkMultiProcessController::PartitionController(

Callers 2

PartitionControllerMethod · 0.95

Calls 7

GetLocalProcessIdMethod · 0.95
FindProcessIdMethod · 0.80
SetGroupMethod · 0.80
DeleteMethod · 0.65
NewFunction · 0.50
GetCommunicatorMethod · 0.45
SetCommunicatorMethod · 0.45

Tested by

no test coverage detected