version 1.1463 | version 1.1464 |
---|
| |
/***************************************************************************** | /***************************************************************************** |
* $Source: /home/cvs/namd/cvsroot/namd2/src/SimParameters.C,v $ | * $Source: /home/cvs/namd/cvsroot/namd2/src/SimParameters.C,v $ |
* $Author: jim $ | * $Author: jim $ |
* $Date: 2016/07/29 21:16:22 $ | * $Date: 2016/09/05 18:25:43 $ |
* $Revision: 1.1463 $ | * $Revision: 1.1464 $ |
*****************************************************************************/ | *****************************************************************************/ |
| |
/** \file SimParameters.C | /** \file SimParameters.C |
| |
fixedAtomsOn = atobool(value); | fixedAtomsOn = atobool(value); |
return; | return; |
} | } |
| // SCRIPT_PARSE_BOOL("extraBonds", extraBondsOn) |
| // SCRIPT_PARSE_STRING("binCoordinates", binCoordinateFilename) |
| |
| //fepb |
| // SCRIPT_PARSE_BOOL("alch", alchOn) |
| |
//Modifications for alchemical fep | |
SCRIPT_PARSE_INT("alchEquilSteps",alchEquilSteps) | SCRIPT_PARSE_INT("alchEquilSteps",alchEquilSteps) |
| |
if ( ! strncasecmp(param,"alchRepLambda",MAX_SCRIPT_PARAM_SIZE) ) { | if ( ! strncasecmp(param,"alchRepLambda",MAX_SCRIPT_PARAM_SIZE) ) { |
| |
} | } |
//fepe | //fepe |
| |
// REDUNDANT TI BEGINS | |
// if ( ! strncasecmp(param,"tiLambda",MAX_SCRIPT_PARAM_SIZE) ) { | |
// alchLambda = atof(value); | |
// ComputeNonbondedUtil::select(); | |
// return; | |
// } | |
// REDUNDANT TI ENDS | |
| |
if ( ! strncasecmp(param,"nonbondedScaling",MAX_SCRIPT_PARAM_SIZE) ) { | if ( ! strncasecmp(param,"nonbondedScaling",MAX_SCRIPT_PARAM_SIZE) ) { |
nonbondedScaling = atof(value); | nonbondedScaling = atof(value); |
ComputeNonbondedUtil::select(); | ComputeNonbondedUtil::select(); |
| |
opts.require("amber", "parmfile", "AMBER parm file", PARSE_STRING); | opts.require("amber", "parmfile", "AMBER parm file", PARSE_STRING); |
opts.optional("amber", "ambercoor", "AMBER coordinate file", PARSE_STRING); | opts.optional("amber", "ambercoor", "AMBER coordinate file", PARSE_STRING); |
| |
//Modifications for alchemical fep | |
// begin fep output options | |
opts.optional("alch", "alchoutfreq", "Frequency of alchemical energy" | |
"output in timesteps", &alchOutFreq, 5); | |
opts.range("alchoutfreq", NOT_NEGATIVE); | |
opts.optional("alchoutfreq", "alchoutfile", "Alchemical energy output" | |
"filename", alchOutFile); | |
// end fep output options | |
//fepe | |
| |
// REDUNDANT TI BEGINS | |
// opts.optional("thermInt", "tioutfreq", "Frequency of TI energy output in " | |
// "timesteps", &tiOutFreq, 5); | |
// opts.range("tioutfreq", NOT_NEGATIVE); | |
// opts.optional("tioutfreq", "tioutfile", "TI energy output filename", | |
// tiOutFile); | |
// REDUNDANT TI ENDS | |
| |
/* GROMACS options */ | /* GROMACS options */ |
opts.optionalB("main", "gromacs", "Use GROMACS-like force field?", | opts.optionalB("main", "gromacs", "Use GROMACS-like force field?", |
&gromacsOn, FALSE); | &gromacsOn, FALSE); |
| |
opts.units("loweAndersenCutoff", N_ANGSTROM); | opts.units("loweAndersenCutoff", N_ANGSTROM); |
// END LA | // END LA |
| |
//Modifications for alchemical fep | //fepb |
// alchemical fep options | |
opts.optionalB("main", "alch", "Is achemical simulation being performed?", | opts.optionalB("main", "alch", "Is achemical simulation being performed?", |
&alchOn, FALSE); | &alchOn, FALSE); |
opts.optional("alch", "alchType", "Which alchemical method to use?", | |
PARSE_STRING); | |
opts.optionalB("alch", "alchFepWCARepuOn", "WCA decomposition repu interaction in use?", | |
&alchFepWCARepuOn, FALSE); | |
opts.optionalB("alch", "alchFepWCADispOn", "WCA decomposition disp interaction in use?", | |
&alchFepWCADispOn, FALSE); | |
opts.optionalB("alch", "alchEnsembleAvg", "Ensemble Average in use?", | |
&alchEnsembleAvg, TRUE); | |
opts.optionalB("alch", "alchFepWhamOn", "Energy output for Wham postprocessing in use?", | |
&alchFepWhamOn, FALSE); | |
opts.optional("alch", "alchFepWCArcut1", "WCA repulsion Coeff1 used for generating" | |
"the altered alchemical vDW interactions", &alchFepWCArcut1, 0.0); | |
opts.optional("alch", "alchFepWCArcut2", "WCA repulsion Coeff2 used for generating" | |
"the altered alchemical vDW interactions", &alchFepWCArcut2, 1.0); | |
opts.optional("alch", "alchFepWCArcut3", "WCA repulsion Coeff3 used for generating" | |
"the altered alchemical vDW interactions", &alchFepWCArcut3, 1.0); | |
opts.range("alchFepWCArcut1", NOT_NEGATIVE); | |
opts.range("alchFepWCArcut2", NOT_NEGATIVE); | |
opts.range("alchFepWCArcut3", NOT_NEGATIVE); | |
| |
opts.optional("alch", "alchRepLambda", "Lambda of WCA repulsion" | |
"Coupling parameter value for WCA repulsion", &alchRepLambda, -1.0); // an invalid lambda value | |
opts.optional("alch", "alchDispLambda", "Lambda of WCA dispersion" | |
"Coupling parameter value for WCA dispersion", &alchDispLambda, -1.0); // an invalid lambda value | |
opts.optional("alch", "alchElecLambda", "Lambda of electrostatic perturbation" | |
"Coupling parameter value for electrostatic perturbation", &alchElecLambda, -1.0); // an invalid lambda value | |
| |
opts.require("alch", "alchLambda", "Coupling parameter value", | opts.require("alch", "alchLambda", "Coupling parameter value", |
&alchLambda); | &alchLambda); |
opts.optional("alch", "alchLambda2", "Coupling comparison value", | |
&alchLambda2); | |
opts.optional("alch", "alchLambdaFreq", "Frequency of increasing coupling parameter value", | |
&alchLambdaFreq); | |
opts.optional("alch", "alchFile", "PDB file with perturbation flags " | opts.optional("alch", "alchFile", "PDB file with perturbation flags " |
"default is the input PDB file", PARSE_STRING); | "default is the input PDB file", PARSE_STRING); |
opts.optional("alch", "alchCol", "Column in the alchFile with the " | opts.optional("alch", "alchCol", "Column in the alchFile with the " |
"perturbation flag", PARSE_STRING); | "perturbation flag", PARSE_STRING); |
opts.optional("alch", "alchEquilSteps", "Equilibration steps, before " | |
"data collection in the alchemical window", &alchEquilSteps, 0); | opts.optional("alch", "alchOutFreq", "Frequency of alchemical energy" |
opts.range("alchEquilSteps", NOT_NEGATIVE); | "output in timesteps", &alchOutFreq, 5); |
| opts.range("alchoutfreq", NOT_NEGATIVE); |
| opts.optional("alch", "alchOutFile", "Alchemical energy output filename", |
| alchOutFile); |
| |
| // soft-core parameters |
opts.optional("alch", "alchVdwShiftCoeff", "Coeff used for generating" | opts.optional("alch", "alchVdwShiftCoeff", "Coeff used for generating" |
"the altered alchemical vDW interactions", &alchVdwShiftCoeff, 5.); | "the altered alchemical vDW interactions", &alchVdwShiftCoeff, 5.); |
opts.range("alchVdwShiftCoeff", NOT_NEGATIVE); | opts.range("alchVdwShiftCoeff", NOT_NEGATIVE); |
| |
| // scheduling options for different interaction types |
opts.optional("alch", "alchElecLambdaStart", "Lambda at which electrostatic" | opts.optional("alch", "alchElecLambdaStart", "Lambda at which electrostatic" |
"scaling of exnihilated particles begins", &alchElecLambdaStart, 0.5); | "scaling of exnihilated particles begins", &alchElecLambdaStart, 0.5); |
opts.range("alchElecLambdaStart", NOT_NEGATIVE); | opts.range("alchElecLambdaStart", NOT_NEGATIVE); |
| |
"scaling of exnihilated particles begins", &alchBondLambdaEnd, 1.0); | "scaling of exnihilated particles begins", &alchBondLambdaEnd, 1.0); |
opts.range("alchBondLambdaEnd", NOT_NEGATIVE); | opts.range("alchBondLambdaEnd", NOT_NEGATIVE); |
| |
| opts.optionalB("alch", "alchDecouple", "Enable alchemical decoupling?", |
// end FEP options | |
//fepe | |
| |
// REDUNDANT TI BEGINS | |
// Modifications for TI | |
// lots of duplication of FEP, we'd be better off without all this but | |
// keeping it in place for now for compatibility | |
// opts.optionalB("main", "thermInt", "Perform thermodynamic integration?", | |
// &thermInt, FALSE); | |
// opts.require("thermInt", "tilambda", "Coupling parameter value", &tiLambda); | |
// opts.optional("thermInt", "tiFile", "PDB file with perturbation flags " | |
// "default is the input PDB file", PARSE_STRING); | |
// opts.optional("thermInt", "tiCol", "Column in the tiFile with the " | |
// "perturbation flag", PARSE_STRING); | |
// opts.optional("thermInt", "tiEquilSteps", "Equilibration steps, before " | |
// "data collection at each tiLambda value", &tiEquilSteps, 0); | |
// opts.range("tiEquilSteps", NOT_NEGATIVE); | |
// opts.optional("thermInt", "tiVdwShiftCoeff", "Coeff used for generating" | |
// "the altered alchemical vDW interactions", &tiVdwShiftCoeff, 5.); | |
// opts.range("tiVdwShiftCoeff", NOT_NEGATIVE); | |
// | |
// opts.optional("thermInt", "tiElecLambdaStart", "Lambda at which to start" | |
// "electrostatics scaling", &tiElecLambdaStart, 0.5); | |
// opts.range("tiElecLambdaStart", NOT_NEGATIVE); | |
// | |
// opts.optional("thermInt", "tiVdwLambdaEnd", "Lambda at which to end" | |
// "Vdw scaling", &tiVdwLambdaEnd, 0.5); | |
// opts.range("tiVdwLambdaEnd", NOT_NEGATIVE); | |
// end TI options | |
// REDUNDANT TI ENDS | |
| |
opts.optionalB("main", "alchDecouple", "Enable alchemical decoupling?", | |
&alchDecouple, FALSE); | &alchDecouple, FALSE); |
opts.optionalB("main", "alchBondDecouple", "Enable decoupling of purely " | opts.optionalB("alch", "alchBondDecouple", "Enable decoupling of purely " |
"alchemical bonds?", &alchBondDecouple, FALSE); | "alchemical bonds?", &alchBondDecouple, FALSE); |
| |
| // parameters for alchemical analysis options |
| opts.optional("alch", "alchType", "Which alchemical method to use?", |
| PARSE_STRING); |
| opts.optional("alch", "alchLambda2", "Coupling comparison value", |
| &alchLambda2); |
| opts.optional("alch", "alchLambdaFreq", |
| "Frequency of increasing coupling parameter value", &alchLambdaFreq, 0); |
| opts.range("alchLambdaFreq", NOT_NEGATIVE); |
| opts.optional("alch", "alchSwitchType", "Switching type flag", |
| PARSE_STRING); |
| opts.optional("alch", "alchEquilSteps", "Equilibration steps, before " |
| "data collection in the alchemical window", &alchEquilSteps, 0); |
| opts.range("alchEquilSteps", NOT_NEGATIVE); |
| |
| // WCA decomposition options |
| opts.optionalB("alch", "alchFepWCARepuOn", |
| "WCA decomposition repu interaction in use?", &alchFepWCARepuOn, FALSE); |
| opts.optionalB("alch", "alchFepWCADispOn", |
| "WCA decomposition disp interaction in use?", &alchFepWCADispOn, FALSE); |
| opts.optionalB("alch", "alchEnsembleAvg", "Ensemble Average in use?", |
| &alchEnsembleAvg, TRUE); |
| opts.optionalB("alch", "alchFepWhamOn", |
| "Energy output for Wham postprocessing in use?", &alchFepWhamOn, FALSE); |
| opts.optional("alch", "alchFepWCArcut1", |
| "WCA repulsion Coeff1 used for generating the altered alchemical vDW " |
| "interactions", &alchFepWCArcut1, 0.0); |
| opts.range("alchFepWCArcut1", NOT_NEGATIVE); |
| opts.optional("alch", "alchFepWCArcut2", "WCA repulsion Coeff2 used for " |
| "generating the altered alchemical vDW interactions", &alchFepWCArcut2, |
| 1.0); |
| opts.range("alchFepWCArcut2", NOT_NEGATIVE); |
| opts.optional("alch", "alchFepWCArcut3", |
| "WCA repulsion Coeff3 used for generating the altered alchemical vDW " |
| "interactions", &alchFepWCArcut3, 1.0); |
| opts.range("alchFepWCArcut3", NOT_NEGATIVE); |
| // These default to invalid lambda values. |
| opts.optional("alch", "alchRepLambda", "Lambda of WCA repulsion" |
| "Coupling parameter value for WCA repulsion", &alchRepLambda, -1.0); |
| opts.optional("alch", "alchDispLambda", "Lambda of WCA dispersion" |
| "Coupling parameter value for WCA dispersion", &alchDispLambda, -1.0); |
| opts.optional("alch", "alchElecLambda", "Lambda of electrostatic " |
| "perturbation Coupling parameter value for electrostatic perturbation", |
| &alchElecLambda, -1.0); |
| //fepe |
| |
opts.optionalB("main", "les", "Is locally enhanced sampling enabled?", | opts.optionalB("main", "les", "Is locally enhanced sampling enabled?", |
&lesOn, FALSE); | &lesOn, FALSE); |
opts.require("les", "lesFactor", "Local enhancement factor", &lesFactor); | opts.require("les", "lesFactor", "Local enhancement factor", &lesFactor); |
| |
randomSeed = (unsigned int) time(NULL) + 31530001 * CmiMyPartition(); | randomSeed = (unsigned int) time(NULL) + 31530001 * CmiMyPartition(); |
} | } |
| |
//Modifications for alchemical fep | //fepb |
| |
alchFepOn = FALSE; | alchFepOn = FALSE; |
alchThermIntOn = FALSE; | alchThermIntOn = FALSE; |
| |
if (alchOn) { | if (alchOn) { |
| |
if (vdwForceSwitching && (alchFepWCARepuOn || alchFepWCADispOn)) { | if (vdwForceSwitching && (alchFepWCARepuOn || alchFepWCADispOn)) { |
iout << iWARN << "vdwForceSwitching not implemented for alchemical " | iout << iWARN << "vdwForceSwitching not implemented for alchemical " |
"interactions when WCA decomposition is on!\n" << endi; | "interactions when WCA decomposition is on!\n" << endi; |
} | } |
| if (martiniSwitching) { |
if (alchOn && martiniSwitching) { | |
iout << iWARN << "Martini switching disabled for alchemical " | iout << iWARN << "Martini switching disabled for alchemical " |
"interactions.\n" << endi; | "interactions.\n" << endi; |
} | } |
| |
if (!opts.defined("alchType")) | if (!opts.defined("alchType")) { |
{ | |
NAMD_die("Must define type of alchemical simulation: fep or ti\n"); | NAMD_die("Must define type of alchemical simulation: fep or ti\n"); |
} | } |
else | else { |
{ | |
opts.get("alchType",s); | opts.get("alchType",s); |
if (!strcasecmp(s, "fep")) | if (!strcasecmp(s, "fep")) { |
{ | |
alchFepOn = TRUE; | alchFepOn = TRUE; |
} | } |
else if (!strcasecmp(s, "ti")) | else if (!strcasecmp(s, "ti")) { |
{ | |
alchThermIntOn = TRUE; | alchThermIntOn = TRUE; |
} | } |
else | else { |
{ | |
NAMD_die("Unknown type of alchemical simulation; choices are fep or ti\n"); | NAMD_die("Unknown type of alchemical simulation; choices are fep or ti\n"); |
} | } |
} | } |
| |
if (reassignFreq > 0 && reassignIncr != 0) | if (reassignFreq > 0 && reassignIncr != 0) |
NAMD_die("reassignIncr cannot be used in alchemical simulations\n"); | NAMD_die("reassignIncr cannot be used in alchemical simulations\n"); |
| |
if (alchLambda < 0.0 || alchLambda > 1.0 || alchLambda2 < 0.0 || alchLambda2 > 1.0) | if (alchLambda < 0.0 || alchLambda > 1.0 || |
| alchLambda2 < 0.0 || alchLambda2 > 1.0) |
NAMD_die("Alchemical lambda values should be in the range [0.0, 1.0]\n"); | NAMD_die("Alchemical lambda values should be in the range [0.0, 1.0]\n"); |
| |
if ( alchOn && alchVdwLambdaEnd > 1.0) | if (alchVdwLambdaEnd > 1.0) |
NAMD_die("Gosh tiny Elvis, you kicked soft-core in the van der Waals! alchVdwLambdaEnd should be in the range [0.0, 1.0]\n"); | NAMD_die("Gosh tiny Elvis, you kicked soft-core in the van der Waals! alchVdwLambdaEnd should be in the range [0.0, 1.0]\n"); |
| |
if ( alchOn && alchBondLambdaEnd > 1.0) | if (alchBondLambdaEnd > 1.0) |
NAMD_die("alchBondLambdaEnd should be in the range [0.0, 1.0]\n"); | NAMD_die("alchBondLambdaEnd should be in the range [0.0, 1.0]\n"); |
| |
if ( alchOn && alchElecLambdaStart > 1.0) | if (alchElecLambdaStart > 1.0) |
NAMD_die("alchElecLambdaStart should be in the range [0.0, 1.0]\n"); | NAMD_die("alchElecLambdaStart should be in the range [0.0, 1.0]\n"); |
| |
if (!opts.defined("alchLambdaFreq")) { | if (alchFepOn) { |
alchLambdaFreq = 0; | |
} | |
| |
if (alchFepOn) | |
{ | |
if (!opts.defined("alchoutfile")) { | if (!opts.defined("alchoutfile")) { |
strcpy(alchOutFile, outputFilename); | strcpy(alchOutFile, outputFilename); |
strcat(alchOutFile, ".fep"); | strcat(alchOutFile, ".fep"); |
} | } |
| |
if( (!alchFepWhamOn) && ( (!opts.defined("alchLambda")) || (!opts.defined("alchLambda2"))) ) { | if (!alchFepWhamOn && |
| ((!opts.defined("alchLambda")) || (!opts.defined("alchLambda2")))) { |
NAMD_die("alchFepOn is on, but alchLambda or alchLambda2 is not set."); | NAMD_die("alchFepOn is on, but alchLambda or alchLambda2 is not set."); |
} | } |
| |
if(alchRepLambda > 1.0) NAMD_die("alchRepLambda should be in the range [0.0, 1.0]."); | if(alchRepLambda > 1.0) |
else if(alchRepLambda >= 0.0) alchFepWCARepuOn = true; | NAMD_die("alchRepLambda should be in the range [0.0, 1.0]."); |
else alchFepWCARepuOn = false; | else if(alchRepLambda >= 0.0) |
| alchFepWCARepuOn = true; |
if(alchDispLambda > 1.0) NAMD_die("alchDispLambda should be in the range [0.0, 1.0]."); | else |
else if(alchDispLambda >= 0.0) alchFepWCADispOn = true; | alchFepWCARepuOn = false; |
else alchFepWCADispOn = false; | |
| |
if(alchElecLambda > 1.0) NAMD_die("alchElecLambda should be in the range [0.0, 1.0]."); | |
else if(alchElecLambda >= 0.0) alchFepElecOn = true; | |
else alchFepElecOn = false; | |
| |
if( (alchFepWCARepuOn || alchFepWCADispOn || alchFepElecOn) && (!alchFepWhamOn)) | if(alchDispLambda > 1.0) |
| NAMD_die("alchDispLambda should be in the range [0.0, 1.0]."); |
| else if(alchDispLambda >= 0.0) |
| alchFepWCADispOn = true; |
| else |
| alchFepWCADispOn = false; |
| |
| if(alchElecLambda > 1.0) |
| NAMD_die("alchElecLambda should be in the range [0.0, 1.0]."); |
| else if(alchElecLambda >= 0.0) |
| alchFepElecOn = true; |
| else |
| alchFepElecOn = false; |
| |
| if ((alchFepWCARepuOn || alchFepWCADispOn || alchFepElecOn) && |
| !alchFepWhamOn) |
NAMD_die("alchFepWhamOn has to be on if one of alchFepWCARepuOn/alchFepWCADispOn/alchFepElecOn is set."); | NAMD_die("alchFepWhamOn has to be on if one of alchFepWCARepuOn/alchFepWCADispOn/alchFepElecOn is set."); |
if (alchFepWCARepuOn && alchFepWCADispOn) | if (alchFepWCARepuOn && alchFepWCADispOn) |
NAMD_die("With WCA decomposition, repulsion and dispersion can NOT be in the same FEP stage"); | NAMD_die("With WCA decomposition, repulsion and dispersion can NOT be in the same FEP stage"); |
| |
NAMD_die("With WCA decomposition, repulsion and electrostatic perturbation can NOT be in the same FEP stage"); | NAMD_die("With WCA decomposition, repulsion and electrostatic perturbation can NOT be in the same FEP stage"); |
if (alchFepWCADispOn && alchFepElecOn) | if (alchFepWCADispOn && alchFepElecOn) |
NAMD_die("With WCA decomposition, dispersion and electrostatic perturbation can NOT be in the same FEP stage"); | NAMD_die("With WCA decomposition, dispersion and electrostatic perturbation can NOT be in the same FEP stage"); |
if (alchFepWCARepuOn && (!opts.defined("alchFepWCArcut1")||!opts.defined("alchFepWCArcut2")||!opts.defined("alchFepWCArcut3"))) | if (alchFepWCARepuOn && |
| (!opts.defined("alchFepWCArcut1") || |
| !opts.defined("alchFepWCArcut2") || |
| !opts.defined("alchFepWCArcut3") )) |
NAMD_die("When using WCA repulsion, alchFepWCArcut1, alchFepWCArcut2, and alchFepWCArcut3 must be defined!"); | NAMD_die("When using WCA repulsion, alchFepWCArcut1, alchFepWCArcut2, and alchFepWCArcut3 must be defined!"); |
if (alchFepWCARepuOn && ((alchFepWCArcut1 > alchFepWCArcut2) || (alchFepWCArcut2 > alchFepWCArcut3) )) | if (alchFepWCARepuOn && |
| ((alchFepWCArcut1 > alchFepWCArcut2) || |
| (alchFepWCArcut2 > alchFepWCArcut3) )) |
NAMD_die("When using WCA repulsion, alchFepWCArcut2 must be larger than alchFEPWCArcut1, alchFepWCArcut3 must be larger than alchFEPWCArcut2!"); | NAMD_die("When using WCA repulsion, alchFepWCArcut2 must be larger than alchFEPWCArcut1, alchFepWCArcut3 must be larger than alchFEPWCArcut2!"); |
// if ((alchFepWCARepuOn || alchFepWCADispOn) && (alchElecLambdaStart < 1.0) ) | if (alchFepWhamOn && (alchRepLambda < 0.0) && (alchDispLambda < 0.0) && |
// NAMD_die("When using WCA decomposition, repulsion, dispersion and electrostatic must be in 3 different stages!"); | (alchElecLambda < 0.0) ) |
if(alchFepWhamOn && (alchRepLambda < 0.0) && (alchDispLambda < 0.0) && (alchElecLambda < 0.0) ) | |
NAMD_die("One of alchRepLambda, alchDispLambda and alchElecLambda should be set up when alchFepWhamOn is true!"); | NAMD_die("One of alchRepLambda, alchDispLambda and alchElecLambda should be set up when alchFepWhamOn is true!"); |
if(alchFepWhamOn && (!alchFepElecOn) ) { | if(alchFepWhamOn && (!alchFepElecOn) ) { |
alchElecLambda = 0.0; | alchElecLambda = 0.0; |
ComputeNonbondedUtil::alchElecLambda = alchElecLambda; | ComputeNonbondedUtil::alchElecLambda = alchElecLambda; |
// ComputeNonbondedUtil::select(); | |
} | } |
} | } |
else if (alchThermIntOn) | else if (alchThermIntOn) { |
{ | |
if (!opts.defined("alchoutfile")) { | if (!opts.defined("alchoutfile")) { |
strcpy(alchOutFile, outputFilename); | strcpy(alchOutFile, outputFilename); |
strcat(alchOutFile, ".ti"); | strcat(alchOutFile, ".ti"); |
} | } |
} | } |
| |
} else { | |
alchLambda = alchLambda2 = 0; | |
alchElecLambdaStart = 0; | |
alchOutFile[0] = STRINGNULL; | |
} | } |
| |
| |
//fepe | //fepe |
| |
if ( alchOn && alchFepOn && alchThermIntOn ) | if ( alchOn && alchFepOn && alchThermIntOn ) |