本文整理汇总了C++中Tpetra_Vector::norm2方法的典型用法代码示例。如果您正苦于以下问题:C++ Tpetra_Vector::norm2方法的具体用法?C++ Tpetra_Vector::norm2怎么用?C++ Tpetra_Vector::norm2使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tpetra_Vector
的用法示例。
在下文中一共展示了Tpetra_Vector::norm2方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void
Albany::SolutionTwoNormResponseFunction::
evaluateGradientT(const double current_time,
const Tpetra_Vector* xdotT,
const Tpetra_Vector* xdotdotT,
const Tpetra_Vector& xT,
const Teuchos::Array<ParamVec>& p,
ParamVec* deriv_p,
Tpetra_Vector* gT,
Tpetra_MultiVector* dg_dxT,
Tpetra_MultiVector* dg_dxdotT,
Tpetra_MultiVector* dg_dxdotdotT,
Tpetra_MultiVector* dg_dpT)
{
Teuchos::ScalarTraits<ST>::magnitudeType nrm = xT.norm2();
// Evaluate response g
Teuchos::ArrayRCP<ST> gT_nonconstView;
if (gT != NULL) {
gT_nonconstView = gT->get1dViewNonConst();
gT_nonconstView[0] = nrm;
}
// Evaluate dg/dx
if (dg_dxT != NULL) {
//double nrm;
if (gT != NULL)
nrm = gT_nonconstView[0];
else
nrm = xT.norm2();
dg_dxT->scale(1.0/nrm,xT);
}
// Evaluate dg/dxdot
if (dg_dxdotT != NULL)
dg_dxdotT->putScalar(0.0);
if (dg_dxdotdotT != NULL)
dg_dxdotdotT->putScalar(0.0);
// Evaluate dg/dp
if (dg_dpT != NULL)
dg_dpT->putScalar(0.0);
}