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


C++ Iter::site方法代码示例

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


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

示例1:

double LiveWLdiagram :: nearest_neighbor_energy (const Iter& it, int na, int nb) const
{
  int site = it->site();

  double E = 0.;
  double nb_ns_a = 0., nb_ns_b = 0.;
  for(int nbi = 0; nbi < _latt(it->site()).nbs(); nbi++) {
    int dir = _latt(site).nbdir(nbi);
    Iter it_ass = it->assoc(nbi);
    nb_ns_a += BH_Vnn (0, dir) * it_ass->z.nbef(0);
    nb_ns_b += BH_Vnn (1, dir) * it_ass->z.nbef(1);
  }
  E += na * nb_ns_a;
  E += nb * nb_ns_b;

  return E;
}
开发者ID:chiamin,项目名称:TwoComponentBoseHubbard,代码行数:17,代码来源:LiveWLdiagram.hpp

示例2: if

/*
void LiveWLdiagram :: shifted_diagonal_energy (const Iter& it, double& Ebef, double& Eaft)
{
  // On-site energy
  int nbef = it->z.nbef(), naft = it->z.naft(), site = it->site();
  int dn = naft - nbef;
  double dE = -EFF_MU[site] * dn;
  dE += BH_UHALF * (naft*(naft-1) - nbef*(nbef-1));
#ifdef NN_INTERACTION
    int neighbor_n = 0;
    for(int nbi = 0; nbi < _latt(site).nbs(); ++nbi) {
      Iter it_ass = it->assoc(nbi);
      double BH_Vnn = get_BH_Vnn (it->site(), it_ass->site());
      neighbor_n += BH_Vnn * it_ass->z.nbef();
    }
    dE += (dn * neighbor_n);
#endif
  if (dE > 0) {
    Eaft = dE + EOFFSET;
    Ebef = EOFFSET;
  }
  else if (dE < 0) {
    Eaft = EOFFSET;
    Ebef = -dE + EOFFSET;
  }
  else {
    Eaft = EOFFSET;
    Ebef = EOFFSET;
  }
}
*/
inline double LiveWLdiagram :: diagonal_energy (const Iter& it, int na, int nb) const
{
  double E = onsite_energy (it->site(), na, nb);
  #ifdef NN_INTERACTION
  E += nearest_neighbor_energy (it, na, nb);
  #endif
  return E;
}
开发者ID:chiamin,项目名称:TwoComponentBoseHubbard,代码行数:39,代码来源:LiveWLdiagram.hpp

示例3: insert

void WLdiagram :: insert (const Iter& it_goal, int comp, double time, bool creat, bool up, Worm& worm, Iter& fix)
{
  Iter it_bef, it_aft;
  diag_insert (it_goal, time, it_bef, it_aft);
  set_operator (it_bef, it_aft, comp, creat);
  if (up) {
    worm.set (it_aft, up);
    fix = it_bef;
  }
  else {
    worm.set (it_bef, up);
    fix = it_aft;
  }

#ifdef DEBUG_MODE
  int site = it_goal->site();
  check (site, __func__);
#endif
#ifdef DEBUG_TRACK_MODE
__DEBUG_TRACK
#endif
}
开发者ID:chiamin,项目名称:TwoComponentBoseHubbard,代码行数:22,代码来源:WLdiagram.hpp


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