本文整理汇总了C++中teuchos::ArrayRCP::get方法的典型用法代码示例。如果您正苦于以下问题:C++ ArrayRCP::get方法的具体用法?C++ ArrayRCP::get怎么用?C++ ArrayRCP::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类teuchos::ArrayRCP
的用法示例。
在下文中一共展示了ArrayRCP::get方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: get_local
//-----------------------------------------------------------------------------
void TpetraVector::get_local(std::vector<double>& values) const
{
dolfin_assert(!_x.is_null());
values.resize(local_size());
Teuchos::ArrayRCP<const double> arr = _x->getData(0);
std::copy(arr.get(), arr.get() + values.size(), values.begin());
}
示例2: max
//-----------------------------------------------------------------------------
double TpetraVector::max() const
{
dolfin_assert(!_x.is_null());
Teuchos::ArrayRCP<const double> arr = _x->getData(0);
double max_local = *std::max_element(arr.get(), arr.get() + arr.size());
return MPI::max(mpi_comm(), max_local);
}
示例3: gather_on_zero
//-----------------------------------------------------------------------------
void TpetraVector::gather_on_zero(std::vector<double>& v) const
{
dolfin_assert(!_x.is_null());
if (_x->getMap()->getComm()->getRank() == 0)
v.resize(size());
else
v.resize(0);
// Create map with elements only on process zero
Teuchos::RCP<map_type> ymap(new map_type(size(), v.size(), 0,
_x->getMap()->getComm()));
Teuchos::RCP<vector_type> y(new vector_type(ymap, 1));
// Export from vector x to vector y
Tpetra::Export<vector_type::local_ordinal_type,
vector_type::global_ordinal_type,
vector_type::node_type> exporter(_x->getMap(), ymap);
y->doExport(*_x, exporter, Tpetra::INSERT);
Teuchos::ArrayRCP<const double> yarr = y->getData(0);
std::copy(yarr.get(), yarr.get() + v.size(), v.begin());
}
示例4: xVec
void DiscreteBoundaryOperator<ValueType>::applyImpl(
const Thyra::EOpTransp M_trans,
const Thyra::MultiVectorBase<ValueType> &X_in,
const Teuchos::Ptr<Thyra::MultiVectorBase<ValueType>> &Y_inout,
const ValueType alpha, const ValueType beta) const {
typedef Thyra::Ordinal Ordinal;
// Note: the name is VERY misleading: these asserts don't disappear in
// release runs, and in case of failure throw exceptions rather than
// abort.
TEUCHOS_ASSERT(this->opSupported(M_trans));
TEUCHOS_ASSERT(X_in.range()->isCompatible(*this->domain()));
TEUCHOS_ASSERT(Y_inout->range()->isCompatible(*this->range()));
TEUCHOS_ASSERT(Y_inout->domain()->isCompatible(*X_in.domain()));
const Ordinal colCount = X_in.domain()->dim();
// Loop over the input columns
for (Ordinal col = 0; col < colCount; ++col) {
// Get access the the elements of X_in's and Y_inout's column #col
Thyra::ConstDetachedSpmdVectorView<ValueType> xVec(X_in.col(col));
Thyra::DetachedSpmdVectorView<ValueType> yVec(Y_inout->col(col));
const Teuchos::ArrayRCP<const ValueType> xArray(xVec.sv().values());
const Teuchos::ArrayRCP<ValueType> yArray(yVec.sv().values());
// Wrap the Trilinos array in an Armadillo vector. const_cast is used
// because it's more natural to have a const arma::Col<ValueType> array
// than an arma::Col<const ValueType> one.
const arma::Col<ValueType> xCol(const_cast<ValueType *>(xArray.get()),
xArray.size(), false /* copy_aux_mem */);
arma::Col<ValueType> yCol(yArray.get(), yArray.size(), false);
applyBuiltInImpl(static_cast<TranspositionMode>(M_trans), xCol, yCol, alpha,
beta);
}
}
示例5: set_local
//-----------------------------------------------------------------------------
void TpetraVector::set_local(const std::vector<double>& values)
{
dolfin_assert(!_x.is_null());
const std::size_t num_values = local_size();
if (values.size() != num_values)
{
dolfin_error("TpetraVector.cpp",
"set local values of Tpetra vector",
"Size of values array is not equal to local vector size");
}
if (num_values == 0)
return;
Teuchos::ArrayRCP<double> arr = _x->getDataNonConst(0);
std::copy(values.begin(), values.end(), arr.get());
}