Расширить Z-Матрицу кластера алмаза
Расширить Z-Матрицу кластера алмаза
Всем доброго дня. Есть задача, имхо почти полностью математическая - рассчитываю на человека, имеющего довольно большой опыт в построении Z-Матриц. Суть: есть Z-Матрица кластера алмаза в форме пирамиды, терминированная атомами водорода; в ней 71 атом углерода, в основании находится площадка 3 на 3 атома С (прилагаю эту матрицу, можно посмотреть). Поставлена задача расширить ее математически таким образом, чтобы в основании находилась площадка 7 на 7 атомов (это соответствует кластеру с примерно 450 атомами углерода). C Z-матрицами мало знаком, а тут сразу такое... как выявить закономерность, не осилил. Кто поможет составить? Был бы чрезвычайно благодарен, матрица будет использоваться как модель в последующих квантохим. расчетах.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Расширить Z-Матрицу кластера алмаза
В нарисованном кластере на поверхности будут очень большие отталкивания между водородами. Полиамантаны с таким "дефектом" не существуют.
Теперь по существу вопроса:
Если бы мне понадобилась "пирамида", то я бы строил ее по следующему алгоритму.
1) Берем атом углерода и обьявляем его вершиной пирамиды, он принадлежит слою 1. В ангстреме от него ставим думмик и заявляем что это ось ОХ
2) отступаем от С вниз (ось OZ) на расстояние Х, ставим думми-атом, от него в горизонтальной плоскости под углом 120 градусов откладываем по Y, и размещаем атомы С, это слой 2. Х^2+Y^2=1.5^2, Угол думми-атом 1 слоя-атом второго слоя = 180-109.2 Величины Х и Y вычислите сами. Диэдралки каждого С задаем через думмик первого слоя
3) от каждого из атомов слоя 2 отступаем вниз расстояние Z (1.5 ангстрема) и ставим атомы С. Это слой 3. Добавляем к этому слою думмик, на вертикальной оси пирамиды.
После этих 3 шагов вы имеете 7 верхних атомов адамантана.
4) Последовательно перебираем все атомы слоя 3 и проводим с ними операцию 2, затем 3. Получаем слои 4 и 5. В этих слоях атомы начинают накладываться друг на друга. Эти дубли придется чистить, но это тоже можно сделать в цикле. сразу или после - решать вам как человеку пишущему скрипт. Только учтите что совпадать они будут в каст координатах, а зетматричное задание у них будет формально различным.
Итого в 4ом слое вы получите 9 атомов (6 реальных и три лишних), в 5ом разумеется столько же.
5) Последовательно перебираем атомы 5ого слоя, повторяя операции 2 и 3. Получаем слой 6 (если не подводит воображение - 10 реальных и много дублей) и 7 (столько же сколько и в 6).
Повторяем операцию до получения удовольствия (до нужного числа слоев). Потом убиваем последний нечетный слой.
Терминировать поверхность водородом в рамках такого алгоритма построения Зетматрицы несколько сложно, об этом можно подумать отдельно.
Упреждая вопросы: я не люблю и не пишу скрипты без крайней необходимости. Даже когда они облегчают работу. (да я мазохист). Соответственно это писать и даже читать тоже не буду. Блок схема есть, а воплотить ее в код - не мои проблемы )))
Если нехотите строить четные слои начиная с думмиков - задавайте их через атомы расстояния от атомов прошлого нечетного слоя, углы от прошлого четного слоя и диэдралки от позапрошлого нечетного слоя, но мне кажется что это сложнее.
Теперь по существу вопроса:
Если бы мне понадобилась "пирамида", то я бы строил ее по следующему алгоритму.
1) Берем атом углерода и обьявляем его вершиной пирамиды, он принадлежит слою 1. В ангстреме от него ставим думмик и заявляем что это ось ОХ
2) отступаем от С вниз (ось OZ) на расстояние Х, ставим думми-атом, от него в горизонтальной плоскости под углом 120 градусов откладываем по Y, и размещаем атомы С, это слой 2. Х^2+Y^2=1.5^2, Угол думми-атом 1 слоя-атом второго слоя = 180-109.2 Величины Х и Y вычислите сами. Диэдралки каждого С задаем через думмик первого слоя
3) от каждого из атомов слоя 2 отступаем вниз расстояние Z (1.5 ангстрема) и ставим атомы С. Это слой 3. Добавляем к этому слою думмик, на вертикальной оси пирамиды.
После этих 3 шагов вы имеете 7 верхних атомов адамантана.
4) Последовательно перебираем все атомы слоя 3 и проводим с ними операцию 2, затем 3. Получаем слои 4 и 5. В этих слоях атомы начинают накладываться друг на друга. Эти дубли придется чистить, но это тоже можно сделать в цикле. сразу или после - решать вам как человеку пишущему скрипт. Только учтите что совпадать они будут в каст координатах, а зетматричное задание у них будет формально различным.
Итого в 4ом слое вы получите 9 атомов (6 реальных и три лишних), в 5ом разумеется столько же.
5) Последовательно перебираем атомы 5ого слоя, повторяя операции 2 и 3. Получаем слой 6 (если не подводит воображение - 10 реальных и много дублей) и 7 (столько же сколько и в 6).
Повторяем операцию до получения удовольствия (до нужного числа слоев). Потом убиваем последний нечетный слой.
Терминировать поверхность водородом в рамках такого алгоритма построения Зетматрицы несколько сложно, об этом можно подумать отдельно.
Упреждая вопросы: я не люблю и не пишу скрипты без крайней необходимости. Даже когда они облегчают работу. (да я мазохист). Соответственно это писать и даже читать тоже не буду. Блок схема есть, а воплотить ее в код - не мои проблемы )))
Если нехотите строить четные слои начиная с думмиков - задавайте их через атомы расстояния от атомов прошлого нечетного слоя, углы от прошлого четного слоя и диэдралки от позапрошлого нечетного слоя, но мне кажется что это сложнее.
Re: Расширить Z-Матрицу кластера алмаза
Про отталкивания Н на поверхности я в курсе, это легко оптимизировать даже в Chem3D с помощью MM2-метода... можно и полуэмпирикой с заморозкой внутренних слоев или без нее. Это не проблема... проблема в том, что построить кластер по написанному я не смогу, слишком сложно. Скрипты никогда не писал, тем паче такие. Что ж, остается надеятся, что найдется кто-то, кто поможет с воплощением написанного.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 32 гостя