《跟随霄,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()的主要内容,如果未能解决你的问题,请参考以下文章