示例#1
0
////////////////////////////////////////////////////////////////////////////
// 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 );
  }
}
示例#2
0
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();
}
示例#3
0
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();
}
示例#4
0
文件: impl.hpp 项目: hrhill/Elemental
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();
}
示例#5
0
文件: impl.hpp 项目: hrhill/Elemental
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();
}