Главная / Дневники / Андрей Сидоренко / Запись
Классика жанра в вычислительной физике 22.09.2019 01:06
sidanko
26.02.2007
14:37
Игорь Иванов здесь недавно заметил об одной из особенностей работы физика-теоретика, занимающегося аналитическими расчетами. В вычислительной физике тоже есть свои жанр и классика

Например, численная диагонализации гамильтониана для расчета некоторых термодинамичесих свойств соединения. Так вот, для вычисления гамильтониан расписывается в виде матрицы. Матричные элементы рассчитываешь в ручную на бумаге. Чтобы не ошибиться при "забивании" всех матричных элементов в программу, сначала эту матрицу строишь не бумаге и выписываешь все ненулевые члены. Получается такая простыня, по которой ползаешь неделю как перо графопостроителя. Благо матрица эрмитова! И вот если ошибешься в каком-нибудь матричном элементе, то мало не покажется ...
Ответить предыдущая | следующая

КОММЕНТАРИИ:

26.02.2007 15:32#
spark
Классика жанра в вычислительной физике
Наверно, есть какие-то способы отловить описку при вбивании формул, например, проводя численные вычисления в каком-то пределе и сравнивя их с аналитическими результатами которые в этом пределе вычисляются явно.

Меня тутошний шеф (он шеф чисто формально :) ) недавно поразил. Я вычислил кое-какие вещи явно, ну теперь надо их вбивать в прогу и выполнять численное интегрирование (восьмимерное). Но в некотором простом случае всё считается аналитически до конца. Он мне говорит -- "как хорошо, что ты это посчитал, теперь у нас есть с чем сравниваться при отладки программы. А то бывает напишешь прогу для численного расчета, а верно она работает, неверно -- кто бы знал" :)
26.02.2007 16:29#
sidanko
Классика жанра в вычислительной физике
В том то и дело, что не вбивается закон или формула, а вбивается уже конкретное число. Т.е. заполняется двумерный массив чисел и эти числа отличны от единицы, если не равны нулю. Все матричные элементы рассчитываешь, например, в представлении неприводимых тензорных операторов, используя коэф. Клебша-Гордана, 3-j символы и теорему Вигнера-Эккарта. Ошибиться можешь запросто уже на это этапе! Потом нужно правильно разместить эти элементы в матрице, т.е. поставить на свои места, а затем перевести все позиции элементов на язык массивов. Вот и ломаешь голову где ошибься, при условии, что все остальное в программе сделано нормально! :)

Очень часто бывает, что нет простого способа проверить вычисления, особенно если учесть, что бываеют очень ресурсоемкие вычисления.
26.02.2007 17:50#
dims
Классика жанра в вычислительной физике
> Все матричные элементы рассчитываешь, например, в представлении неприводимых тензорных операторов, используя коэф. Клебша-Гордана, 3-j символы и теорему Вигнера-Эккарта. Ошибиться можешь запросто уже на это этапе!

Невероятно. Прямо как во времена Лейбница. И что, иностранцы тоже это вручную делают, как и мы? Ведь это же просто работа с символами. Или я чего-то не понимаю?

И сколько занимает этот процесс?
26.02.2007 17:44#
dims
Классика жанра в вычислительной физике
Неужели нельзя автоматизировать эту работу!? Разве в ней требуются какие-то нестандартные ходы?
26.02.2007 17:50#
sidanko
Классика жанра в вычислительной физике
В какой-то мере конечно можно, но тогда теряется возможность "расширения". Например, изменение симметрии или добавление "налету" еще одного взаимодействия, которое нельзя вычислить по теории возмущения.
26.02.2007 17:53#
dims
Классика жанра в вычислительной физике
Хм. Но разве нельзя создать какое-то средство, типа Maple, которое бы позволяло человеку выбирать, куда дальше двигаться, но просто проводило бы за него всю работу?

Или, ещё проще. Какое-то средство, которое просто следило бы, что не допущено ошибок, а писал бы всё человек.
26.02.2007 18:02#
dims
Классика жанра в вычислительной физике
Такой вопрос. А можно где-то взять настоящие (отсканированные?) выкладки настоящей работы учёных-физиков? То есть, не на этапе подготовки публикации, а именно то, что они пишут в значительно степени для себя. Есть ли тут какие-то стандарты?

Казалось бы, можно было бы написать программу, которая бы понимала такие команды, как "перенести в левую часть", "вынести за скобки", "выразить через" и так далее, в том числе более сложные и в том числе не только с простыми объектами, но и со всякими терзорами, элементами пространств и т.п.

Кажется, что такое средство могло бы облегчить работу. Или эти мысли слишком наивны?
26.02.2007 18:31#
spark
Классика жанра в вычислительной физике
А можно где-то взять настоящие (отсканированные?) выкладки настоящей работы учёных-физиков?

Могу отсканировать несколько листочков :)

Кажется, что такое средство могло бы облегчить работу. Или эти мысли слишком наивны?

Такие мысли многим приходят в голову. Но почему-то это еще не реализовано.
26.02.2007 19:43#
dims
Классика жанра в вычислительной физике
Пришлите, если не влом :) Если хоть я смогу понять переходы, то, возможно, может получиться обучить и машину.

А вот всякие там Maple и MATLAB, они для этого не подходят? Годятся только для учёбы?
26.02.2007 20:07#
sidanko
Классика жанра в вычислительной физике
Почему же не подходят! Очень часто используются для вычислений в квантовой физике и Maple, и Mathematica. Даже C++ можно научить работать с символьными вычислениями. Есть библиотеки и для работы с диаграммами Фейнмана. Таким образом, можно все рутину сбросить на них. Это тогда, когда все сам понимаешь как делается, как "кухня варится", и остается только посчитать.

А студентам учиться все-таки лучше на листке бумаги все писать ...
26.02.2007 20:46#
dims
Классика жанра в вычислительной физике
Почему же вы считаете рутину вручную? Значит Maple и иже с ней всё-таки в чём-то не устраивают?

И всё-таки, какие временные затраты у вас получаются на обработку?
27.02.2007 12:56#
sidanko
Классика жанра в вычислительной физике
Во-первых, я доверяю себе больше, чем программам, написанным другими. Во-вторых, иногда методы, использованные в них, меня не устраивают. Некоторые задачи, численно-аналитические, я все-таки считаю в Maple и Mathematica. Я не хочу сказать, что я вообще ими не пользуюсь. Иногда природная лень, а иногда нет желания тащить с собой ноутбук. Тетрадка и карандаш все-таки легче. Конечно, если надо искать глобальный минимум, то без компьютера уже никуда.

Про временные затраты никогда не задумывался. Иногда интеграл проще всего взять на бумаге (очень часто достаточно просто приблеженно прикинуть-оценить!), чем запустить компьютер, потом Maple, потом "вбить" интеграл, следуя правилам данной программы, потом получить ответ, который нужно проверить и т.д.
27.02.2007 16:58#
dims
Классика жанра в вычислительной физике
Я что-то потерял нить. Но зато нашёл про временные затраты. :)

По-Вашему получается, что ползать неделю по бумажной простыне не лень, а принести с собой ноутбук лень? Как-то это у меня не согласуется.

27.02.2007 17:11#
sidanko
Классика жанра в вычислительной физике
В данном случае я не имел ввиду конкретно задачу с той матрицей, так как там бессмысленно обсуждать возможность "алгоритмизации" - ее там почти нет. (Почти, так как можно, опять же, только для конкретного случая сделать калькулятор, который будет считать 3-j символы, н-р.) В других случаях все зависит от задачи. Ясно, что если мне нужно что-то оптимизировать-минимизировать я листком бумаги не обойдусь и никакой простыни мне не хватит ...

ЗЫ Кстати, бумага легче намного, чем ноутбук :)
27.02.2007 17:24#
dims
Классика жанра в вычислительной физике
Ну меня конкретно та задача заинтересовала: ведь это же явное место, где можно повысить эффективность труда. А сколько ещё таких мест?

Значит, Вы считаете, что если написать калькулятор 3-j символов, то это бы помогло?
27.02.2007 17:28#
sidanko
Классика жанра в вычислительной физике
Может быть! Если всю жизнь считать только это, то такой калькулятор безусловно повысит производительность. Кстати, они существуют сейчас, написанные на Java в сети. Однако, я это делал в середине 90-х и доступ в сеть был ограничен. И спасибо этому, так как я сам разобрался во многих вещах! Не думаю, что если бы я использовал подобный калькулятор, то понял бы столько.
27.02.2007 17:24#
sidanko
Классика жанра в вычислительной физике
И еще. Если показалось кому-то, что я против программирования или не люблю я это дело, то это ложное мнение, скорее всего связано с тем, что я не совсем точно выразился.

Немного о себе. Я начал программировать еще с МК-61, затем в 1990 году на ассемблере для процессоров Zylog и, конечно, на Бейсик'е для Sinclair. Потом делал это на Yamahe-2, БК-0010-01, IBM-совместимых. Языки программирования: Бейсик (кому-то может это смешно, но я это прошел и не жалею), ассемблер Z-80, Fortran, FoxPro, Python, С++. Работал программистом, о чем есть запись в трудовой книжке и, соответственно, разряд.

Так что я не против, если кто-то может что-то запрограммировать, но иногда это не имеет смысла ...
26.02.2007 20:52#
dims
Классика жанра в вычислительной физике
P.S. Про студентов. Мне тоже часто кажется, что для того, чтобы понять компьютер, нужно начинать учиться с ДОС или даже с программируемого калькулятора. Но чем дальше, тем больше я понимаю, что это всё-таки неправильно. Сейчас никто не пользуется таблицами логарифмов, многие численные методы заброшены, хотя 200 лет назад они широко применялись. Может быть даже, какие-то из этих методов и не изучаются. Сейчас это спокойно поручают машинам и никто не расстраивается. И из-за этого люди могут больше, чем раньше.

Так же и с символьными преобразованиями. Их не используют потому, что они плохо работают.
27.02.2007 12:58#
sidanko
Классика жанра в вычислительной физике
Все же физиков и математиков лучше всего учить считать на бумаге. Конечно, их нужно учить пользоваться современными средствами тоже и очень активно. Я не спорю, но человек должен понимать как и что происходит при вычислениях, чтобы не получить физически неверный результат.
26.02.2007 19:56#
dims
Классика жанра в вычислительной физике
P.S. Мой адрес dims12@mail.ru
26.02.2007 19:07#
sidanko
Классика жанра в вычислительной физике
Выглядит это как рутина и ничего больше! Я думаю, что у Игоря будет поинтереснее с его хиггсами ...

http://www.fis.unipr.it/home/sidorenko/temp_pdf/Binder3_d.pdf

Чтобы не оставлять этот отрывок в "подвешенном" состоянии, дам ссылку на работу, в которой были опубликованы отчасти и эти результаты:

N.P. Kolmakova et al., Low Temp. Phys 28 (2002) 653.
http://www.fis.unipr.it/home/sidorenko/pdf/LTP28_653.pdf
26.02.2007 19:29#
sergeygubanov
Классика жанра в вычислительной физике

> Неужели нельзя автоматизировать эту работу!?

Возможность сделать это определяется тем на сколько данный физик-теоретик умеет программировать.

Например, в Mathematica не предусмотрено средства для аналитических вычислений с тензорными индексами (когда по двум повторяющимся индексам, по соглашению Эйнштейна, подразумевается суммирование). Причём индексы чисто формальные, т.е. у них нет определённого численного значения, и размерность пространства равна символу dim (у которого тоже нет числового значения). Казалось бы это очень печальная ситуация. Однако, Mathematica это не только пакет предопределённых функций, но и полноценный язык программирования, на котором можно написать программу умеющую работать с выражениями с формальными индексами...

Формулу (12) из

http://sergeygubanov.narod.ru/InvariantGTT.pdf

я бы вручную замучился выводить. Индексы в ней - формальные символы (не числа). Написал программу на Mathematica, программа мне выдала эту формулу.

Иллюстрации :
26.02.2007 19:52#
dims
Классика жанра в вычислительной физике
Но Вы написали нечто, после чего Mathematica стала уметь работать с тензорными индексами? Или Вы на языке Mathematica описали последовательность действий над выражениями, выводящих формулу?
27.02.2007 18:40#
sergeygubanov
Классика жанра в вычислительной физике
> Но Вы написали нечто, после чего Mathematica стала уметь работать с тензорными индексами? Или Вы на языке Mathematica описали последовательность действий над выражениями, выводящих формулу?

 

Сама Mathematica не стала уметь делать это, но это делала моя программа написанная на Mathematica. Если интересно, програмку для Mathematica 5.1 вычисляющую упомянутую выше формулу (12) можно скачать от туда:


 
27.02.2007 12:09#
Классика жанра в вычислительной физике
Хм. Интересно. Я делаю так. Есть метод, которым аналитически считается нечто в определённой статье. Задача - расширить метод на более общий случай.

Вначале я повторяю вывод, результат которого дан в статье, самостоятельно, стартуя от их исходных выражений. Если получается, прекрасно.

Затем вычисляю то же для более сложного случая, который аналитически не считается, - уже численно. Подставляю параметры, при которых более сложный случай сводится к простому, и сравниваю численную кривую и кривую, полученную аналитически на первом этапе. Они должны совпадать. Вот это и есть некий критерий истинности для меня.
27.02.2007 12:39#
sidanko
Классика жанра в вычислительной физике
Это работает, если есть возможность использовать результаты так называемых точно решаемых задач. Вы же понимаете, что это не всегда (вернее, чаще всего) невозможно. Например, проверить аналитически численную диагонализацию гамильтониана, содержащего кристаллическое поле, квадрупольное взаимодействие, сверхтонкие взаимодействия и зеемановский член, задача непосильная. Можно только предпологать, что физически верно, а что нет. Конечно, если знаешь, что рассчитываешь полевую зависимость намагниченности парамагнетика, то кривая M(H) не может уменьшаться с полем.

С другой стороны, если до вас этого никто не делал?! Как тогда себя проверять при численном счете. Только интуиция, эксперимент и честность.
12.09.2007 19:33#
настроение:
заинтересованный
заинтересованный
Классика жанра в вычислительной физике
Здравствуйте! Прошу прощение за то, что так бесцеремонно встреваю в Ваш разговор, но я очень надеюсь, что Вы сможете мне помочь. У меня есть один вопрос, который на первый взгляд может показаться детским лепетом (но мне можно, т.к. "я еще не волшебник, а только учусь"). Буду очень признательна если кто-нибудь сможет мне подсказать где можно найти полную формулу для вычисления коэффициентов Клебша-Гордана с совершенно произвольными m и j (желательно в электронном виде). Заранее большое спасибо.
12.09.2007 21:05#
sidanko
Классика жанра в вычислительной физике
http://personal.ph.surrey.ac.uk/~phs3ps/cgjava.html

http://en.wikipedia.org/wiki/Clebsch-Gordan_coefficients

А лучше возьмите книгу Варшалович и др. "Квантовая теория углового момента" ...
13.09.2007 16:49#
Классика жанра в вычислительной физике
Спасибо большое! Вы мне очень помогли.
Архив | Дневники | Новости | Календарь
Вести дневник и оставлять комментарии могут только зарегистрированные пользователи
Логин:
Пароль:
Зарегистрироваться
Последние сообщения
Основные положения
Правила
Всего дневников: 764

Пользователей
в системе: 3386

Всего записей
и комментариев: 59465

Записей и комментариев
за последние 24 часа: 0
 ПОИСК ПОСТОВ
  по автору:
  по тексту:
 АКТИВНЫЕ ДНЕВНИКИ
 Все дневники  
e-mail: admin@arxiv.su       О проекте       RSS       Дизайны
©2009-2017 Архив. Все права защищены
Designed by tanyu6ka