本文整理汇总了C++中teuchos::RefCountPtr::NumSubDomains方法的典型用法代码示例。如果您正苦于以下问题:C++ RefCountPtr::NumSubDomains方法的具体用法?C++ RefCountPtr::NumSubDomains怎么用?C++ RefCountPtr::NumSubDomains使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类teuchos::RefCountPtr
的用法示例。
在下文中一共展示了RefCountPtr::NumSubDomains方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: underlyingME
EpetraExt::MultiPointModelEvaluator::MultiPointModelEvaluator(
Teuchos::RefCountPtr<EpetraExt::ModelEvaluator> underlyingME_,
const Teuchos::RefCountPtr<EpetraExt::MultiComm> &globalComm_,
const std::vector<Epetra_Vector*> initGuessVec_,
Teuchos::RefCountPtr<std::vector< Teuchos::RefCountPtr<Epetra_Vector> > > q_vec_,
Teuchos::RefCountPtr<std::vector< Teuchos::RefCountPtr<Epetra_Vector> > > matching_vec_
) :
underlyingME(underlyingME_),
globalComm(globalComm_),
q_vec(q_vec_),
underlyingNg(0),
timeStepsOnTimeDomain(globalComm_->NumTimeStepsOnDomain()),
numTimeDomains(globalComm_->NumSubDomains()),
timeDomain(globalComm_->SubDomainRank()),
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
rowStencil_int(0),
#endif
#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
rowStencil_LL(0),
#endif
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
rowIndex_int(0),
#endif
#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
rowIndex_LL(0),
#endif
matching_vec(matching_vec_)
{
using Teuchos::as;
if (globalComm->MyPID()==0) {
std::cout << "----------MultiPoint Partition Info------------"
<< "\n\tNumProcs = " << globalComm->NumProc()
<< "\n\tSpatial Decomposition = " << globalComm->SubDomainComm().NumProc()
<< "\n\tNumber of Domains = " << numTimeDomains
<< "\n\tSteps on Domain 0 = " << timeStepsOnTimeDomain
<< "\n\tTotal Number of Steps = " << globalComm->NumTimeSteps();
std::cout << "\n-----------------------------------------------" << std::endl;
}
// Construct global block matrix graph from split W and stencil,
// which is just diagonal in this case
split_W = Teuchos::rcp_dynamic_cast<Epetra_RowMatrix>(underlyingME->create_W());
#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
if(split_W->RowMatrixRowMap().GlobalIndicesInt()) {
longlong = false;
rowStencil_int = new std::vector< std::vector<int> >(timeStepsOnTimeDomain);
rowIndex_int = new std::vector<int>;
for (int i=0; i < timeStepsOnTimeDomain; i++) {
(*rowStencil_int)[i].push_back(0);
(*rowIndex_int).push_back(i + globalComm->FirstTimeStepOnDomain());
}
block_W = Teuchos::rcp(new EpetraExt::BlockCrsMatrix(*split_W,
*rowStencil_int, *rowIndex_int, *globalComm));
}
else
#endif
#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
if(split_W->RowMatrixRowMap().GlobalIndicesInt()) {
longlong = true;
rowStencil_LL = new std::vector< std::vector<long long> >(timeStepsOnTimeDomain);
rowIndex_LL = new std::vector<long long>;
for (int i=0; i < timeStepsOnTimeDomain; i++) {
(*rowStencil_LL)[i].push_back(0);
(*rowIndex_LL).push_back(i + globalComm->FirstTimeStepOnDomain());
}
block_W = Teuchos::rcp(new EpetraExt::BlockCrsMatrix(*split_W,
*rowStencil_LL, *rowIndex_LL, *globalComm));
}
else
#endif
throw "EpetraExt::MultiPointModelEvaluator::MultiPointModelEvaluator: Global indices unknown";
// Test for g vector
EpetraExt::ModelEvaluator::OutArgs underlyingOutArgs = underlyingME->createOutArgs();
underlyingNg = underlyingOutArgs.Ng();
if (underlyingNg) {
if (underlyingOutArgs.supports(OUT_ARG_DgDp,0,0).supports(DERIV_TRANS_MV_BY_ROW))
orientation_DgDp = DERIV_TRANS_MV_BY_ROW;
else
orientation_DgDp = DERIV_MV_BY_COL;
}
// This code assumes 2 parameter vectors, 1 for opt, second for MultiPoint states
TEUCHOS_TEST_FOR_EXCEPT(underlyingOutArgs.Np()!=2);
// temporary quantities
const Epetra_Map& split_map = split_W->RowMatrixRowMap();
num_p0 = underlyingME_->get_p_map(0)->NumMyElements();
if (underlyingNg) num_g0 = underlyingME_->get_g_map(0)->NumMyElements();
else num_g0 = 0;
num_dg0dp0 = num_g0 * num_p0;
// Construct global solution vector, residual vector -- local storage
block_x = new EpetraExt::BlockVector(split_map, block_W->RowMap());
block_f = new EpetraExt::BlockVector(*block_x);
block_DfDp = new EpetraExt::BlockMultiVector(split_map, block_W->RowMap(), num_p0);
if (underlyingNg)
//.........这里部分代码省略.........