本文整理汇总了C++中DataSpace::revert方法的典型用法代码示例。如果您正苦于以下问题:C++ DataSpace::revert方法的具体用法?C++ DataSpace::revert怎么用?C++ DataSpace::revert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DataSpace
的用法示例。
在下文中一共展示了DataSpace::revert方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: operator
/** Read the skalar field and optionally the attribute into the values referenced by the pointers */
void operator()(ThreadParams& params,
const std::string& name, T_Scalar* value,
const std::string& attrName = "", T_Attribute* attribute = nullptr)
{
log<picLog::INPUT_OUTPUT> ("ADIOS: read %1%D scalars: %2%") % simDim % name;
std::string datasetName = params.adiosBasePath + name;
ADIOS_VARINFO* varInfo;
ADIOS_CMD_EXPECT_NONNULL( varInfo = adios_inq_var(params.fp, datasetName.c_str()) );
if(varInfo->ndim != simDim)
throw std::runtime_error(std::string("Invalid dimensionality for ") + name);
if(varInfo->type != traits::PICToAdios<T_Scalar>().type)
throw std::runtime_error(std::string("Invalid type for ") + name);
DataSpace<simDim> gridPos = Environment<simDim>::get().GridController().getPosition();
uint64_t start[varInfo->ndim];
uint64_t count[varInfo->ndim];
for(int d = 0; d < varInfo->ndim; ++d)
{
/* \see adios_define_var: z,y,x in C-order */
start[d] = gridPos.revert()[d];
count[d] = 1;
}
ADIOS_SELECTION* fSel = adios_selection_boundingbox(varInfo->ndim, start, count);
// avoid deadlock between not finished pmacc tasks and mpi calls in adios
__getTransactionEvent().waitForFinished();
/* specify what we want to read, but start reading at below at `adios_perform_reads` */
/* magic parameters (0, 1): `from_step` (not used in streams), `nsteps` to read (must be 1 for stream) */
log<picLog::INPUT_OUTPUT > ("ADIOS: Schedule read skalar %1%)") % datasetName;
ADIOS_CMD( adios_schedule_read(params.fp, fSel, datasetName.c_str(), 0, 1, (void*)value) );
/* start a blocking read of all scheduled variables */
ADIOS_CMD( adios_perform_reads(params.fp, 1) );
adios_selection_delete(fSel);
adios_free_varinfo(varInfo);
if(!attrName.empty())
{
log<picLog::INPUT_OUTPUT> ("ADIOS: read attribute %1% for scalars: %2%") % attrName % name;
*attribute = readAttribute<T_Attribute>(params.fp, datasetName, attrName);
}
}