int updateCount = 0;
// минимальный рассматриваемый размер домена - осмысленно брать 4+
int dms = 4; // selectable
- // какой из алгоритмов выделения использовать 0 - ��аксимальный домен / 1 - минимальный домен
+ // какой из алгоритмов выделения использовать 0 - ��т максимального домена к меньшим / 1 - самый большой домен (первый из равных) / 2 - от минимального домена к большим
int dsa = 0; // selectable
// константа допустимых тепловых колебаний относительно центра домена, находящегося в конкретном атоме структуры
double eps = 0.2; // selectable
t1 = i;
t2 = j;
}
- if ((dsa == 1) && ((domsizes[i][j] < domsizes[t1][t2]) || ((domsizes[i][j] >= dms) && (domsizes[t1][t2] < dms)))) {
+ if ((dsa == 2) && ((domsizes[i][j] < domsizes[t1][t2]) || ((domsizes[i][j] >= dms) && (domsizes[t1][t2] < dms)))) {
t1 = i;
t2 = j;
}
domains.back().push_back(i);
}
}
+ //выход из поиска доменов при данном режиме обработки
+ if (dsa == 1) {
+ break;
+ }
// удаляем его из матриц
deleteDomainFromGraph(domains.back());
}
{
static const char *const desc[] = {
"[THISMODULE] to be done"
+ "-f trajectory.xtc -s structure.tpr -n index.ndx -sf selectionListFile -on outPutName -dms 4+ -DSA 0/1/2 -eps 0.2 -dlt 0.95 -wSize 1000 -twStep 100"
};
// Add the descriptive text (program help text) to the options
settings->setHelpText(desc);
// Add option for selecting a subset of atoms
options->addOption(SelectionOption("select")
.store(&selec).required()
- .description("Atoms that are considered as part of the excluded volume"));
+ .description("Atoms that are considered as part of the excluded volume."));
// Add option for output file name
options->addOption(FileNameOption("on").filetype(eftIndex).outputFile()
.store(&fnNdx_).defaultBasename("domains")
- .description("Index file from the domains"));
+ .description("Index file for the algorithm output."));
// Add option for domain min size constant
options->addOption(gmx::IntegerOption("dms")
.store(&domain_min_size)
- .description("minimum domain size, should be >= 4"));
+ .description("minimum domain size, should be >= 4."));
// Add option for Domain's Searching Algorythm
options->addOption(gmx::IntegerOption("DSA")
.store(&DomainSearchingAlgorythm)
- .description("Domain's Searching Algorythm: 0 == default (from bigger to smaller) | 1 == (from smaller to bigger)"));
+ .description("Domain's Searching Algorythm: 0 == (default) from bigger to smaller | 1 == just the first biggest domain | 2 == from smaller to bigger."));
// Add option for epsi constant
options->addOption(DoubleOption("eps")
.store(&epsi)
- .description("thermal vibrations' constant"));
+ .description("thermal vibrations' constant."));
// Add option for delta constant
options->addOption(DoubleOption("dlt")
.store(&delta)
- .description("domain membership probability"));
+ .description("domain membership probability."));
// Add option for domain min size constant
options->addOption(gmx::IntegerOption("wSize")
.store(&window)
- .description("flowing window to evaluate domains from"));
- // Add option for domain min size constant
+ .description("flowing window to evaluate domains from."));
+ // Add option for time step between windows' starts
options->addOption(gmx::IntegerOption("twStep")
.store(&twStep)
- .description("time step between windows' starting positions"));
+ .description("time step between windows' starting positions."));
// Control input settings
settings->setFlags(TrajectoryAnalysisSettings::efNoUserPBC);
settings->setFlag(TrajectoryAnalysisSettings::efUseTopX);
settings->setPBC(true);
}
+// -f trajectory.xtc -s structure.tpr -n index.ndx -sf selectionListFile -on outPutName -dms 4+ -DSA 0/1/2 -eps 0.2 -dlt 0.95 -wSize 1000 -twStep 100
+
void
Domains::initAnalysis(const TrajectoryAnalysisSettings &settings,
const TopologyInformation &top)