《跟随霄,LAMMPS源码学习04》Atom::create_avec()

Posted 非设限人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《跟随霄,LAMMPS源码学习04》Atom::create_avec()相关的知识,希望对你有一定的参考价值。

回忆到上次(03期)推文调用create_avec()的方式为:

atom->create_avec("atomic",0,NULL,1);

可见create_avec()函数接受了四个参数,在下面详细讲解。

那么create_avec()函数的伪代码[atom.cpp]如下:

void Atom::create_avec(const char *style, int narg, char **arg, int trysuffix)
{  
 avec = new_avec(style,trysuffix,sflag);  avec->store_args(narg,arg);  avec->process_args(narg,arg);  
 avec->grow(1);
}

avec 全称 atom vector,为模拟中实际使用的原子向量指针。可以看到这个函数首先通过new_avec()创建一个新向量,然后存入和处理arg参数,最后使avec增长1,这样是为了不论有实际有几个原子,x[0][0]永远可以获取。


代码详解:

  • 可见该函数接受四个参数:

  • 第一个为原子类型,传入”atomic”,为字符类型

  • 第二个为参数个数,传入0,即没有额外参数

  • 第三个为参数指针,传入NULL,即没有额外参数

  • 第四个为 trysuffix,即是否尝试gpu, intel, kk, omp加速



因为原子向量比较重要,所以

05期讲:Atom::new_avec()

06期讲:Atom::grow()

以上是关于《跟随霄,LAMMPS源码学习04》Atom::create_avec()的主要内容,如果未能解决你的问题,请参考以下文章

lammps 免费学习资料汇总

lammps该怎么入门?

lammps该怎么入门

如何在ubuntu上安装lammps

LAMMPS入门操作基础:Linux基础命令

AMD二代霄龙实测:双路128核心256线程无情碾压