本文整理汇总了C++中Vector_3::norm方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector_3::norm方法的具体用法?C++ Vector_3::norm怎么用?C++ Vector_3::norm使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vector_3
的用法示例。
在下文中一共展示了Vector_3::norm方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: interaction
int PlasmaBunch::interaction(int m, int sum){
register int i, j,k;
static Vector_3 r;
int ret=Plasma::interaction(m,sum);
// now interacting with bunch particles
int type=0; // ion-ion
double dEcoul,dEpotent,dQuant;
double df;
for(i=0;i<(m<0 ? n : m+1);i++){
if(i>=ni)type|=0x1;// setting electron-? interaction type
else type&=0x2;// setting ion-? interaction type
if(is_ion)type&=0x1; // setting ?-ion interaction type
else type|=0x2;// setting ?-electron interaction type
for(j=0;j<nb;j++){
for(k=0;k<3;k++){ // determining the closest
//distance and correspondent direction
r[k]=xx[i][k]-xb[j][k];
if(r[k]>L/2)r[k]-=L;
if(r[k]<-L/2)r[k]+=L;
}
double R=r.norm();
if(R<1e-20)printf("Got small distance to bunch (%d,b%d) !\n",i,j);
r/=R;
dEcoul=qb/R;
df=potential(type,R,dEpotent,dQuant);
for(k=0;k<3;k++){ // to avoid vector copying
f[i][k]+=df*r[k];
//f[j][k]-=df*r[k];
}
Ecoul+=dEcoul;
Quant+=dQuant;
Epotent+=dEpotent;
}
}
return ret;
}