当前位置: 首页>>代码示例>>C++>>正文


C++ RCP::ApplyJacobian1ToVec方法代码示例

本文整理汇总了C++中teuchos::RCP::ApplyJacobian1ToVec方法的典型用法代码示例。如果您正苦于以下问题:C++ RCP::ApplyJacobian1ToVec方法的具体用法?C++ RCP::ApplyJacobian1ToVec怎么用?C++ RCP::ApplyJacobian1ToVec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在teuchos::RCP的用法示例。


在下文中一共展示了RCP::ApplyJacobian1ToVec方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

 void gradient_1(ROL::Vector<Real> &g, const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol) {
   Teuchos::RCP<Tpetra::MultiVector<> > gp = (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real> >(g)).getVector();
   Teuchos::RCP<const Tpetra::MultiVector<> > up = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(u)).getVector();
   Teuchos::RCP<const Tpetra::MultiVector<> > zp = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(z)).getVector();
   
   data_->updateMaterialDensity (zp);
   data_->ApplyJacobian1ToVec(gp, up);
 }
开发者ID:agrippa,项目名称:Trilinos,代码行数:8,代码来源:parametrized_objective.hpp

示例2:

 void applyJacobian_1(ROL::Vector<Real> &jv, const ROL::Vector<Real> &v, const ROL::Vector<Real> &u,
                      const ROL::Vector<Real> &z, Real &tol) {
   Teuchos::RCP<Tpetra::MultiVector<> > jvp = (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real> >(jv)).getVector();
   Teuchos::RCP<const Tpetra::MultiVector<> > vp = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(v)).getVector();
   Teuchos::RCP<const Tpetra::MultiVector<> > zp = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(z)).getVector();
   
   data_->updateMaterialDensity (zp);
   data_->ApplyJacobian1ToVec(jvp, vp);
 }
开发者ID:gahansen,项目名称:Trilinos,代码行数:9,代码来源:constraint.hpp

示例3: value

 void value(ROL::Vector<Real> &c, const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol) {
   Teuchos::RCP<Tpetra::MultiVector<> > cp = (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real> >(c)).getVector();
   Teuchos::RCP<const Tpetra::MultiVector<> > up = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(u)).getVector();
   Teuchos::RCP<const Tpetra::MultiVector<> > zp = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(z)).getVector();
   
   data_->updateMaterialDensity(zp);
   data_->ApplyJacobian1ToVec(cp, up);
   Real one(1);
   cp->update(-one, *(data_->getVecF()), one);
 }
开发者ID:gahansen,项目名称:Trilinos,代码行数:10,代码来源:constraint.hpp

示例4: two

 void hessVec_11(ROL::Vector<Real> &hv,
           const ROL::Vector<Real> &v,
           const ROL::Vector<Real> &u,
           const ROL::Vector<Real> &z,
                 Real &tol) {
   if ( useFU_ ) {
     hv.zero();
   }
   else {
     Teuchos::RCP<Tpetra::MultiVector<> > hvp
       = (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real> >(hv)).getVector();
     Teuchos::RCP<const Tpetra::MultiVector<> > vp
       = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(v)).getVector();
     data_->ApplyJacobian1ToVec(hvp, vp);
     Real two(2);
     hvp->scale(two*scale_);
   }
 }
开发者ID:cihanuq,项目名称:Trilinos,代码行数:18,代码来源:objective.hpp

示例5: value

  Real value(const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol) {
    Teuchos::RCP<const Tpetra::MultiVector<> > up = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(u)).getVector();
    Teuchos::RCP<const Tpetra::MultiVector<> > zp = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(z)).getVector();
    
    data_->updateMaterialDensity (zp);
    
    // K u
    Teuchos::RCP<Tpetra::MultiVector<> > matvecp = Teuchos::rcp(new Tpetra::MultiVector<>(*up, Teuchos::Copy));
    data_->ApplyJacobian1ToVec(matvecp, up);
    
    Teuchos::Array<Real> dotvalU(1, 0);
    Teuchos::Array<Real> dotvalZ(1, 0);
    //u K u
    up->dot(*matvecp, dotvalU);
    //z z
    zp->dot(*zp, dotvalZ);

    return(0.5*dotvalU[0] + 0.5*alpha_*dotvalZ[0]);
  }
开发者ID:agrippa,项目名称:Trilinos,代码行数:19,代码来源:parametrized_objective.hpp

示例6: value

    Real value(const ROL::Vector<Real> &u,
               const ROL::Vector<Real> &z,
               Real &tol) {
        Teuchos::RCP<const Tpetra::MultiVector<> > up
            = (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real> >(u)).getVector();

        Teuchos::Array<Real> dotvalU(1, 0);
        if ( useFU_ ) {
            data_->updateF(ROL::Objective_SimOpt<Real>::getParameter());
            up->dot(*(data_->getVecF()), dotvalU.view(0,1));
        }
        else {
            Teuchos::RCP<Tpetra::MultiVector<> > matvecp
                = Teuchos::rcp(new Tpetra::MultiVector<>(*up, Teuchos::Copy));
            data_->ApplyJacobian1ToVec(matvecp, up);
            up->dot(*matvecp, dotvalU.view(0,1));
        }

        return scale_*dotvalU[0];
    }
开发者ID:trilinos,项目名称:Trilinos,代码行数:20,代码来源:parametrized_objective.hpp


注:本文中的teuchos::RCP::ApplyJacobian1ToVec方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。