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


C++ vector_t::reinit方法代码示例

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


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

示例1: get_rhs

void SCL::get_rhs(fe_func_t& v_h, vector_t& rhs)
{
  update_edge_cache(v_h);

  double alpha = 1.0;
  rhs.reinit(fem_space->n_dof());
  fe_space_t::DGElementIterator 
    the_dgele = fem_space->beginDGElement(),
    end_dgele = fem_space->endDGElement();
  for (;the_dgele != end_dgele;++ the_dgele) {
    GET_EDGE_CACHE(*the_dgele);

    const element_t& neigh0 = the_dgele->neighbourElement(0);
    const std::vector<int>& ele_dof0 = neigh0.dof();
    if (the_dgele->p_neighbourElement(1) != NULL) { // 内部边
      const element_t& neigh1 = the_dgele->neighbourElement(1);
      const std::vector<int>& ele_dof1 = neigh1.dof();
      for (int l = 0;l < n_q_pnt;l ++) {
        double a = Jxw[l]*flux(q_pnt[l], u_h_val0[l], u_h_val1[l], un[l]);
        rhs(ele_dof0[0]) -= a;
        rhs(ele_dof1[0]) += a;
      }
    } else { // 分区之间的边界和区域的物理边界上的边
      for (int l = 0;l < n_q_pnt;l ++) {
        double a = Jxw[l]*flux(q_pnt[l], u_h_val0[l], u_h_val1[l], un[l]);
        rhs(ele_dof0[0]) -= a;
      }
    }
  }

  fe_space_t::ElementIterator
    the_ele = fem_space->beginElement(),
    end_ele = fem_space->endElement();
  for (;the_ele != end_ele;++ the_ele) {
    const std::vector<int>& ele_dof = the_ele->dof();
    rhs(ele_dof[0]) /= element_cache[the_ele->index()].vol;
  }
}
开发者ID:volterra-luo,项目名称:z-afepack,代码行数:38,代码来源:SCL.cpp


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