您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ xvgrclose函数代码示例

51自学网 2021-06-03 11:53:27
  C++
这篇教程C++ xvgrclose函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中xvgrclose函数的典型用法代码示例。如果您正苦于以下问题:C++ xvgrclose函数的具体用法?C++ xvgrclose怎么用?C++ xvgrclose使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

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

示例1: low_rmsd_dist

void low_rmsd_dist(const char *fn, real maxrms, int nn, real **mat,                   const gmx_output_env_t *oenv){    FILE   *fp;    int     i, j, *histo, x;    real    fac;    fac = 100/maxrms;    snew(histo, 101);    for (i = 0; i < nn; i++)    {        for (j = i+1; j < nn; j++)        {            x = static_cast<int>(fac*mat[i][j]+0.5);            if (x <= 100)            {                histo[x]++;            }        }    }    fp = xvgropen(fn, "RMS Distribution", "RMS (nm)", "a.u.", oenv);    for (i = 0; (i < 101); i++)    {        fprintf(fp, "%10g  %10d/n", i/fac, histo[i]);    }    xvgrclose(fp);    sfree(histo);}
开发者ID:rmcgibbo,项目名称:gromacs,代码行数:29,


示例2: histogram

void histogram(const char *distfile, real binwidth, int n, int nset, real **val,               const gmx_output_env_t *oenv){    FILE          *fp;    int            i, s;    double         minval, maxval;    int            nbin;    gmx_int64_t   *histo;    minval = val[0][0];    maxval = val[0][0];    for (s = 0; s < nset; s++)    {        for (i = 0; i < n; i++)        {            if (val[s][i] < minval)            {                minval = val[s][i];            }            else if (val[s][i] > maxval)            {                maxval = val[s][i];            }        }    }    minval = binwidth*std::floor(minval/binwidth);    maxval = binwidth*std::ceil(maxval/binwidth);    if (minval != 0)    {        minval -= binwidth;    }    maxval += binwidth;    nbin = static_cast<int>(((maxval - minval)/binwidth + 0.5) + 1);    fprintf(stderr, "Making distributions with %d bins/n", nbin);    snew(histo, nbin);    fp = xvgropen(distfile, "Distribution", "", "", oenv);    for (s = 0; s < nset; s++)    {        for (i = 0; i < nbin; i++)        {            histo[i] = 0;        }        for (i = 0; i < n; i++)        {            histo[static_cast<int>((val[s][i] - minval)/binwidth + 0.5)]++;        }        for (i = 0; i < nbin; i++)        {            fprintf(fp, " %g  %g/n", minval+i*binwidth, static_cast<double>(histo[i])/(n*binwidth));        }        if (s < nset-1)        {            fprintf(fp, "%s/n", output_env_get_print_xvgr_codes(oenv) ? "&" : "");        }    }    xvgrclose(fp);}
开发者ID:wopke,项目名称:gromacs,代码行数:59,


示例3: histogram

void histogram(const char *distfile, real binwidth, int n, int nset, real **val,               const output_env_t oenv){    FILE          *fp;    int            i, s;    double         min, max;    int            nbin;    gmx_int64_t   *histo;    min = val[0][0];    max = val[0][0];    for (s = 0; s < nset; s++)    {        for (i = 0; i < n; i++)        {            if (val[s][i] < min)            {                min = val[s][i];            }            else if (val[s][i] > max)            {                max = val[s][i];            }        }    }    min = binwidth*floor(min/binwidth);    max = binwidth*ceil(max/binwidth);    if (min != 0)    {        min -= binwidth;    }    max += binwidth;    nbin = (int)((max - min)/binwidth + 0.5) + 1;    fprintf(stderr, "Making distributions with %d bins/n", nbin);    snew(histo, nbin);    fp = xvgropen(distfile, "Distribution", "", "", oenv);    for (s = 0; s < nset; s++)    {        for (i = 0; i < nbin; i++)        {            histo[i] = 0;        }        for (i = 0; i < n; i++)        {            histo[(int)((val[s][i] - min)/binwidth + 0.5)]++;        }        for (i = 0; i < nbin; i++)        {            fprintf(fp, " %g  %g/n", min+i*binwidth, (double)histo[i]/(n*binwidth));        }        if (s < nset-1)        {            fprintf(fp, "%s/n", output_env_get_print_xvgr_codes(oenv) ? "&" : "");        }    }    xvgrclose(fp);}
开发者ID:furtheraway,项目名称:gromacs,代码行数:59,


示例4: do_ballistic

static void do_ballistic(const char *balFile, int nData,                         real *t, real **val, int nSet,                         real balTime, int nBalExp,                         const output_env_t oenv){    double     **ctd   = NULL, *td = NULL;    t_gemParams *GP    = init_gemParams(0, 0, t, nData, 0, 0, 0, balTime, nBalExp);    static char *leg[] = {"Ac'(t)"};    FILE        *fp;    int          i, set;    if (GP->ballistic/GP->tDelta >= GP->nExpFit*2+1)    {        snew(ctd, nSet);        snew(td,  nData);        fp = xvgropen(balFile, "Hydrogen Bond Autocorrelation", "Time (ps)", "C'(t)", oenv);        xvgr_legend(fp, asize(leg), (const char**)leg, oenv);        for (set = 0; set < nSet; set++)        {            snew(ctd[set], nData);            for (i = 0; i < nData; i++)            {                ctd[set][i] = (double)val[set][i];                if (set == 0)                {                    td[i] = (double)t[i];                }            }            takeAwayBallistic(ctd[set], td, nData, GP->ballistic, GP->nExpFit, GP->bDt);        }        for (i = 0; i < nData; i++)        {            fprintf(fp, "  %g", t[i]);            for (set = 0; set < nSet; set++)            {                fprintf(fp, "  %g", ctd[set][i]);            }            fprintf(fp, "/n");        }        for (set = 0; set < nSet; set++)        {            sfree(ctd[set]);        }        sfree(ctd);        sfree(td);        xvgrclose(fp);    }    else    {        printf("Number of data points is less than the number of parameters to fit/n."               "The system is underdetermined, hence no ballistic term can be found./n/n");    }}
开发者ID:furtheraway,项目名称:gromacs,代码行数:59,


示例5: ehisto

static void ehisto(const char *fh, int n, real **enerT, const output_env_t oenv){    FILE  *fp;    int    i, j, k, nbin, blength;    int   *bindex;    real  *T, bmin, bmax, bwidth;    int  **histo;    bmin =  1e8;    bmax = -1e8;    snew(bindex, n);    snew(T, n);    nbin = 0;    for (j = 1; (j < n); j++)    {        for (k = 0; (k < nbin); k++)        {            if (T[k] == enerT[1][j])            {                bindex[j] = k;                break;            }        }        if (k == nbin)        {            bindex[j] = nbin;            T[nbin]   = enerT[1][j];            nbin++;        }        bmin = std::min(enerT[0][j], bmin);        bmax = std::max(enerT[0][j], bmax);    }    bwidth  = 1.0;    blength = static_cast<int>((bmax - bmin)/bwidth + 2);    snew(histo, nbin);    for (i = 0; (i < nbin); i++)    {        snew(histo[i], blength);    }    for (j = 0; (j < n); j++)    {        k = static_cast<int>((enerT[0][j]-bmin)/bwidth);        histo[bindex[j]][k]++;    }    fp = xvgropen(fh, "Energy distribution", "E (kJ/mol)", "", oenv);    for (j = 0; (j < blength); j++)    {        fprintf(fp, "%8.3f", bmin+j*bwidth);        for (k = 0; (k < nbin); k++)        {            fprintf(fp, "  %6d", histo[k][j]);        }        fprintf(fp, "/n");    }    xvgrclose(fp);}
开发者ID:mpharrigan,项目名称:gromacs,代码行数:56,


示例6: plot_potential

void plot_potential(double *potential[], double *charge[], double *field[],                    const char *afile, const char *bfile, const char *cfile,                    int nslices, int nr_grps, const char *grpname[], double slWidth,                    const gmx_output_env_t *oenv){    FILE       *pot,     /* xvgr file with potential */    *cha,                /* xvgr file with charges   */    *fie;                /* xvgr files with fields   */    char       buf[256]; /* for xvgr title */    int        slice, n;    sprintf(buf, "Electrostatic Potential");    pot = xvgropen(afile, buf, "Box (nm)", "Potential (V)", oenv);    xvgr_legend(pot, nr_grps, grpname, oenv);    sprintf(buf, "Charge Distribution");    cha = xvgropen(bfile, buf, "Box (nm)", "Charge density (q/nm//S3//N)", oenv);    xvgr_legend(cha, nr_grps, grpname, oenv);    sprintf(buf, "Electric Field");    fie = xvgropen(cfile, buf, "Box (nm)", "Field (V/nm)", oenv);    xvgr_legend(fie, nr_grps, grpname, oenv);    for (slice = cb; slice < (nslices - ce); slice++)    {        fprintf(pot, "%20.16g  ", slice * slWidth);        fprintf(cha, "%20.16g  ", slice * slWidth);        fprintf(fie, "%20.16g  ", slice * slWidth);        for (n = 0; n < nr_grps; n++)        {            fprintf(pot, "   %20.16g", potential[n][slice]);            fprintf(fie, "   %20.16g", field[n][slice]/1e9); /* convert to V/nm */            fprintf(cha, "   %20.16g", charge[n][slice]);        }        fprintf(pot, "/n");        fprintf(cha, "/n");        fprintf(fie, "/n");    }    xvgrclose(pot);    xvgrclose(cha);    xvgrclose(fie);}
开发者ID:MichalKononenko,项目名称:gromacs,代码行数:43,


示例7: do_geminate

static void do_geminate(const char *gemFile, int nData,                        real *t, real **val, int nSet,                        const real D, const real rcut, const real balTime,                        const int nFitPoints, const real begFit, const real endFit,                        const output_env_t oenv){    double     **ctd = NULL, **ctdGem = NULL, *td = NULL;    t_gemParams *GP  = init_gemParams(rcut, D, t, nData, nFitPoints,                                      begFit, endFit, balTime, 1);    const char  *leg[] = {"Ac//sgem//N(t)"};    FILE        *fp;    int          i, set;    snew(ctd,    nSet);    snew(ctdGem, nSet);    snew(td,  nData);    fp = xvgropen(gemFile, "Hydrogen Bond Autocorrelation", "Time (ps)", "C'(t)", oenv);    xvgr_legend(fp, asize(leg), leg, oenv);    for (set = 0; set < nSet; set++)    {        snew(ctd[set],    nData);        snew(ctdGem[set], nData);        for (i = 0; i < nData; i++)        {            ctd[set][i] = (double)val[set][i];            if (set == 0)            {                td[i] = (double)t[i];            }        }        fitGemRecomb(ctd[set], td, &(ctd[set]), nData, GP);    }    for (i = 0; i < nData; i++)    {        fprintf(fp, "  %g", t[i]);        for (set = 0; set < nSet; set++)        {            fprintf(fp, "  %g", ctdGem[set][i]);        }        fprintf(fp, "/n");    }    for (set = 0; set < nSet; set++)    {        sfree(ctd[set]);        sfree(ctdGem[set]);    }    sfree(ctd);    sfree(ctdGem);    sfree(td);    xvgrclose(fp);}
开发者ID:furtheraway,项目名称:gromacs,代码行数:55,


示例8: calc_spectrum

static void calc_spectrum(int n, real c[], real dt, const char *fn,                          gmx_output_env_t *oenv, gmx_bool bRecip){    FILE     *fp;    gmx_fft_t fft;    int       i, status;    real     *data;    real      nu, omega, recip_fac;    snew(data, n*2);    for (i = 0; (i < n); i++)    {        data[i] = c[i];    }    if ((status = gmx_fft_init_1d_real(&fft, n, GMX_FFT_FLAG_NONE)) != 0)    {        gmx_fatal(FARGS, "Invalid fft return status %d", status);    }    if ((status = gmx_fft_1d_real(fft, GMX_FFT_REAL_TO_COMPLEX, data, data)) != 0)    {        gmx_fatal(FARGS, "Invalid fft return status %d", status);    }    fp = xvgropen(fn, "Vibrational Power Spectrum",                  bRecip ? "//f{12}w//f{4} (cm//S-1//N)" :                  "//f{12}n//f{4} (ps//S-1//N)",                  "a.u.", oenv);    /* This is difficult.     * The length of the ACF is dt (as passed to this routine).     * We pass the vacf with N time steps from 0 to dt.     * That means that after FFT we have lowest frequency = 1/dt     * then 1/(2 dt) etc. (this is the X-axis of the data after FFT).     * To convert to 1/cm we need to have to realize that     * E = hbar w = h nu = h c/lambda. We want to have reciprokal cm     * on the x-axis, that is 1/lambda, so we then have     * 1/lambda = nu/c. Since nu has units of 1/ps and c has gromacs units     * of nm/ps, we need to multiply by 1e7.     * The timestep between saving the trajectory is     * 1e7 is to convert nanometer to cm     */    recip_fac = bRecip ? (1e7/SPEED_OF_LIGHT) : 1.0;    for (i = 0; (i < n); i += 2)    {        nu    = i/(2*dt);        omega = nu*recip_fac;        /* Computing the square magnitude of a complex number, since this is a power         * spectrum.         */        fprintf(fp, "%10g  %10g/n", omega, gmx::square(data[i])+gmx::square(data[i+1]));    }    xvgrclose(fp);    gmx_fft_destroy(fft);    sfree(data);}
开发者ID:MrTheodor,项目名称:gromacs,代码行数:54,


示例9: print_histo

static void print_histo(const char *fn, int nhisto, int histo[], real binwidth,                        const gmx_output_env_t *oenv){    FILE *fp;    int   i;    fp = xvgropen(fn, "Velocity distribution", "V (nm/ps)", "arbitrary units",                  oenv);    for (i = 0; (i < nhisto); i++)    {        fprintf(fp, "%10.3e  %10d/n", i*binwidth, histo[i]);    }    xvgrclose(fp);}
开发者ID:MelroLeandro,项目名称:gromacs,代码行数:14,


示例10: save_data

extern void save_data (structure_factor_t *sft, const char *file, int ngrps,                       real start_q, real end_q, const output_env_t oenv){    FILE             *fp;    int               i, g = 0;    double           *tmp, polarization_factor, A;    structure_factor *sf = (structure_factor *)sft;    fp = xvgropen (file, "Scattering Intensity", "q (1/nm)",                   "Intensity (a.u.)", oenv);    snew (tmp, ngrps);    for (g = 0; g < ngrps; g++)    {        for (i = 0; i < sf->n_angles; i++)        {/* *          theta is half the angle between incoming and scattered vectors. * *          polar. fact. = 0.5*(1+cos^2(2*theta)) = 1 - 0.5 * sin^2(2*theta) * *          sin(theta) = q/(2k) := A  ->  sin^2(theta) = 4*A^2 (1-A^2) -> *          -> 0.5*(1+cos^2(2*theta)) = 1 - 2 A^2 (1-A^2) */            A                   = static_cast<double>(i * sf->ref_k) / (2.0 * sf->momentum);            polarization_factor = 1 - 2.0 * sqr (A) * (1 - sqr (A));            sf->F[g][i]        *= polarization_factor;        }    }    for (i = 0; i < sf->n_angles; i++)    {        if (i * sf->ref_k >= start_q && i * sf->ref_k <= end_q)        {            fprintf (fp, "%10.5f  ", i * sf->ref_k);            for (g = 0; g < ngrps; g++)            {                fprintf (fp, "  %10.5f ", (sf->F[g][i]) /( sf->total_n_atoms*                                                           sf->nSteps));            }            fprintf (fp, "/n");        }    }    xvgrclose (fp);}
开发者ID:carryer123,项目名称:gromacs,代码行数:49,


示例11: gmx_fio_fclose

voidAbstractPlotModule::Impl::closeFile(){    if (fp_ != NULL)    {        if (bPlain_)        {            gmx_fio_fclose(fp_);        }        else        {            xvgrclose(fp_);        }        fp_ = NULL;    }}
开发者ID:aalhossary,项目名称:gromacs-HREMD,代码行数:16,


示例12: write_xvg

void write_xvg(char *fn,char *title,int nx,int ny,real **y,char **leg){  FILE *fp;  int  i,j;    fp=xvgropen(fn,title,"X","Y");  if (leg)    xvgr_legend(fp,ny-1,leg);  for(i=0; (i<nx); i++) {    for(j=0; (j<ny); j++) {      fprintf(fp,"  %12.5e",y[j][i]);    }    fprintf(fp,"/n");  }  xvgrclose(fp);}
开发者ID:alejandrox1,项目名称:gromacs_flatbottom,代码行数:16,


示例13: dump_w

static void dump_w(output_env_t oenv, real beta){    FILE       *fp;    double      nu;    const char *leg[] = { "wCv", "wS", "wA", "wE" };    fp = xvgropen("w.xvg", "Fig. 1, Berens1983a", "//f{12}b//f{4}h//f{12}n",                  "w", oenv);    xvgr_legend(fp, asize(leg), leg, oenv);    for (nu = 1; (nu < 100); nu += 0.05)    {        fprintf(fp, "%10g  %10g  %10g  %10g  %10g/n", beta*PLANCK*nu,                wCsolid(nu, beta), wSsolid(nu, beta),                wAsolid(nu, beta), wEsolid(nu, beta));    }    xvgrclose(fp);}
开发者ID:alwanderer,项目名称:gromacs,代码行数:17,


示例14: print_one

void print_one(const output_env_t oenv, const char *base, const char *name,               const char *title, const char *ylabel, int nf, real time[],               real data[]){    FILE *fp;    char  buf[256], t2[256];    int   k;    sprintf(buf, "%s%s.xvg", base, name);    fprintf(stderr, "/rPrinting %s  ", buf);    sprintf(t2, "%s %s", title, name);    fp = xvgropen(buf, t2, "Time (ps)", ylabel, oenv);    for (k = 0; (k < nf); k++)    {        fprintf(fp, "%10g  %10g/n", time[k], data[k]);    }    xvgrclose(fp);}
开发者ID:FoldingAtHome,项目名称:gromacs,代码行数:18,


示例15: analyse_em_all

static void analyse_em_all(int npdb, t_pdbfile *pdbf[], const char *edocked,                           const char *efree, const gmx_output_env_t *oenv){    FILE *fp;    int   i;    for (bFreeSort = FALSE; (bFreeSort <= TRUE); bFreeSort++)    {        qsort(pdbf, npdb, sizeof(pdbf[0]), pdbf_comp);        fp = xvgropen(bFreeSort ? efree : edocked,                      etitles[bFreeSort], "()", "E (kJ/mol)", oenv);        for (i = 0; (i < npdb); i++)        {            fprintf(fp, "%12lf/n", bFreeSort ? pdbf[i]->efree : pdbf[i]->edocked);        }        xvgrclose(fp);    }}
开发者ID:pjohansson,项目名称:gromacs,代码行数:18,


示例16: corr_print

static void corr_print(t_corr *curr, gmx_bool bTen, const char *fn, const char *title,                       const char *yaxis,                       real msdtime, real beginfit, real endfit,                       real *DD, real *SigmaD, char *grpname[],                       const output_env_t oenv){    FILE *out;    int   i, j;    out = xvgropen(fn, title, output_env_get_xvgr_tlabel(oenv), yaxis, oenv);    if (DD)    {        fprintf(out, "# MSD gathered over %g %s with %d restarts/n",                msdtime, output_env_get_time_unit(oenv), curr->nrestart);        fprintf(out, "# Diffusion constants fitted from time %g to %g %s/n",                beginfit, endfit, output_env_get_time_unit(oenv));        for (i = 0; i < curr->ngrp; i++)        {            fprintf(out, "# D[%10s] = %.4f (+/- %.4f) (1e-5 cm^2/s)/n",                    grpname[i], DD[i], SigmaD[i]);        }    }    for (i = 0; i < curr->nframes; i++)    {        fprintf(out, "%10g", output_env_conv_time(oenv, curr->time[i]));        for (j = 0; j < curr->ngrp; j++)        {            fprintf(out, "  %10g", curr->data[j][i]);            if (bTen)            {                fprintf(out, " %10g %10g %10g %10g %10g %10g",                        curr->datam[j][i][XX][XX],                        curr->datam[j][i][YY][YY],                        curr->datam[j][i][ZZ][ZZ],                        curr->datam[j][i][YY][XX],                        curr->datam[j][i][ZZ][XX],                        curr->datam[j][i][ZZ][YY]);            }        }        fprintf(out, "/n");    }    xvgrclose(out);}
开发者ID:carryer123,项目名称:gromacs,代码行数:43,


示例17: dump_fy

static void dump_fy(output_env_t oenv, real toler){    FILE       *fp;    double      Delta, f, y, DD;    const char *leg[] = { "f", "fy", "y" };    DD = pow(10.0, 0.125);    fp = xvgropen("fy.xvg", "Fig. 2, Lin2003a", "Delta", "y or fy", oenv);    xvgr_legend(fp, asize(leg), leg, oenv);    fprintf(fp, "@    world 1e-05, 0, 1000, 1/n");    fprintf(fp, "@    xaxes scale Logarithmic/n");    for (Delta = 1e-5; (Delta <= 1000); Delta *= DD)    {        f = calc_fluidicity(Delta, toler);        y = calc_y(f, Delta, toler);        fprintf(fp, "%10g  %10g  %10g  %10g/n", Delta, f, f*y, y);    }    xvgrclose(fp);}
开发者ID:alwanderer,项目名称:gromacs,代码行数:19,


示例18: correlate_aniso

static void correlate_aniso(const char *fn, t_atoms *ref, t_atoms *calc,                            const gmx_output_env_t *oenv){    FILE *fp;    int   i, j;    fp = xvgropen(fn, "Correlation between X-Ray and Computed Uij", "X-Ray",                  "Computed", oenv);    for (i = 0; (i < ref->nr); i++)    {        if (ref->pdbinfo[i].bAnisotropic)        {            for (j = U11; (j <= U23); j++)            {                fprintf(fp, "%10d  %10d/n", ref->pdbinfo[i].uij[j], calc->pdbinfo[i].uij[j]);            }        }    }    xvgrclose(fp);}
开发者ID:HITS-MBM,项目名称:gromacs-fda,代码行数:20,


示例19: plot_coscont

static void plot_coscont(const char *ccfile, int n, int nset, real **val,                         const gmx_output_env_t *oenv){    FILE *fp;    int   s;    real  cc;    fp = xvgropen(ccfile, "Cosine content", "set / half periods", "cosine content",                  oenv);    for (s = 0; s < nset; s++)    {        cc = cosine_content(s+1, n, val[s]);        fprintf(fp, " %d %g/n", s+1, cc);        fprintf(stdout, "Cosine content of set %d with %.1f periods: %g/n",                s+1, 0.5*(s+1), cc);    }    fprintf(stdout, "/n");    xvgrclose(fp);}
开发者ID:wopke,项目名称:gromacs,代码行数:21,


示例20: write_xvg

void write_xvg(const char *fn, const char *title, int nx, int ny, real **y,               const char **leg, const gmx_output_env_t *oenv){    FILE *fp;    int   i, j;    fp = xvgropen(fn, title, "X", "Y", oenv);    if (leg)    {        xvgr_legend(fp, ny-1, leg, oenv);    }    for (i = 0; (i < nx); i++)    {        for (j = 0; (j < ny); j++)        {            fprintf(fp, "  %12.5e", y[j][i]);        }        fprintf(fp, "/n");    }    xvgrclose(fp);}
开发者ID:rmcgibbo,项目名称:gromacs,代码行数:21,


示例21: h2order_plot

void h2order_plot(rvec dipole[], real order[], const char *afile,                  int nslices, real slWidth, const gmx_output_env_t *oenv){    FILE       *ord;              /* xvgr files with order parameters  */    int         slice;            /* loop index     */    char        buf[256];         /* for xvgr title */    real        factor;           /* conversion to Debye from electron*nm */    /*  factor = 1e-9*1.60217733e-19/3.336e-30 */    factor = 1.60217733/3.336e-2;    fprintf(stderr, "%d slices/n", nslices);    sprintf(buf, "Water orientation with respect to normal");    ord = xvgropen(afile, buf,                   "box (nm)", "mu_x, mu_y, mu_z (D), cosine with normal", oenv);    for (slice = 0; slice < nslices; slice++)    {        fprintf(ord, "%8.3f %8.3f %8.3f %8.3f %e/n", slWidth*slice,                factor*dipole[slice][XX], factor*dipole[slice][YY],                factor*dipole[slice][ZZ], order[slice]);    }    xvgrclose(ord);}
开发者ID:tanigawa,项目名称:gromacs,代码行数:24,


示例22: gmx_rmsf

//.........这里部分代码省略.........        print_dir(stdout, Uaver);        fp = gmx_ffopen(dirfn, "w");        print_dir(fp, Uaver);        gmx_ffclose(fp);    }    for (i = 0; i < isize; i++)    {        sfree(U[i]);    }    sfree(U);    /* Write RMSF output */    if (bReadPDB)    {        bfac = 8.0*M_PI*M_PI/3.0*100;        fp   = xvgropen(ftp2fn(efXVG, NFILE, fnm), "B-Factors",                        label, "(A//b//S//So//N//S2//N)", oenv);        xvgr_legend(fp, 2, leg, oenv);        for (i = 0; (i < isize); i++)        {            if (!bRes || i+1 == isize ||                top.atoms.atom[index[i]].resind != top.atoms.atom[index[i+1]].resind)            {                resind    = top.atoms.atom[index[i]].resind;                pdb_bfac  = find_pdb_bfac(pdbatoms, &top.atoms.resinfo[resind],                                          *(top.atoms.atomname[index[i]]));                fprintf(fp, "%5d  %10.5f  %10.5f/n",                        bRes ? top.atoms.resinfo[top.atoms.atom[index[i]].resind].nr : index[i]+1, rmsf[i]*bfac,                        pdb_bfac);            }        }        xvgrclose(fp);    }    else    {        fp = xvgropen(ftp2fn(efXVG, NFILE, fnm), "RMS fluctuation", label, "(nm)", oenv);        for (i = 0; i < isize; i++)        {            if (!bRes || i+1 == isize ||                top.atoms.atom[index[i]].resind != top.atoms.atom[index[i+1]].resind)            {                fprintf(fp, "%5d %8.4f/n",                        bRes ? top.atoms.resinfo[top.atoms.atom[index[i]].resind].nr : index[i]+1, std::sqrt(rmsf[i]));            }        }        xvgrclose(fp);    }    for (i = 0; i < isize; i++)    {        pdbatoms->pdbinfo[index[i]].bfac = 800*M_PI*M_PI/3.0*rmsf[i];    }    if (devfn)    {        for (i = 0; i < isize; i++)        {            rmsf[i] = (rmsd_x[i][XX]+rmsd_x[i][YY]+rmsd_x[i][ZZ])/count;        }        if (bRes)        {            average_residues(rmsf, nullptr, 0, isize, index, w_rls, &top.atoms);        }        /* Write RMSD output */
开发者ID:HITS-MBM,项目名称:gromacs-fda,代码行数:67,


示例23: process_tcaf

static void process_tcaf(int nframes, real dt, int nkc, real **tc, rvec *kfac,                         real rho, real wt, const char *fn_trans,                         const char *fn_tca, const char *fn_tc,                         const char *fn_tcf, const char *fn_cub,                         const char *fn_vk, const gmx_output_env_t *oenv){    FILE  *fp, *fp_vk, *fp_cub = NULL;    int    nk, ntc;    real **tcaf, **tcafc = NULL, eta, *sig;    int    i, j, k, kc;    int    ncorr;    double fitparms[3];    nk  = kset_c[nkc];    ntc = nk*NPK;    if (fn_trans)    {        fp = xvgropen(fn_trans, "Transverse Current", "Time (ps)", "TC (nm/ps)",                      oenv);        for (i = 0; i < nframes; i++)        {            fprintf(fp, "%g", i*dt);            for (j = 0; j < ntc; j++)            {                fprintf(fp, " %g", tc[j][i]);            }            fprintf(fp, "/n");        }        xvgrclose(fp);        do_view(oenv, fn_trans, "-nxy");    }    ncorr = (nframes+1)/2;    if (ncorr > static_cast<int>(5*wt/dt+0.5))    {        ncorr = static_cast<int>(5*wt/dt+0.5)+1;    }    snew(tcaf, nk);    for (k = 0; k < nk; k++)    {        snew(tcaf[k], ncorr);    }    if (fn_cub)    {        snew(tcafc, nkc);        for (k = 0; k < nkc; k++)        {            snew(tcafc[k], ncorr);        }    }    snew(sig, ncorr);    for (i = 0; i < ncorr; i++)    {        sig[i] = std::exp(0.5*i*dt/wt);    }    low_do_autocorr(fn_tca, oenv, "Transverse Current Autocorrelation Functions",                    nframes, ntc, ncorr, tc, dt, eacNormal,                    1, FALSE, FALSE, FALSE, 0, 0, 0);    do_view(oenv, fn_tca, "-nxy");    fp = xvgropen(fn_tc, "Transverse Current Autocorrelation Functions",                  "Time (ps)", "TCAF", oenv);    for (i = 0; i < ncorr; i++)    {        kc = 0;        fprintf(fp, "%g", i*dt);        for (k = 0; k < nk; k++)        {            for (j = 0; j < NPK; j++)            {                tcaf[k][i] += tc[NPK*k+j][i];            }            if (fn_cub)            {                for (j = 0; j < NPK; j++)                {                    tcafc[kc][i] += tc[NPK*k+j][i];                }            }            if (i == 0)            {                fprintf(fp, " %g", 1.0);            }            else            {                tcaf[k][i] /= tcaf[k][0];                fprintf(fp, " %g", tcaf[k][i]);            }            if (k+1 == kset_c[kc+1])            {                kc++;            }        }        fprintf(fp, "/n");    }    xvgrclose(fp);    do_view(oenv, fn_tc, "-nxy");//.........这里部分代码省略.........
开发者ID:MelroLeandro,项目名称:gromacs,代码行数:101,


示例24: gmx_polystat

//.........这里部分代码省略.........        sum_gyro_tot += sum_gyro;        if (outp)        {            i = -1;            for (j = 0; j < nat_min/2; j += 2)            {                sum_inp[j] /= ninp[j];                if (i == -1 && sum_inp[j] <= std::exp(-1.0))                {                    i = j;                }            }            if (i == -1)            {                pers = j;            }            else            {                /* Do linear interpolation on a log scale */                pers = i - 2.0                    + 2.0*(std::log(sum_inp[i-2]) + 1.0)/(std::log(sum_inp[i-2]) - std::log(sum_inp[i]));            }            fprintf(outp, "%10.3f %8.4f/n", t*output_env_get_time_factor(oenv), pers);            sum_pers_tot += pers;        }        frame++;    }    while (read_next_x(oenv, status, &t, x, box));    gmx_rmpbc_done(gpbc);    close_trx(status);    xvgrclose(out);    if (outv)    {        xvgrclose(outv);    }    if (outp)    {        xvgrclose(outp);    }    sum_eed2_tot /= frame;    sum_gyro_tot /= frame;    sum_pers_tot /= frame;    fprintf(stdout, "/nAverage end to end distance: %.3f (nm)/n",            std::sqrt(sum_eed2_tot));    fprintf(stdout, "/nAverage radius of gyration:  %.3f (nm)/n",            std::sqrt(sum_gyro_tot));    if (opt2bSet("-p", NFILE, fnm))    {        fprintf(stdout, "/nAverage persistence length:  %.2f bonds/n",                sum_pers_tot);    }    /* Handle printing of internal distances. */    if (outi)    {        if (output_env_get_print_xvgr_codes(oenv))        {            fprintf(outi, "@    xaxes scale Logarithmic/n");        }        ymax = -1;        ymin = 1e300;        j    = index[molind[1]-1] - index[molind[0]]; /* Polymer length -1. */        for (i = 0; i < j; i++)        {            intd[i] /= (i + 1) * frame * nmol;            if (intd[i] > ymax)            {                ymax = intd[i];            }            if (intd[i] < ymin)            {                ymin = intd[i];            }        }        xvgr_world(outi, 1, ymin, j, ymax, oenv);        for (i = 0; i < j; i++)        {            fprintf(outi, "%d  %8.4f/n", i+1, intd[i]);        }        xvgrclose(outi);    }    do_view(oenv, opt2fn("-o", NFILE, fnm), "-nxy");    if (opt2bSet("-v", NFILE, fnm))    {        do_view(oenv, opt2fn("-v", NFILE, fnm), "-nxy");    }    if (opt2bSet("-p", NFILE, fnm))    {        do_view(oenv, opt2fn("-p", NFILE, fnm), "-nxy");    }    return 0;}
开发者ID:HITS-MBM,项目名称:gromacs-fda,代码行数:101,


示例25: gmx_dyecoupl

//.........这里部分代码省略.........                }                if (bDatout)                {                    fprintf(datfp, "%12.7f %12.7f %12.7f/n", fr.time, R, kappa2);                }                if (bRhistout)                {                    rvalues[rkcount-1] = R;                    if (rkcount % allocblock == 0)                    {                        srenew(rvalues, allocblock*(rblocksallocated+1));                        rblocksallocated += 1;                    }                }                if (bKhistout)                {                    kappa2values[rkcount-1] = kappa2;                    if (rkcount % allocblock == 0)                    {                        srenew(kappa2values, allocblock*(kblocksallocated+1));                        kblocksallocated += 1;                    }                }                bHaveNextFrame = read_next_frame(oenv, status, &fr);            }            while (bHaveNextFrame);            if (bRKout)            {                xvgrclose(rkfp);            }            if (bDatout)            {                gmx_ffclose(datfp);            }            if (bInstEffout)            {                xvgrclose(iefp);            }            if (bRhistout)            {                printf("Writing R-Histogram/n");                rmin = rvalues[0];                rmax = rvalues[0];                for (i = 1; i < rkcount; i++)                {                    if (rvalues[i] < rmin)                    {                        rmin = rvalues[i];                    }                    else if (rvalues[i] > rmax)                    {                        rmax = rvalues[i];                    }                }                rmin -= histexpand;                rmax += histexpand;
开发者ID:rmcgibbo,项目名称:gromacs,代码行数:66,


示例26: gmx_dos

//.........这里部分代码省略.........        printf("Going to do %d fourier transforms of length %d. Hang on./n",               gnx, nframes);    }    low_do_autocorr(NULL, oenv, NULL, nframes, gnx, nframes, c1, dt, eacNormal, 0, FALSE,                    FALSE, FALSE, -1, -1, 0, 0);    snew(dos, DOS_NR);    for (j = 0; (j < DOS_NR); j++)    {        snew(dos[j], nframes+4);    }    if (bVerbose)    {        printf("Going to merge the ACFs into the mass-weighted and plain ACF/n");    }    for (i = 0; (i < gnx); i += DIM)    {        mi = top.atoms.atom[i/DIM].m;        for (j = 0; (j < nframes/2); j++)        {            c1j            = (c1[i+XX][j] + c1[i+YY][j] + c1[i+ZZ][j]);            dos[VACF][j]  += c1j/Natom;            dos[MVACF][j] += mi*c1j;        }    }    fp = xvgropen(opt2fn("-vacf", NFILE, fnm), "Velocity ACF",                  "Time (ps)", "C(t)", oenv);    snew(tt, nframes/2);    for (j = 0; (j < nframes/2); j++)    {        tt[j] = j*dt;        fprintf(fp, "%10g  %10g/n", tt[j], dos[VACF][j]);    }    xvgrclose(fp);    fp = xvgropen(opt2fn("-mvacf", NFILE, fnm), "Mass-weighted velocity ACF",                  "Time (ps)", "C(t)", oenv);    for (j = 0; (j < nframes/2); j++)    {        fprintf(fp, "%10g  %10g/n", tt[j], dos[MVACF][j]);    }    xvgrclose(fp);    if ((fftcode = gmx_fft_init_1d_real(&fft, nframes/2,                                        GMX_FFT_FLAG_NONE)) != 0)    {        gmx_fatal(FARGS, "gmx_fft_init_1d_real returned %d", fftcode);    }    if ((fftcode = gmx_fft_1d_real(fft, GMX_FFT_REAL_TO_COMPLEX,                                   (void *)dos[MVACF], (void *)dos[DOS])) != 0)    {        gmx_fatal(FARGS, "gmx_fft_1d_real returned %d", fftcode);    }    /* First compute the DoS */    /* Magic factor of 8 included now. */    bfac = 8*dt*beta/2;    dos2 = 0;    snew(nu, nframes/4);    for (j = 0; (j < nframes/4); j++)    {        nu[j] = 2*j/(t1-t0);        dos2 += sqr(dos[DOS][2*j]) + sqr(dos[DOS][2*j+1]);        if (bAbsolute)        {            dos[DOS][j] = bfac*sqrt(sqr(dos[DOS][2*j]) + sqr(dos[DOS][2*j+1]));        }
开发者ID:alwanderer,项目名称:gromacs,代码行数:67,


示例27: do_lmfit

//.........这里部分代码省略.........            j++;        }    }    nfitpnts = j;    integral = 0;    if (nfitpnts < effnNparams(eFitFn))    {        fprintf(stderr, "Not enough (%d) data points for fitting, dt = %g!/n",                nfitpnts, dt);    }    else    {        gmx_bool bSuccess;        if (bVerbose)        {            print_chi2_params(stdout, eFitFn, fitparms, "initial", nfitpnts, x, y);        }        initiate_fit_params(eFitFn, fitparms);        bSuccess = lmfit_exp(nfitpnts, x, y, dy, fitparms, bVerbose, eFitFn, fix);        extract_fit_params(eFitFn, fitparms);        if (!bSuccess)        {            fprintf(stderr, "Fit failed!/n");        }        else        {            if (bVerbose)            {                print_chi2_params(stdout, eFitFn, fitparms, "final", nfitpnts, x, y);            }            switch (eFitFn)            {                case effnEXP1:                    integral = fitparms[0]*myexp(begintimefit, 1,  fitparms[0]);                    break;                case effnEXP2:                    integral = fitparms[0]*myexp(begintimefit, fitparms[1],  fitparms[0]);                    break;                case effnEXPEXP:                    integral = (fitparms[0]*myexp(begintimefit, fitparms[1],  fitparms[0]) +                                fitparms[2]*myexp(begintimefit, 1-fitparms[1], fitparms[2]));                    break;                case effnEXP5:                case effnEXP7:                case effnEXP9:                    integral = 0;                    for (i = 0; (i < (effnNparams(eFitFn)-1)/2); i++)                    {                        integral += fitparms[2*i]*myexp(begintimefit, fitparms[2*i+1], fitparms[2*i]);                    }                    break;                default:                    /* Do numerical integration */                    integral = 0;                    for (i = 0; (i < nfitpnts-1); i++)                    {                        double y0 = lmcurves[eFitFn](x[i], fitparms);                        double y1 = lmcurves[eFitFn](x[i+1], fitparms);                        integral += (x[i+1]-x[i])*(y1+y0)*0.5;                    }                    break;            }            if (bVerbose)            {                printf("FIT: Integral of fitted function: %g/n", integral);                if ((effnEXP5 == eFitFn) || (effnEXP7 == eFitFn) || (effnEXP9 == eFitFn))                {                    printf("FIT: Note that the constant term is not taken into account when computing integral./n");                }            }            /* Generate debug output */            if (NULL != fn_fitted)            {                fp = xvgropen(fn_fitted, "Data + Fit", "Time (ps)",                              "Data (t)", oenv);                for (i = 0; (i < effnNparams(eFitFn)); i++)                {                    fprintf(fp, "# fitparms[%d] = %g/n", i, fitparms[i]);                }                for (j = 0; (j < nfitpnts); j++)                {                    real ttt = x0 ? x0[j] : dt*j;                    fprintf(fp, "%10.5e  %10.5e  %10.5e/n",                            x[j], y[j], (lmcurves[eFitFn])(ttt, fitparms));                }                xvgrclose(fp);            }        }    }    sfree(x);    sfree(y);    sfree(dy);    return integral;}
开发者ID:MrTheodor,项目名称:gromacs,代码行数:101,


示例28: do_lmfit

//.........这里部分代码省略.........                dy[j] = 1.0e-7;            }            else            {                dy[j] = sig[i];            }            if (debug)            {                fprintf(debug, "j= %d, i= %d, x= %g, y= %g, dy= %g/n",                        j, i, x[j], y[j], dy[j]);            }            j++;        }    }    nfitpnts = j;    integral = 0;    if (nfitpnts < nparm)    {        fprintf(stderr, "Not enough data points for fitting!/n");    }    else    {        snew(parm, nparm);        snew(dparm, nparm);        if (fitparms)        {            for (i = 0; (i < nparm); i++)            {                parm[i] = fitparms[i];            }        }        if (!lmfit_exp(nfitpnts, x, y, dy, ftol, parm, dparm, bVerbose, eFitFn, fix))        {            fprintf(stderr, "Fit failed!/n");        }        else if (nparm <= 3)        {            /* Compute the integral from begintimefit */            if (nparm == 3)            {                integral = (parm[0]*myexp(begintimefit, parm[1],  parm[0]) +                            parm[2]*myexp(begintimefit, 1-parm[1], parm[2]));            }            else if (nparm == 2)            {                integral = parm[0]*myexp(begintimefit, parm[1],  parm[0]);            }            else if (nparm == 1)            {                integral = parm[0]*myexp(begintimefit, 1,  parm[0]);            }            else            {                gmx_fatal(FARGS, "nparm = %d in file %s, line %d",                          nparm, __FILE__, __LINE__);            }            /* Generate THE output */            if (bVerbose)            {                fprintf(stderr, "FIT: # points used in fit is: %d/n", nfitpnts);                fprintf(stderr, "FIT: %21s%21s%21s/n",                        "parm0     ", "parm1 (ps)   ", "parm2 (ps)    ");                fprintf(stderr, "FIT: ------------------------------------------------------------/n");                fprintf(stderr, "FIT: %8.3g +/- %8.3g%9.4g +/- %8.3g%8.3g +/- %8.3g/n",                        parm[0], dparm[0], parm[1], dparm[1], parm[2], dparm[2]);                fprintf(stderr, "FIT: Integral (calc with fitted function) from %g ps to inf. is: %g/n",                        begintimefit, integral);                sprintf(buf, "test%d.xvg", nfitpnts);                fp = xvgropen(buf, "C(t) + Fit to C(t)", "Time (ps)", "C(t)", oenv);                fprintf(fp, "# parm0 = %g, parm1 = %g, parm2 = %g/n",                        parm[0], parm[1], parm[2]);                for (j = 0; (j < nfitpnts); j++)                {                    ttt = x0 ? x0[j] : dt*j;                    fprintf(fp, "%10.5e  %10.5e  %10.5e/n",                            ttt, c1[j], fit_function(eFitFn, parm, ttt));                }                xvgrclose(fp);            }        }        if (fitparms)        {            for (i = 0; (i < nparm); i++)            {                fitparms[i] = parm[i];            }        }        sfree(parm);        sfree(dparm);    }    sfree(x);    sfree(y);    sfree(dy);    return integral;}
开发者ID:rbharath,项目名称:gromacs,代码行数:101,


示例29: gmx_sans

//.........这里部分代码省略.........        }        pr->grn      = prframecurrent->grn;        pr->binwidth = prframecurrent->binwidth;        /* summ up gr and fill r */        for (i = 0; i < prframecurrent->grn; i++)        {            pr->gr[i] += prframecurrent->gr[i];            pr->r[i]   = prframecurrent->r[i];        }        /* normalize histo */        normalize_probability(prframecurrent->grn, prframecurrent->gr);        /* convert p(r) to sq */        sqframecurrent = convert_histogram_to_intensity_curve(prframecurrent, start_q, end_q, q_step);        /* print frame data if needed */        if (opt2fn_null("-prframe", NFILE, fnm))        {            snew(hdr, 25);            snew(suffix, GMX_PATH_MAX);            /* prepare header */            sprintf(hdr, "g(r), t = %f", t);            /* prepare output filename */            fnmdup = dup_tfn(NFILE, fnm);            sprintf(suffix, "-t%.2f", t);            add_suffix_to_output_names(fnmdup, NFILE, suffix);            fp = xvgropen(opt2fn_null("-prframe", NFILE, fnmdup), hdr, "Distance (nm)", "Probability", oenv);            for (i = 0; i < prframecurrent->grn; i++)            {                fprintf(fp, "%10.6f%10.6f/n", prframecurrent->r[i], prframecurrent->gr[i]);            }            done_filenms(NFILE, fnmdup);            fclose(fp);            sfree(hdr);            sfree(suffix);            sfree(fnmdup);        }        if (opt2fn_null("-sqframe", NFILE, fnm))        {            snew(hdr, 25);            snew(suffix, GMX_PATH_MAX);            /* prepare header */            sprintf(hdr, "I(q), t = %f", t);            /* prepare output filename */            fnmdup = dup_tfn(NFILE, fnm);            sprintf(suffix, "-t%.2f", t);            add_suffix_to_output_names(fnmdup, NFILE, suffix);            fp = xvgropen(opt2fn_null("-sqframe", NFILE, fnmdup), hdr, "q (nm^-1)", "s(q)/s(0)", oenv);            for (i = 0; i < sqframecurrent->qn; i++)            {                fprintf(fp, "%10.6f%10.6f/n", sqframecurrent->q[i], sqframecurrent->s[i]);            }            done_filenms(NFILE, fnmdup);            fclose(fp);            sfree(hdr);            sfree(suffix);            sfree(fnmdup);        }        /* free pr structure */        sfree(prframecurrent->gr);        sfree(prframecurrent->r);        sfree(prframecurrent);        /* free sq structure */        sfree(sqframecurrent->q);        sfree(sqframecurrent->s);        sfree(sqframecurrent);    }    while (read_next_x(oenv, status, &t, x, box));    close_trj(status);    /* normalize histo */    normalize_probability(pr->grn, pr->gr);    sq = convert_histogram_to_intensity_curve(pr, start_q, end_q, q_step);    /* prepare pr.xvg */    fp = xvgropen(opt2fn_null("-pr", NFILE, fnm), "G(r)", "Distance (nm)", "Probability", oenv);    for (i = 0; i < pr->grn; i++)    {        fprintf(fp, "%10.6f%10.6f/n", pr->r[i], pr->gr[i]);    }    xvgrclose(fp);    /* prepare sq.xvg */    fp = xvgropen(opt2fn_null("-sq", NFILE, fnm), "I(q)", "q (nm^-1)", "s(q)/s(0)", oenv);    for (i = 0; i < sq->qn; i++)    {        fprintf(fp, "%10.6f%10.6f/n", sq->q[i], sq->s[i]);    }    xvgrclose(fp);    /*     * Clean up memory     */    sfree(pr->gr);    sfree(pr->r);    sfree(pr);    sfree(sq->q);    sfree(sq->s);    sfree(sq);    please_cite(stdout, "Garmay2012");    return 0;}
开发者ID:ElsevierSoftwareX,项目名称:SOFTX-D-15-00003,代码行数:101,


示例30: gmx_mdmat

//.........这里部分代码省略.........    trxnat = read_first_x(oenv, &status, ftp2fn(efTRX, NFILE, fnm), &t, &x, box);    nframes = 0;    rlo.r = 1.0, rlo.g = 1.0, rlo.b = 1.0;    rhi.r = 0.0, rhi.g = 0.0, rhi.b = 0.0;    gpbc = gmx_rmpbc_init(&top.idef, ePBC, trxnat);    if (bFrames)    {        out = opt2FILE("-frames", NFILE, fnm, "w");    }    do    {        gmx_rmpbc(gpbc, trxnat, box, x);        nframes++;        calc_mat(nres, natoms, rndx, x, index, truncate, mdmat, nmat, ePBC, box);        for (i = 0; (i < nres); i++)        {            for (j = 0; (j < natoms); j++)            {                if (nmat[i][j])                {                    totnmat[i][j]++;                }            }        }        for (i = 0; (i < nres); i++)        {            for (j = 0; (j < nres); j++)            {                totmdmat[i][j] += mdmat[i][j];            }        }        if (bFrames)        {            sprintf(label, "t=%.0f ps", t);            write_xpm(out, 0, label, "Distance (nm)", "Residue Index", "Residue Index",                      nres, nres, resnr, resnr, mdmat, 0, truncate, rlo, rhi, &nlevels);        }    }    while (read_next_x(oenv, status, &t, x, box));    fprintf(stderr, "/n");    close_trj(status);    gmx_rmpbc_done(gpbc);    if (bFrames)    {        gmx_ffclose(out);    }    fprintf(stderr, "Processed %d frames/n", nframes);    for (i = 0; (i < nres); i++)    {        for (j = 0; (j < nres); j++)        {            totmdmat[i][j] /= nframes;        }    }    write_xpm(opt2FILE("-mean", NFILE, fnm, "w"), 0, "Mean smallest distance",              "Distance (nm)", "Residue Index", "Residue Index",              nres, nres, resnr, resnr, totmdmat, 0, truncate, rlo, rhi, &nlevels);    if (bCalcN)    {        char **legend;        snew(legend, 5);        for (i = 0; i < 5; i++)        {            snew(legend[i], STRLEN);        }        tot_nmat(nres, natoms, nframes, totnmat, tot_n, mean_n);        fp = xvgropen(ftp2fn(efXVG, NFILE, fnm),                      "Increase in number of contacts", "Residue", "Ratio", oenv);        sprintf(legend[0], "Total/mean");        sprintf(legend[1], "Total");        sprintf(legend[2], "Mean");        sprintf(legend[3], "# atoms");        sprintf(legend[4], "Mean/# atoms");        xvgr_legend(fp, 5, (const char**)legend, oenv);        for (i = 0; (i < nres); i++)        {            if (mean_n[i] == 0)            {                ratio = 1;            }            else            {                ratio = tot_n[i]/mean_n[i];            }            fprintf(fp, "%3d  %8.3f  %3d  %8.3f  %3d  %8.3f/n",                    i+1, ratio, tot_n[i], mean_n[i], natm[i], mean_n[i]/natm[i]);        }        xvgrclose(fp);    }    return 0;}
开发者ID:FoldingAtHome,项目名称:gromacs,代码行数:101,



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


C++ xvgropen函数代码示例
C++ xvgr_legend函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。