//////////////////////////////////////////////////////////////////////////// // GetData() //////////////////////////////////////////////////////////////////////////// void clGLIMap::GetData( xercesc::DOMDocument * p_oDoc ) { try { clLightBase::GetData(p_oDoc); ReadParameterFileData( p_oDoc ); SetUpBrightnessArray(); DoSetupCalculations(); SetUpGrid(); } catch ( modelErr & err ) { throw( err ); } catch ( modelMsg & msg ) { throw( msg ); } //non-fatal error catch ( ... ) { modelErr stcErr; stcErr.iErrorCode = UNKNOWN; stcErr.sFunction = "clGLIMap::GetData" ; throw( stcErr ); } }
inline Grid::Grid( mpi::Comm comm, GridOrder order ) : haveViewers_(false), order_(order) { DEBUG_ONLY(CallStackEntry cse("Grid::Grid")) // Extract our rank, the underlying group, and the number of processes mpi::Dup( comm, viewingComm_ ); mpi::CommGroup( viewingComm_, viewingGroup_ ); size_ = mpi::Size( viewingComm_ ); // All processes own the grid, so we have to trivially split viewingGroup_ owningGroup_ = viewingGroup_; // Factor p height_ = FindFactor( size_ ); SetUpGrid(); }
inline Grid::Grid( mpi::Comm comm, int height, GridOrder order ) : haveViewers_(false), order_(order) { DEBUG_ONLY(CallStackEntry cse("Grid::Grid")) // Extract our rank, the underlying group, and the number of processes mpi::Dup( comm, viewingComm_ ); mpi::CommGroup( viewingComm_, viewingGroup_ ); size_ = mpi::Size( viewingComm_ ); // All processes own the grid, so we have to trivially split viewingGroup_ owningGroup_ = viewingGroup_; height_ = height; if( height_ < 0 ) LogicError("Process grid dimensions must be non-negative"); SetUpGrid(); }
inline Grid::Grid( mpi::Comm comm ) { DEBUG_ONLY(CallStackEntry cse("Grid::Grid")) inGrid_ = true; // this is true by assumption for this constructor // Extract our rank, the underlying group, and the number of processes mpi::CommDup( comm, viewingComm_ ); mpi::CommGroup( viewingComm_, viewingGroup_ ); viewingRank_ = mpi::CommRank( viewingComm_ ); size_ = mpi::CommSize( viewingComm_ ); // All processes own the grid, so we have to trivially split viewingGroup_ owningGroup_ = viewingGroup_; notOwningGroup_ = mpi::GROUP_EMPTY; owningRank_ = viewingRank_; // Factor p height_ = FindFactor( size_ ); width_ = size_ / height_; SetUpGrid(); }
inline Grid::Grid( mpi::Comm comm, int height ) { DEBUG_ONLY(CallStackEntry cse("Grid::Grid")) inGrid_ = true; // this is true by assumption for this constructor // Extract our rank, the underlying group, and the number of processes mpi::CommDup( comm, viewingComm_ ); mpi::CommGroup( viewingComm_, viewingGroup_ ); viewingRank_ = mpi::CommRank( viewingComm_ ); size_ = mpi::CommSize( viewingComm_ ); // All processes own the grid, so we have to trivially split viewingGroup_ owningGroup_ = viewingGroup_; notOwningGroup_ = mpi::GROUP_EMPTY; owningRank_ = viewingRank_; height_ = height; width_ = size_ / height_; if( height_ < 0 ) LogicError("Process grid dimensions must be non-negative"); SetUpGrid(); }