计算化学公社

标题: 如何修改mdp文件能添加不对称的太赫兹余弦电场 [打印本页]

作者
Author:
lees    时间: 2023-7-11 07:41
标题: 如何修改mdp文件能添加不对称的太赫兹余弦电场
各位老师和大佬们好,在做MD时我只知道添加对称性的余弦电场,改振幅和角频率。现在请教的问题是如何改成非对称性的余弦电场?
对称和非对称性电场如下图。

作者
Author:
lees    时间: 2023-7-11 10:00
各位大佬,目前我用的Gromacs版本是4.6.7,电场行如图,

作者
Author:
sobereva    时间: 2023-7-11 12:37
mdp文件里没法设,得改源程序
作者
Author:
lees    时间: 2023-7-12 11:46
sobereva 发表于 2023-7-11 12:37
mdp文件里没法设,得改源程序

谢谢sob老师的解答
我找到了需要更改的源程序函数,但是刚接触程序改了多次也没成功,老师和各位大佬能否指点一下,我想要的余弦函数是E = E0+E0cos(wt),  原函数如下。
static void calc_f_el(FILE *fp, int  start, int homenr,
                      real charge[], rvec f[],
                      t_cosines Ex[], t_cosines Et[], double t)
{
    rvec Ext;
    real t0;
    int  i, m;

    for (m = 0; (m < DIM); m++)
    {
        if (Et[m].n > 0)
        {
            if (Et[m].n == 3)
            {
                t0     = Et[m].a[1];
                Ext[m] = cos(Et[m].a[0]*(t-t0))*exp(-sqr(t-t0)/(2.0*sqr(Et[m].a[2])));
            }
            else
            {
                Ext[m] = cos(Et[m].a[0]*t);
            }
        }
        else
        {
            Ext[m] = 1.0;
        }
        if (Ex[m].n > 0)
        {
            /* Convert the field strength from V/nm to MD-units */
            Ext[m] *= Ex[m].a[0]*FIELDFAC;
            for (i = start; (i < start+homenr); i++)
            {
                f[m] += charge*Ext[m];
            }
        }
        else
        {
            Ext[m] = 0;
        }
    }
    if (fp != NULL)
    {
        fprintf(fp, "%10g  %10g  %10g  %10g #FIELD\n", t,
                Ext[XX]/FIELDFAC, Ext[YY]/FIELDFAC, Ext[ZZ]/FIELDFAC);
    }
}

static void calc_virial(int start, int homenr, rvec x[], rvec f[],
                        tensor vir_part, t_graph *graph, matrix box,
                        t_nrnb *nrnb, const t_forcerec *fr, int ePBC)
{
    int    i;




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3