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

Function FillAMRMesh

IO/CatalystConduit/vtkConduitToDataObject.cxx:644–681  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

642
643//----------------------------------------------------------------------------
644bool FillAMRMesh(vtkOverlappingAMR* amr, const conduit_cpp::Node& node)
645{
646 AMRUtils::LocalInfo rankInfo;
647 AMRUtils::GlobalInfo globalInfo;
648
649 vtkMultiProcessController* controller = vtkMultiProcessController::GetGlobalController();
650 if (controller)
651 {
652 // if VTK was initialized properly controller should be non-null but that's not always
653 // the case so safer to check if controller is available
654 globalInfo.NbOfProcesses = controller->GetNumberOfProcesses();
655 rankInfo.Rank = controller->GetLocalProcessId();
656 }
657 AMRUtils::ConstructLocalInfo(node, rankInfo);
658
659 AMRUtils::GatherInfos(rankInfo, globalInfo);
660
661 AMRUtils::InitializeLocalAMR(globalInfo, amr);
662
663 for (conduit_index_t cc = 0; cc < rankInfo.NbOfLeaves; ++cc)
664 {
665 const auto child = node.child(cc);
666 AMRUtils::FillLocalData(child, rankInfo, globalInfo, amr);
667 }
668
669 AMRUtils::DistributeAMRBoxes(rankInfo, globalInfo, amr);
670
671 if (globalInfo.NbOfProcesses == 1)
672 {
673 vtkAMRUtilities::BlankCells(amr);
674 }
675 else if (controller)
676 {
677 vtkParallelAMRUtilities::BlankCells(amr, controller);
678 }
679
680 return true;
681}
682
683//----------------------------------------------------------------------------
684vtkSmartPointer<vtkDataSet> CreateMesh(

Callers 1

GenerateAMRMethod · 0.85

Calls 8

ConstructLocalInfoFunction · 0.85
GatherInfosFunction · 0.85
InitializeLocalAMRFunction · 0.85
FillLocalDataFunction · 0.85
DistributeAMRBoxesFunction · 0.85
GetNumberOfProcessesMethod · 0.80
childMethod · 0.80
GetLocalProcessIdMethod · 0.45

Tested by

no test coverage detected