⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cc-new

📁 c++编写的并行拉马克遗传算法的程序。实现分析对接程序
💻 CC-NEW
📖 第 1 页 / 共 5 页
字号:
	    nval = retval;	}        for ( i=0; i<nval; i++ ) {	    pr( logFile, "\tInitial torsion %2d = %7.2f deg\n", (i+1), sInit.tor[i] ); /* sInit.tor is in degrees */	    /* Convert sInit.tor[i] into radians */	    mol.S.tor[i] = sInit.tor[i] = Rad( sInit.tor[i] ); /* sInit.tor is now in radians  Added:05-01-95 */        }        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_TSTEP:        /*        **  tstep        **  Translation_step,        */        retval = (int)sscanf( line, "%*s %f %f", &trnStep0, &trnStepFinal );        if (retval == 0) {	    pr( logFile, "Could not read any arguments!\n" );        } else if (retval == EOF) {	    pr( logFile, "End of file encountered!\n");        } else if (retval > 0) {	    pr( logFile, "Initial cycle, maximum translation step = +/- %-.1f Angstroms\n", trnStep0);        }        if (retval == 2) {	    B_CalcTrnRF = TRUE;	    pr( logFile, "Final cycle,   maximum translation step = +/- %-.1f Angstroms\n", trnStepFinal);	    pr( logFile, "Reduction factor will be calculated when number of cycles has been read in.\n");        }        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_QSTEP:        /*        **  qstep        **  Quaternion_step,        */        retval = (int)sscanf( line, "%*s %f %f", &qtwStep0, &qtwStepFinal );        if (retval == 0) {	    pr( logFile, "Could not read any arguments!\n" );        } else if (retval == EOF) {	    pr( logFile, "End of file encountered!\n");        } else if (retval > 0) {	    pr( logFile, "Initial cycle, maximum quaternion angle step = +/- %-.1f deg\n", qtwStep0);	    /* convert to radians */	    qtwStep0 = Rad( qtwStep0 );        }	if (retval == 2) {	    B_CalcQtwRF = TRUE;	    pr( logFile, "Final cycle,   maximum quaternion angle step = +/- %-.1f deg\n", qtwStepFinal);	    pr( logFile, "Reduction factor will be calculated when number of cycles has been read in.\n");	    /* convert to radians */	    qtwStepFinal = Rad( qtwStepFinal );	}        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_DSTEP:        /*          **  dstep        **  Torsion_step,        */        retval = (int)sscanf( line, "%*s %f %f", &torStep0, &torStepFinal );        if (retval == 0) {	    pr( logFile, "Could not read any arguments!\n" );        } else if (retval == EOF) {	    pr( logFile, "End of file encountered!\n");        } else if (retval > 0) {	    pr( logFile, "Initial cycle, maximum torsion angle step = +/- %-.1f deg\n", torStep0);	    /* convert to radians */	    torStep0 = Rad( torStep0 );        }	if (retval == 2) {	    B_CalcTorRF = TRUE;	    pr( logFile, "Final cycle,   maximum torsion angle step = +/- %-.1f deg\n", torStepFinal);	    pr( logFile, "Reduction factor will be calculated when number of cycles has been read in.\n");	    /* convert to radians */	    torStepFinal = Rad( torStepFinal );	}        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_TRNRF:        /*        **  trnrf        **  Translation reduction factor,        */        (void) sscanf( line, "%*s %f", &trnFac );        pr( logFile, "Reduction factor for translations =\t%-.3f /cycle\n", trnFac );        B_trnReduc = (trnFac != 1.);               (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_QUARF:        /*        **  quarf        **  Quaternion reduction factor,        */        (void) sscanf( line, "%*s %f", &qtwFac );        pr( logFile, "Reduction factor for quaternion angle =\t%-.3f /cycle\n", qtwFac );        B_qtwReduc = (qtwFac != 1.);        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_DIHRF:        /*        **  dihrf        **  Torsion reduction factor,        */        (void) sscanf( line, "%*s %f", &torFac );        pr( logFile, "Reduction factor for torsion angles =\t%-.3f /cycle\n", torFac );        B_torReduc = (torFac != 1.);        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_FLEX:        /*        **  flex        **  Flexible side-chains, cannot translate:        */        nmol++;        nres++;        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_INTNBP_REQM_EPS:        /*        **  intnbp_r_eps        **  Read internal energy parameters:         **  Lennard-Jones and Hydrogen Bond Potentials,        **  Using epsilon and r-equilibrium values...        */        (void) sscanf( line, "%*s %f %f %d %d", &Rij, &epsij, &xA, &xB );	/* check that the Rij is reasonable */	if ((Rij < RIJ_MIN) || (Rij > RIJ_MAX)) {	    (void) fprintf( logFile,	    "WARNING: pairwise distance, Rij, %.2f, is not a very reasonable value for the equilibrium separation of two atoms! (%.2f Angstroms <= Rij <= %.2f Angstroms)\n\n", Rij, RIJ_MIN, RIJ_MAX);	    (void) fprintf( logFile, "Perhaps you meant to use \"intnbp_coeffs\" instead of \"intnbp_r_eps\"?\n\n");	    exit(-1);	}	/* check that the epsij is reasonable */	if ((epsij < EPSIJ_MIN) || (epsij > EPSIJ_MAX)) {	    (void) fprintf( logFile,	    "WARNING: well-depth, epsilon_ij, %.2f, is not a very reasonable value for the equilibrium potential energy of two atoms! (%.2f kcal/mol <= epsilon_ij <= %.2f kcal/mol)\n\n", epsij, EPSIJ_MIN, EPSIJ_MAX);	    (void) fprintf( logFile, "Perhaps you meant to use \"intnbp_coeffs\" instead of \"intnbp_r_eps\"?\n\n");	    exit(-1);	}        /* Defend against division by zero... */        if (xA != xB) {	    cA = (tmpconst = epsij / (float)(xA - xB)) * pow( (double)Rij, (double)xA ) * (float)xB;	    cB = tmpconst * pow( (double)Rij, (double)xB ) * (float)xA;            intnbtable( &B_havenbp, &a1, &a2, num_atm_maps, atm_typ_str, cA, cB, xA, xB, e_internal );        } else {            pr(logFile,"WARNING: Exponents must be different, to avoid division by zero!\n\tAborting...\n");            exit(-1);        }        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_INTNBP_COEFFS:        /*        **  intnbp_coeffs        **  Read internal energy parameters:         **  Lennard-Jones and Hydrogen Bond Potentials,        **  Using coefficients...        */        (void) sscanf( line, "%*s %f %f %d %d", &cA, &cB, &xA, &xB );        /* Defend against division by zero... */        if (xA != xB) {            intnbtable( &B_havenbp, &a1, &a2, num_atm_maps, atm_typ_str, cA, cB, xA, xB, e_internal );        } else {            pr(logFile,"WARNING: Exponents must be different. Aborting...\n");            exit(-1);        }        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_RT0:        /*        **  rt0        **  Initial Temperature,        */        (void) sscanf( line, "%*s %f", &RT0 );        if (RT0 <= 0.) {	    pr( logFile, "\nWARNING!  Negative temperatures not allowed! Will default to RT = 616 cal mol.\n" );	    RT0 = 616.;        }        pr( logFile, "\n\t\tTEMPERATURE SCHEDULE INFORMATION\n" );        pr( logFile, "\t\t________________________________\n\n" );        pr( logFile, "               -1 -1                 -1 -1\n" );        pr( logFile, "R = %5.3f J mol  K    = %5.3f cal mol  K  \n\n", RJ, Rcal );        pr( logFile, "                                        -1\n" );        pr( logFile, "Initial R*Temperature = %8.2f cal mol\n", RT0 );        pr( logFile, "      (=> Temperature = %8.2f K\n", RT0/Rcal );        pr( logFile, "                   or = %8.2f C)\n\n", RT0/Rcal - T0K );        (void) fflush(logFile);        break;/*____________________________________________________________________________*/    case DPF_RTRF:        /*        **  rtrf        **  Temperature reduction factor,        */        (void) sscanf( line, "%*s %f", &RTFac);        pr( logFile, "R*Temperature reduction factor = %8.2f\t/cycle\n", RTFac );        if (RTFac >= 1.) {	    stop("Cooling is impossible with a reduction\n\tfactor greater than or equal to 1.0!" );	    exit( -1 );        } else if (RTFac == 0.0 ) {	    stop("Cooling is impossible with a ZERO reduction factor!" );	    exit( -1 );        } else if (RTFac < 0.0 ) {	    stop("Cooling is impossible with a NEGATIVE reduction factor!" );	    exit( -1 );        }        (void) fflush(logFile);        B_tempChange = ( RTFac != 1. );        break; /*____________________________________________________________________________*/    case DPF_RUNS:        /*        **  runs        **  Number of docking runs,        */        (void) sscanf( line, "%*s %d", &nruns );        if ( nruns > MAX_RUNS ) {	    prStr( error_message, "ERROR: %d runs were requested, but AutoDock is only dimensioned for %d.\nChange \"MAX_RUNS\" in \"constants.h\".", nruns, MAX_RUNS);	    stop( error_message );	    exit( -1 );        }        pr( logFile, "Number of runs =\t\t\t\t%8d run%c\n", nruns, (nruns > 1)?'s':' ');        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_CYCLES:        /*        **  cycles        **  Number of constant temperature SA cycles,        */        (void) sscanf( line, "%*s %d", &ncycles );        if (ncycles < 0) {	    pr( logFile, "WARNING!  Negative number of cycles found!  Using default value.\n");	    ncycles = 50;        }        pr( logFile, "Maximum number of cycles =\t\t\t%8d cycles\n\n", ncycles);        if (B_linear_schedule) {	    pr( logFile, "\nA linear temperature reduction schedule was requested...\n" );	    RTreduc = RT0 / ncycles;	    pr( logFile, "Annealing temperature will be reduced by %.3f cal mol per cycle.\n\n", RTreduc );        }        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_ACCS:        /*        **  accs        **  Maximum number of steps accepted,        */        (void) sscanf( line, "%*s %d", &naccmax );        if (naccmax < 0) {	    naccmax = 100;	    pr( logFile, "WARNING!  Negative number of accepted moves found!  Using default value.\n");        }        pr( logFile, "Maximum number accepted per cycle =\t\t%8d steps\n", naccmax);        if (nrejmax != 0) {	    nstepmax = naccmax + nrejmax;	    pr( logFile, "                                           \t_________\n" );	    pr( logFile, "Maximum possible number of steps per cycle =\t%8d\tsteps\n\n", nstepmax);        }        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_REJS:        /*        **  rejs        **  Maximum number of steps rejected,        */        (void) sscanf( line, "%*s %d", &nrejmax );        if (nrejmax < 0) {	    nrejmax = 100;	    pr( logFile, "WARNING!  Negative number of rejected moves found!  Using default value.\n");        }        pr( logFile, "Maximum number rejected per cycle =\t\t%8d steps\n", nrejmax);        if (naccmax != 0) {	    nstepmax = naccmax + nrejmax;	    pr( logFile, "                                           \t_________\n" );	    pr( logFile, "Maximum possible number of steps per cycle =\t%8d steps\n\n", nstepmax);        }        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_SELECT:        /*        **  select        **  Select either minimum or last state from previous cycle,        */        (void) sscanf( line, "%*s %1s", &selminpar );        B_selectmin = (selminpar == 'm');        if ( B_selectmin ) {	    pr( logFile, "%s will begin each new cycle\nwith the state of minimum energy from the previous annealing cycle.\n", programname);        } else {	    pr( logFile, "%s will begin each new cycle\nwith the last state from the previous annealing cycle.\n", programname);        }        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_OUTLEV:        /*        **  outlev        **  Output level,        */        (void) sscanf( line, "%*s %d", &outlev );        switch ( outlev ) {        case 0:            pr( logFile, "Output Level = 0.  NO OUTPUT DURING DOCKING.\n" );            break;        case 1:            pr( logFile, "Output Level = 1.  MINIMUM OUTPUT DURING DOCKING.\n" );            break;        case 2:        default:            pr( logFile, "Output Level = 2.  FULL OUTPUT DURING DOCKING.\n" );            break;        }        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_RMSTOL:        /*        **  rmstol        **  Cluster tolerance,        */        (void) sscanf( line, "%*s %f", &clus_rms_tol);        pr( logFile, "Maximum RMS tolerance for conformational cluster analysis = %.2f Angstroms\n", clus_rms_tol);        (void) fflush(logFile);        break; /*____________________________________________________________________________*/    case DPF_RMSREF:        /*        **  rmsref        **  RMS Reference Coordinates:        */        (void) sscanf( line, "%*s %s", FN_rms_ref_crds);        pr( logFile, "RMS reference coordinates will taken from \"%s\"\n", FN_rms_ref_crds );        (void) fflush(logFile);        break; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -