Популярные сообщения

четверг, 9 декабря 2010 г.

Gromacs, MD-options - файл параметров моделирования

   Содержание файла параметров эксперимента *.mdp с описанием значений переменных. Редакция от 29.04.2011.

Внимание! Это незавершенная статья! Более подробное описание можно найти в руководстве пользователя раздел 7.3 страница 183.
Пользуйтесь Ctrl+F для быстрого поиска нужных данных...
Если статья будет вам полезна не забудьте проголосовать с низу в опросе
    ============
    Директивы для препроцессора
    Preprocessing
        include             = // директория для подключения вашей топологии. Формат -I/home/john/my_lib -I../more_lib
        define                = -DFLEXIBLE    // говорит grompp подключить гибкую  модель воды вместо жесткой в вашей топологии, это можут быть полезно для анализа нормальных колебаний.
                            = -DPOSRES        // говорит grompp подключить posre.itp в вашу топологию, используется для позиционной ограничений

Более подробно об директивах можно прочитать в этой статье.
    ============
    Run control
        integrator            = md        // алгоритм скачкообразный (leap-frog) для уравнений движения Ньютона.
                            = md-vv        // алгоритм скорости Верле для интегрирования уравнений движения Ньютона. Для постоянных NVE моделирований начатых в соответсвующей точке на некоторой траектории аналитические, но не бинарные идентичны md leap-frog интегратору. Кинетическая энергия, которая определяется из целого шаг скоростей и, следовательно, немного слишком высокой. Преимущество этого интегратора, он является более точным в плане: обратимые Nose-Hoover и Parrinello-Rahman связи /* соедининий */  интеграции на основе расширения Trotter, а также (чуть слишком мала) полный вывод скорости шага. Все это происходит за счет отключение дополнительных вычислений, особенно с ограничениями и предоставление дополнительных связей параллельно. Заметим, что для проведения большинства моделирований md интегратор является достаточно точным.
                            = md-vv-avek    // алгоритм скорости Верле идентичны md-vv, кроме того, что кинетическая энергия определяется как среднее из двух полшагов кинетической энергии, как и в MD интеграторе, и это, следовательно, более точно. С Nose-Hoover и/или Parrinello-Rahman связи /* соедининий */ это проходит с небольшим увеличением вычислительных затрат.
                            = sd         // точный скачкообразный (leap-frog) стахонистический динамический интегратор. /* 4 гауссовых случайных числа запрашивает через интеграциионый шаг согласно степеням свободы. */ С ограничением, координаты необходимо ограничить дважды за интеграционный шаг. Зависимость в компьютерных ресурсах при сильных вычисленях такова, что это занимает существенную часть от времени моделирования. Температура для одной или более групп атомов tc_grps устанавливается в ref_t [K], инверсивные костанты трения для каждой группы устанавливаются в tau_t [ps]. Параметр tcoupl игнорируется. Рандоматор задается в ld_seed. /* Когда используется термостат, соответствующий значению для tau_t = 2 пс, то это приводит к трению, которое ниже чем внутреннее трение воды, в то время как оно достаточно высоко, чтобы удалить излишнюю высокую температуру (если cut-off
 или reaction-field электростатики используется). ОТМЕТЬТЕ: температурное отклонение распадается дважды так быстро как с термостатом Берендсена с занчением tau_t.
                            = sd1        // эффективный скачкообразный стахонистический динамический интегратор. Этот интегратор эквивалент sd, кроме этого он требует только одно гауссово случайное число и один ограничительный шаг. Этот интегратор менее точный. Для воды относительная ошибка в температуре с этим интегратором = 0,5 delta_t/tau_t, но для остальных систем она может быть выше. Используйте с оторожностью и проверяйте температуру.
                            = bd        // Эйлеровский интегратор для динамики Броуна или позиционной динамики Ланжевена, скорость - сила разделенная на ф-цый коэффициент bd_fric [amu ps-1/10] + случайные тепловые помехи ref_t. Когда bd_fric=0 ф-цый коэффициент для каждой частици вычисляется как масса/tau_t, как для интегратора sd. Генератор случайных чисел инициализируется в ld_seed.
                            //следующие 3 интегратора реализуют различные алгоритмы минимизации энергии
                            = steep     // запуск пошагововой минимизации. Максимальный размер шагов emstep [nm], допустимое отклоненние от среднего emtol [kJ mol*1/10 nm*1/10].
                            = cg        // алгоритм сопряженных градиентов для минимизации энергии, допустимое отклоненние от среднего emtol [kJ mol-1/10 nm-1/10]. CG более эффективен, когда самый крутой шаг по спуску делается время от времени, это определено nstcgsteep. Для минимизации до нормального способа анализа, который требует очень высокой точности, GROMACS должен быть собран с double.
                            = l-bfgs    // квазиньютоновский алгоритм минимизации энергии согласно подходу с /* низкой памятью */ Broyden-Fletcher-Goldfarb-Shanno. На практике, это представляется более быстрой сходимостью чем метод Сопряженных градиентов, но из-за необходимой коррекции шагов он (пока) не распараллелен.
                            = nm         // нормальный способ анализа выполняемый на структуре в *.tpr файле. Gromacs должен быть скомпилирован с double.
                            = tpi        // пробная частица для вставки. ...
                            = tpic        // пробная частица для вставки в предопределенную позицию. ...
        tinit                = [0]         // стартовое время для вашего запуска (используется только с интеграторами md, sd и bd)
        dt                     = 0.002        // временной шаг для инегратора (используется только с интеграторами md, sd и bd) [здесь = 2фс]
        nsteps                 = 400        // это MAX число итераций, обычно равно времени релаксации * 500.(10 пс * 500 = 5000)
        init_step            =  [0]        // стартовый шаг. Время в шаге i в пробеге вычислено как: t = tinit + dt * (init_step + i). lambda свободной энергии вычислена как lambda = init_lambda + delta_lambda*(init_step + i). Также неравновесные параметры MD могут зависеть от числа шага. Таким образом для точных перезапусков или частичного переделывания пробега могло бы быть установлено init_step (в число шагов) структуры перезапуска. tpbconv делает это автоматически.
        comm-mode            =  Linear    // способ удалений движений ЦМ, удаление поступательных движений.
                            =  Angular    // удаление поступательных и врощательный вокруш ЦМ движений.
                            =  no        // нет ограничений на движения центра масс.
        nstcomm             =  1        // частота с которой удаляются движения центр масс в шагах интегрирования.
        comm-grps            =             // группа(ы) для удаления движения у ЦМ. по умолчанию целая система.
    ============    Динамика Ланжевена
    Langevin dynamics
        bd_fric                = [0]        // Броуновский динамический коэффициент трения. Когда =0, коэффициент трения для каждой частицы вычисляется как  mass/tau_t. (amu ps-1/10)
        ld_seed                = [1993]    // используемый, чтобы калибровать случайный генератор для тепловых помех для стохастической и броуновской динамики. Когда ld_seed установлен в -1, отбор вычислено как (время () + getpid ()) % 1000000. /* Когда запускаете db или sd на множестве процессоров, каждый из них исппользует seed (рандоматор) ровно столько чему равно ld_seed + номер процессора. */
    ============
    Минимизация энергии
    Energy minimization
        emtol                 = [10]         // минимизация остановиться в момент, когда максимальная сила будет равна этому занчению (Дж/(моль*нм)) /*F=2*ПИ*Частота_осцилятора*sqrt(2*m*k*T) - Раздел 3.10.1*/
        emstep                 = 0.01        // начальный размер шага (нм)
        nstcgsteep            = [1000]     // частота с которой система осуществляет операцию ускоренного спуска (в шагах), это ускоряет процесс оптимизации, но несколько снижает точность. При слишком частых таких операциях возрастает вероятность локализации системы в неглубокм промежуточном минимуме.
        nbfgscorr            = [10]        // число корректирующих шагов для использования L-BFGS минимизации. Самый высокий (по крайней мере теоретически) более точный, но медленный.
    ============
    ; Shell Molecular Dynamics
    ...
    ============
    ; Test particle insertion
    ...
    ============
    Контроль выходных данных
    Output control
        nstxout             =  50    // частота записи координат в файл trajectory (шаг)
        nstvout                =  1000    // частота записи скоростей в файл trajectory (шаг)
        nstfout             =  0    // частота записи значений силы, в файл trajectory (шаг)
        nstlog              =  10    // частота записи промежуточных мини отчетов в лог файл. (шаг)
        nstenergy           = 10    // частота записи в файл энергий, температуры и т.д. в энергетический файл *.edr. (шаг)
        nstxtcout            = [0]     // частота записи координат xtc trajectory (шаг)
        xtc-precision        = [0]     // точность записи в xtc trajectory
        xtc-grps            =        // группы для записи в xtc trajectory, по умолчанию вся система (если nstxtcout больше чем 0).
        energygrps            =  Protein    SOL // кол-во групп для записи в файл энергии
    ============
    Поиск соседних атомов (частиц)
    Neighbor searching
        nstlist             = >0            // частота обновления соседних ячеек , обновление каждые 10 шагов.
                            = 0             // список соседий строится один раз и более не обнавляется. Это бывает полезно для моделирования в вакууме, когда все частицы видят друг друга.
                            = -1            // автоматизировать частоту обновленей. Это можно использовать переключая, перемещая или используя потенциал, где cut-off меньше, чем rlist. У каждого тогда есть буфер размера rlist минус самое длинное cut-off. Соседний список только обновлен, когда одна или более частиц переместились далее, чем половина размера буфера, от геометрического центра ее зарядовой группы, относительно местоположения определеного при предыдущем поиске соседей. Координатные измерения должены оказать давление на смесь или принить во внимание deform опцию. Этота опция гарантирует, что нет cut-off артифактов. Но для больших систем это может затребовать высоких вычислительных ресурсов, так как частота обновления списка соседей будет определена только одной или двумя частицами, перемещающимися немного вне половины длины буфера (который даже не обязательно подразумевает, что список соседей недействителен), в то время как для 99.99 % частиц прекрасен.
        ns_type             = grid            // создание сетки и проверка только атомов в соседней ячейки сетки, когда создастся новый сосед в списке каждые nstlist шагов. В больших системах поиск сетки намного быстрее, чем simple поиск.
                            = simple         // проверка всех атомов в ячейке по томуже принципу, что и grid.
        pbc                    = xzy             // Использовать периодические граничные условия во всех направлениях.
                            = no            // Не использовать периодические граничные условия, игнорировать ячейку, работает только с ns_type=simple. Для моделирования без cut-offs установит все cut-offs в 0 и nstlist=0. Отметьте, что для больших молекул более эффективно использовать pbc=xyz, потому что это позволяет использовать поиск по сетке соседних атомов.
                            = xy             // использовать периодические граничные условия только в x и y направлениях. Это работает только с ns_type=grid и может быть использовано в комбинации с walls (преградой). Без преград или с одной преградой системные размеры бесконечны в z направлении. Поэтому давление смеси или суммирующий метод Ewald`a не могут быть использованы. Для толстых слоев соседей будет проис медлено, как будто используется simple поиск для z направления. Все эти неудобства не применяются, когда две преграды используются.
        periodic_molecules    = no            // молекулы конечны, быстро молекулярный pbc может использоваться.
                            = yes            // для систем с молекулами, которые соединяются самостоятельно через периодические граничные условия, это требует более медленного pbc алгоритма и молекулы не будут целыми на выходе.
        rlist                 = 0.9            // MAX расстояние для поиска соседних атомов (нм)
    ============
    Электростатика
    Electrostatics
        coulombtype         = Cut-off         // Двойное сокращение диапазона с neighborlist сокращением rlist и сокращением Кулона rcoulomb, где rcoulomb> = rlist.
                            = Ewald         // Классическая евальдова сумма электростатики. Реально-пространственное сокращение rcoulomb должно быть равным rlist. Используйте например, rlist=0.9, rcoulomb=0.9. Самая высокая величина векторов волны, используемых в аналогичном прос-ве, управляется fourierspacing. Относительная точность прямого/взаимного пр-ва управляется ewald_rtol. ОТМЕТЬТЕ: Ewald измеряет как O (N3/2) и является таким образом чрезвычайно медленным для больших систем. В большинстве случаев, PME выступит намного лучше.
                            = PME            // Быстрая Петля частицы Ewald`a (Particle-Mesh Ewald) в электростатике. Прямое прост-во подобно сумме Ewald, в то время как аналогичная часть выполнена с FFTs. Измерения сетки управляются с fourierspacing и интерполяцией порядка в pme-order. С интервалом сетки 0.1 нм и кубической интерполяцей электростатические силы имеют точность от 2 - 3e-4. Так как ошибка от vdw-сокращения больше, чем это значение, вы могли бы попробовать 0.15 нм.
                            = PPPM            // Particle-Particle Particle-Mesh алгоритм для дальне действующего электростатического взаимодействия. Используйте например rlist=0.9, rcoulomb=0.9. Измерения сетки управляются fourierspacing. Разумный интервал сетки для PPPM составляет 0.05-0.1 нм, См. Shift для деталей потенциала частица-частица.
ОТМЕТЬТЕ: давление в неверно, когда используется PPPM.
                            = Reaction-Field     // Реакционное поле с Куллонм - обрезанным rcoulomb, где rcoulomb> = rlist. Диэлектрическая константа вне сокращения - epsilon_rf. Диэлектрическая константа может быть установлена в бесконечность, устанавливая epsilon_rf=0.
                            = Generalized-Reaction-Field     // Обобщенное реакционное поле с сокращением Кулона rcoulomb, где rcoulomb> = rlist. Диэлектрическая константа вне сокращения - epsilon_rf. Ионная сила вычислена от числа заряженных (то есть с не нулевым зарядом) заряженных групп. Температура для потенциала GRF установлена в ref_t [K].
                            = Reaction-Field-zero        // нулевое реакционное поле. В GROMACS`е нормальное реакционное поле электростатики плохо сохраняет заряд. Reaction-Field-zero решает эту проблему, делая потенциальный ноль постоянным. Его можно  использоваться только с бесконечной диэлектрической константой (epsilon_rf=0), потому что только это значение силы исчезает при cut-off. rlist должен быть от 0.1 до 0.3 нм больше чем rcoulomb, чтобы приспособиться для размера зарядовых групп и добавиться в список соседей при обновлении. Это, и тот факт, что просмотры таблицы делаются не аналитическими функциями, делают Reaction-Field-zero в вычислительном отношении более ресурсоемким, чем нормальное реакционное поле.
                            = Reaction-Field-nec    // тоже что и реакционное поле, но пдоддерживалось в Gromacs`e версиях до 3.3. /* Исправления реакционного поля не приминимы к исключеным атомным парам ии самим парам. */ 1-4 взаимодествия вычисляются используя реакционное поле. Недостающее исправление из-за исключенных пар, у которых нет 1-4 взаимодействий достигают нескольких процентов от общей электростатической энергии и вызывают незначительные отклонения /* различия */ в силе и давлении.
                            = Shift         // Куллоновский потенциал уменьщенный по целому диапазону, и силы убвают равномерно к 0 между rcoulomb-switch и rcoulomb. Поиск соседей из rlist должен быть от 0,1 до 0,3 нм больше, чтобы rcoulomb приспособился к размерам зарядовых групп и добавиться в список соседей при обновлении.
                            = Encad-Shift    // Куллоновский потенциал уменьщенный по целому диапазону, используется при определении для Encad - пакета моделирования.
                            = User            // mdrun будет сейчас искать файл table.xvg с определенными пользователем потенциальными ф-циями для отталкивания, дисперсииями и Куллоном. Когда пара взаимодействия представлена, mdrun искать файл table.xvg для парного взаимодействия. Когда некоторые взаимодействия должны быть использованны для не связного и парного взаимодействий пользователь может создать файловое имя для обойх таблиц файлов. Эти файлы должны содержать 7 столбцов : х значение, f(x), -f'(x), g(x), -g'(x), h(x), -h'(x), где f(x) ф-ция кулона, g(x) - дисперсионная ф-ция и h(x) ф-ция отталкивания. Когда vdwtype не установлен User значения для g(x), -g'(x), h(x), -h'(x) игнорируются. Для несвязных взаимодействий х значения должны быть пробегать от 0 до самой большого радиуса обрезания + table-extension и должны быть устанвлены равными интервалами. Для парнного взаимодействия должны быть использована таблица длинн в файле. Оптимальным промежутком, которы используется для не пользовательских таблиц является 0,002 нм, когда вы запускаете в одинарной точности или 0,0005 нм в двойной. Функциональное заначение x=0 не важно. Для большей информации смотрите мануал.
                            = PME-Switch    // Комбинация PME и Switch ф-ций для прямо-пространственного взаимодействия частей. rcoulomb позволяют быть меньшим, чем rlist. Это является большей частью полезной постоянной энергии минимизации. Для моделирования постоянной температуры преимущество - улучшено сохранение энергии, обычно перевещивающее при малых потерях в точной электростатике.
                            = PME-User        // комбинация PME и пользовательских таблиц. rcoulomb позволяют быть меньшим, чем rlist. Вклад PME Mesh  вычитается из пользовательских таблиц mdrun`om. Потому что это вычитание пользовательских таблиц должно вмещать около 10 десятичных позиций.
                            = PME-User-Switch    // комбинация PME-User и Switch ф-ций. Switch ф-ции применяются для финального взаимодействия частица-частица, например для обеих  пользователских предложенных ф-ции и PME Mesh корректирующих частей.
        rcoulomb-switch     = [0]            // где начало переключения на Кулоновсий потенциал (нм)
        rcoulomb             = 0.9            // мах радиус куллоновского взаимодействия (нм)
        epsilon_r            = [1]            // относительная диэлектрическая константа. 0 = бесконечности
        epsilon_rf            = [1]            // относительная диэлектрическая константа реакционного поля. Она используется только с реакционным полем электростатики. Значенеи 0 = бесконечности.
    ============
    Настройки В-Д-В
    VdW
        vdw-type            = Cut-off        // параметр, регулирующий двойное расстояние обрезания списка соседей rlist и В-Д-В радиус обрезания rvdw, где rvdw >= rlist.
                            = Shift         // Л-Д (не Букенгем) потенциал уменьщенный по целому диапазону и силы убвают равномерно к 0 между rvdw-switch и rvdw. Поиск соседей из rlist должен быть от 0,1 до 0,3 нм больше, чтобы rvdw приспособился к размерам зарядовых групп и добавиться в список соседей при обновлении.
                            = Switch         // Л-Д (не Букенгем) потенциал нормально начинается на rvdw_switch, после которого он выключается достигая нуля в rvdw. Оба потенциальная и силовая ф-ции непрерывно гладкие, но знаем, что все switch ф-ции дадут повышение /* подъем */ выпуклости (прирост, увеличение) в силе (так как мы переключаем потенциал). Поиск соседей из rlist должен быть от 0,1 до 0,3 нм больше, чтобы rvdw приспособился к размерам зарядовых групп и добавиться в список соседей при обновлении.
                            = Encad-Shift     // Л-Д (не Букенгем) потенциал уменьщенный по целому диапазону, используется при определении для Encad - пакета моделирования.
                            = User             // смотрите User для coulombtype. Функциональное заначение x=0 не важно. Когда вы хотите использовать Л-Д коррекцию, убедитесь, что rvdw соответствует обрезанию в определенной пользователем ф-ции. Когда coulombtype не установлено в User, значения для f(x) и -f'(x) игнорируются.
        rvdw-switch            = [0]            // где начало переключения на Л-Д потенциал (нм)
        rvdw                 = 0.9            // max радиус взаимодействия для потенциала Л-Д или Букенгема
        DispCorr            = no             // не использовать коррекцию
                            = EnerPres         // использовать коррекцию для энергии и давления на дальних расстояниях
                            = Ener            // использовать коррекцию для энергии только на дальних расстояниях
    ============
    Таблицы
    Tables
        table-extension        = [1]            // Расширение для несвязных потенциалов, поиск таблиц вне дистанции наибольшего обрезания. Значение должно быть достаточно большим для размеров зарядовых групп и добавления в список соседей при обновлении. Без определенного пользователем потенциала определенная табличная длина используется для поиска 1-4 взаимодейсвия, которые всегда сводятся в таблицу независимо от использования таблиц для несвязных взаимодействий.
        energygrp_table        =                 // когда пользователь использует таблицы для электростатики и/или В-Д-В, в этом параметре можно задать пары энергетических групп, для которых дожны использоваться раздельные таблицы. Две энергетических группы добавлены к имени файла таблицы, в порядке определенном в energygrps, разделенные подчеркиванием. Например, если energygrps = Na Cl Sol и energygrp_table = Na Na Na Cl, mdrun прочитает table_Na_Na.xvg и table_Na_Cl.xvg в дополнение к нормальному table.xvg, который будет использоваться для всех других энергетических пар групп.
    ============
    Настройки для Ewald
    Ewald
        fourierspacing        = [0.12]        //максимальное сетевой промежуток для FFT сети, когда используется PPPM или PME. Размеры ячейки постоянны с наивысшей важностью используются в каждом направлении для обычного Ewald промежутка времени. Во всех случаях каждое измерение может быть онулированно при входе в ненулевое значение для fourier_n*. Для оптимизации относительной загрузки взаимодействия частица-частица и mesh of PME части  полезно знать что точность электростатики остается почти постоянной, когда куллоновское обрезание и PME сетевой отрезок масштабируюьтся этой опцией.
        fourier_nx (0) ; fourier_ny (0) ; fourier_nz: (0)    // Наивысшая величина волновых  векторов во ваимном прост-ве, когда используется Ewald. Размер сети, когда используется  PPPM или PME. Если установлены нули, то используется fourierspacing. Лучше приводить 2,3,5 и 7 и просто избегать длинных.
        pme_order            = [4]            // интерполяционынй порядок для PME. 4 равно кубичексой интерполяции. Вы можете попробывать 6/8/10, когда запустите параллельно и одновременно уменьшите размеры сети.
        ewald_rtol            = [1e-5]        // относительная сила для  Ewald-shifted прямого потенциала в rcoulomb задается к ewald_rtol. Уменьшив это значние вы получите больше точных прямых сумм, но тогда вам надо больше волновых векторов для аналогичных /* взаимных */ сумм.
        ewald_geometry        = 3d             // суммы Ewald считаются во всех 3 измерениях
                            = 3dc            // аналогичные суммы все еще вычисляются в 3d, но силы и потенциалы корректировки применяются в z измерении производя pseudo-2d суммирование. Если ваша система имеет кусочную /* блочную */ геометрию в х-у плане,вы можете попробовать увеличить z-измерение ячейки (высота ячейки в 3 раза больше высоты блока, обычно ок) и использовать эту опцию.
        epsilon_surface        = [0]            // это контроль дипольных исправлений для Ewald сумм в 3d. Значение по умолчанию равное 0, означает выключено. Включите для регулированяи заначения относительной диэлектрической постоянной воображаемой поверхности вокруг вашей бесконечной системы. Будте осторожны используйте это, если у вас есть свободные подвижные заряды в системе. Это значение не затрагиевает вариант блока 3dc для дальнодейтсующей корректировки.
        optimize_fft        = no            // не вычислять оптимальный FFT план для сети при запусе.
                            = yes             // вычислять оптимальный FFT план для сети при запусе. Это сохранит несколько процентов для длительного моделирования, но займет пару минут при старте.
    ============
    Температура смеси (Термостатированаие)
    Temperature coupling
        Tcoupl              =  berendsen    // использовать термостат Берендсена
                            =  no            // параметр температуры смеси [не установлены]
        tc-grps                 =  Protein    SOL    // для этих групп следует поддерживать температуру на заданном уровне
        tau_t               =  0.1    0.1        // временная константа для температуры (пс) - характерное время срабатывания термостата, знаменатель показетеля степени члена описывающего знакопеременное трение. Чем больше число, тем более медленным будет термостат.
        ref_t               =  298    298        // значение температуры поддерживаемое в системе (К)
    ============
    Давление смеси (Баростатирование)
    Pressure coupling
        Pcoupl              =  berendsen    // алгоритм баростатирования - экспоненциально релаксационное давление смеси с временной константой tau_p. Ячейка общитывается каждый временной шаг. Утверждается, что это не приводит к правильному термодинамическому ансамблю, но это - самый эффективный способ для вычислений в ячейки в начале моделирования.
                            =  Parrinello-Rahman    // давление смеси расширенного ансабля, где длины ячейки являются субъектами уравнения движения. /*Уравнения движения для атомов соединились в это.*/ Нет никаких мгновенных вычислений. Как для Nose-Hoover температуры смеси временная константа tau_p - это период колебаний /* значения */ давления в равновесии. Это возможно лучшый метод, который вы можете применить для вычисления давления в течении сбора экспериментальных данных, но остерегайтесь, что вы можете получить очень большие колебания, если вы начнете с другого /* различного */ давления.
                            = no             // нет давления у смеси. Это значиет неподвижный размер коробки.
        pcoupltype            =  isotropic    // - геометрия баростатирования, поддержание Паскалева давления, - изотропное давление смеси с временной константой tau_p. Сжимаемость и рекомендованное давление устанавливаются с compressibility [bar-1] и ref_p [bar], нужно только одно значение.
                            =  ...
        tau_p               =  0.1            // временная константа для смеси (пс) - заменатель экспоненты описывающей поведение стенок ячейки, при отклонение давления от заданного. /* тот же смысл что и у tau_t */
        compressibility     =  4.47e-6    ; P=0.1MPa T=298K    // сжимаемость системы (плотность) в барах*(1/10)
        ref_p               =  0.000001    ; P=0.1MPa    // давление, поддерживаемое в системе (бар). Параметр актуален для баростата Парринелло-Рахманина.
        refcoord_scaling    =  ...
    ============
    Моделирование отжига
    Simulated annealing
    Моделируемым отжигом управляют отдельно для каждой температурной группы в GROMACS. Рекомендуемая температура - кусочная линейная функция, но Вы можете использовать произвольное число пунктов для каждой группы, и выбрать или единственную последовательность или периодическое поведение для каждой группы. Фактический отжиг выполнен, динамически изменяя рекомендуемую температуру, используемую в выбранном алгоритме термостата, так что помните, что система не будет обычно мгновенно достигать рекомендуемой температуры!
        annealing            = no             // не моделируется отжиг, только смешивание при рекомендуемой температуре.
                            = single        // одиночная последовательность отжигаемых точек. Елси ваше моделирование дольше чем время последней точнки, температура будет соединена, это константное значение достигнет после отжигаемой последовательности в последней точке.
                            = periodic         // отжиг стартует перед первой рекомендуемой точкой как только последняя рекомендуема завершена. Это повторяется до тех пор пока моделированеи не кончется.
        annealing_npoints    =                 // список с номерами отжигаемых рекомендуемых/контролируемы точек используемый для каждой температурной группы. Используйте 0 для групп чтобы не отжигаемых. Число записей должен быть равен числу температурных групп.
        annealing_time        =                // список времен для отжига рекомендуемых/контролируемы точек используемый для каждой групппы. Елси вы используете переодический отжиг, время должно быть использовано по модулю последнего значения, т.е. если занчение 0,5,10 и 15, смешивание рестартует за 0 пс значение после 15 пс, 30 пс, 45пс и т.д. Число записей должен быть равен числу температурных групп.
        annealing_temp        =                 // Список температуры для отжига рекомендуемых/контролируемы точек используемый для каждой групппы. Число записей должен быть равен числу температурных групп. Путаетесь? ОК. давайте рассмотрим на примере. Предположим у вас есть 2 темп. группы, установленно в annealing = single periodic, число точек для каждой группы annealing_npoints = 3 4, время annealing_time = 0 3 6 0 2 4 6 и наконец температура annealing_temp = 298 280 270 298 320 320 298. Первая группа будет смешиваться при 298K 0ps, но рекомендуемая температура будет падать линейно достигая 280 К за 3 пс, и потом линейно между 280 К и 270 К с 3 пс 6пс. После этого останется константа, к 270 К. Вторая группа смешивается при 298 К за 0 пс, линейно возрастая к 320 К за 2 пс, откуда останется константа до 4 пс. Между 4 пс и 6 пс уменьшится до 298 К, и потом стартует по образцу снова, т.е. повышаясь линейно от 298 К до 320 К межде 6 пс и 8 пс. Итоги проверки печатет grompp, если вы неуверены!
    ============
    Генерация скоростей
    Velocity generation
        gen_vel             =  yes            // генерация начальных скоростей
                            =  no            // генерация начальных скоростей, no - не генерируются скорости при старте системы, устанавливаются = 0, когда скоростей во входном структурном файле (*.mdp) ; yes  - генерируются скорости согласно распределения Максвела по температуре gen_temp [K], случайным образом gen_seed, это является значимым параметром только с интегратором md.
        gen_temp            =  298            // температура генерации
        gen_seed            =  173529        // рандоматор
    ============
    Связи
    Bonds
        constraints            =  none         // Никакие ограничения за исключением определенных явно в топологии, т.е. связей представленных гамоническим (или другим) потетенциалом или Морзе потенциалом (зависящем от настроек morse) и углов в гармоническом (или другом) потенциале.
                            =  hbonds        // ограничить связи водородных атомов /*Конвертировать связи Н-атомов в ограниченные*/
                            =  all-bonds    // ограничить все связи.
                            =  h-angles        // ограничть все связи и дополнительно углы, которые затрагивают Н-атомы.
                            = all-angles    // ограничить все связи и углы.
      
        constraint-algorithm = LINCS         // линейное ограничение. С домином декомпозиции параллельной версии P-LINCS используется. Точность устанавливается в lincs_order, которы й задает номера матриц в расширении для матрицы инверсии. После матрица иверсии коректирующего алгоритма делает повторные исправления компенсируя ожидаемые увеличения /* удлинения */ вращения. Число такой итерации может быть проконтролирован в lincs_iter. Средний квадрат корня относительного ограниченного отклонение печатается в лог файл каждые nstlog шагов. Если связь вращается больше, чем на lincs_warnangle за шаг, будет выведен варнинг в оба файла лог и stderr. LINCS не должен быть использован с угловым ограничением.
                             =  SHAKE         // немного медленее и менее стабилен, чем LINCS, но работает с угловыми ограничениями. Относительная толерантность устанавлиается в shake_tol, 0.0001 - хорошее значение для "нормальной" МД. SHAKE не поддерживает ограничения между атомами ранзличных узлах, таким образом не может быть использован в доменах декомпозиции, когда группы зарядов представленны ограниченно. SHAKE не может использоваться в минимизации энергии.
        unconstrained_start = no            // приминить ограничения при старте конфигурации и переустановить /* shells */
                            = yes            // не применять ограничения при старте конфигурации и не преустанавливать /* shells */, полезно для правильного продолжения и перезапуска.
        shake-tol            = [0.0001]        // относительная терпимость для SHAKE
        lincs-order            = [4]            // высший порядок в расширении /* растяжении */ ограниченой смесительной матрицы. Когда ограничивается треугольник, дополнительное расширение порядка применяется на главном нормальном расширении только для смеси /* сцепления */ внутри треугольника. Для "нормального" МД моделирования порядок = 4 обычно приемлим, 6 необходим для длительных шагов с виртуальными участкамии или BD. Для точной минимизации энергии можно ставить /*требовать */ прорядок 8 или более. В доменах декомпозиции, размер ячейки ограничен расстоянием промежутка  lincs_order+1. Когда хочеться вычислить дальше этого предела, он может быть быть уменьшин lincs_order и увеличен lincs_iter, так как точность не ухудшается, когда (1+lincs_iter)*lincs_order остается постоянной.
        lincs-iter            = [1]            // число итераций для исправления вращательного удлиннеия в LINCS. Для нормального запуска одиного шага достаточно, но для NVE запусков, где вы хотите сохранить правильную энергию или для правильной энергии минимизации вы можете увеличит до 2.
        lincs-warnangle        = [30]             // максимальное значение угла, на которое связь может поворачиваться */ перед тем как LINCS будет не доволен */ (градусы)
        morse                = no            // связи представляют гармоническим потенциалом.
                            = yes            // связи представлены потенциалом Морзе.
    ============
    ; Исключения энергетических групп
    ; Energy group exclusions
    ...
    ============
    ; Барьеры
    ; Walls
    ...
    ============
    ; COM натяжение
    ; COM pulling
    ...
    ============
    ; ЯМР обработка
    ; NMR refinement
    ...
    ============
    ; Вычисления свободных энергий
    ; Free energy calculations
    ...
    ============
    ; Не равновесная молекулярная денамика
    ; Non-equilibrium MD
    ...
    ============
    Электричекие поля
    Electric fields
        E_x ; E_y ; E_z:        =         // если вы хотите использовать электрические поля в направлении, введите 3 числа соответсвенно E_*, первое число: число косинусов, отлько 1 осуществимо (с частотой 0), итак вводите 1, второе число: сила электричекого поля в V nm-1/10, третье число: фаза косинуса, вы можете ввести любые числа здесь, так как косинус нулевой частоты не имеет фазы.
        E_xt; E_yt; E_zt:         =        // пока не поддерживается
    ============
    ; Смешивание частей / классическая МД
    ; Mixed quantum/classical molecular dynamics
    ...
    ============
    ; Пользовательсие определения значений
    ; User defined thingies
    ...


Более подробное описание можно найти в руководстве пользователя раздел 7.3 страница 183...

P.S. Если статья была вам полезна проголосуйте в опросе блога, этим вы скажите СПАСИБО Автору, также можно обсудить её на Форуме. 

Назад к оглавлениюруководство по Gromacs

2 комментария:

  1. Вы уверены, что
    E_xt; E_yt; E_zt: not implemented yet
    означает "более не поддерживается", а не "пока не реализовано"?

    ОтветитьУдалить
  2. да верно, "пока не реализовано", косяки у всех бывают... )))

    ОтветитьУдалить

Ваш комментарий будет "принят к сведению" и пойдет на рассмотрение.