• Алгоритмы
  • Алгоритмы - CyberGuru.ru - все об IT и программировании

Фрактал «магнитный маятник» - Использование приложения

ОГЛАВЛЕНИЕ

Использование приложения

Графический пользовательский интерфейс

Объяснение графического пользовательского интерфейса простое. Его нет! Все параметры модели читаются из файла INI, передаваемого в качестве единственного параметра программы. Приложение открывает единственное окно. Сразу начинается расчет. Так как ждать результата расчета скучно, была встроена интерактивность. Всегда, когда вы двигаете мышью, вычисляется траектория, начинающаяся с текущего положения мыши, и рисуется в окне приложения. Это игрушка, но помогает получить представление об итоговом изображении путем изучения определенных начальных точек и влияния маленьких изменений. Если вы вышли на данную статью, ища эффект бабочки, используйте указанную функцию и наблюдайте за изменением траектории.

Чтобы узнать, что приложение вычисляет в текущий момент, нажмите правую кнопку мыши, чтобы увидеть траектории для пикселей, вычисляющихся сейчас.

 

Рисунок 5: Окно приложения с производящимся расчетом

Приложение использует многоядерные процессоры путем порождения одного потока вычислений на каждое ядро и привязывая поток к этому ядру. Данный подход использует Windows API, а не OpenMP, что было бы проще, но требовало бы Visual Studio 2005.

Формат файла конфигурации

Формат файла конфигурации точно такой же, как и для всех файлов INI Windows. Надо знать разделы, ключи и значения файла INI.

Раздел

Ключ

Описание

[Поле]

COLS

Число столбцов, используемых для дискретизации поля. Этот параметр задает ширину выходного изображения.

HEIGHT

Число строк, используемых для дискретизации поля. Этот параметр задает высоту выходного изображения.

SIM_WIDTH
(необязательный)

Ширина моделируемого поля в единицах длины (метр). Установлен вCOLS,если не задан.

SIM_HEIGHT

Высота моделируемого поля в единицах длины (метр). Установлен вROWS,если не задан.

WIN_WIDTH
(необязательный)

Ширина окна вывода в пикселях. Используйте этот параметр для корректировки ширины окна вывода при расчете изображений, превышающих размеры экрана. Установлен вCOLS,если не задан.

WIN_HEIGHT
(необязательный)

Высота окна вывода в пикселях. Используйте этот параметр для корректировки высоты окна вывода при расчете изображений, превышающих размеры экрана. Установлен вROWS,если не задан.

[Моделирование]

THREADS
(необязательный)

Определяет число потоков, порождаемых для расчета. Если не задано, это число равняется числу процессоров, сообщенному системой. Все потоки выполняются на разных ядрах, давая увеличение производительности в многоядерных системах (около 40% на двухъядерном процессоре).

FRICTION

Коэффициенттрения. Сила трения пропорциональна этому значению за вычетом скорости маятника.

PEND_HEIGHT

Высота плоскости маятника над плоскостью магнита в пикселях.

DELTA_T

Размер шагов интегрирования по времени в единицах времени. Чем меньше, тем точнее; это параметрhв формуле интегрирования Бимена.

MIN_STEPS

Минимальное число шагов, которое должна иметь каждая траектория перед проверкой условия прерывания.

MAX_STEPS

Максимальное число шагов, которое может иметь траектория. При достижении этого числа моделирование останавливается, даже если маятник не остановился над магнитом.

ABORT_VEL

Если скорость маятника падает ниже этой величины, он считается остановившимся.

COLOR_SCHEME

Уравнение, определяющее пересчет цвета пикселя. Пересчет цвета зависит от длины траектории и от максимальной длины траектории. Это математическое выражение должно содержать переменныеlenиmax_len(смотрите рисунок 2). Пример:1/(exp(0.000001*(len*len)))

BATCH_MODE
(необязательный)

Установите его в единицу для активации пакетного режима. В пакетном режиме приложение само завершает работу после окончания расчета. Это можно использовать для создания анимаций с применением сценариев командного процессора.

[Источник...]
... означает индекс

TYPE

Тип источника. ИспользуйтеINV_SQRилиLINEAR. Сила, вызываемая источником, пропорциональна расстоянию до маятника или обратному квадрату расстояния. Первый источник аналогичен закону Гука, а второй источник аналогичен закону Кулона(хотя это не закон Кулона, потому что речь идет о магнитах, а не электрических зарядах).

COLOR

Цвет источника.

RAD

Положения источников представлены в полярных координатах. Это расстояние источника от центра модели.

THETA

Положения источников представлены в полярных координатах. Это угол источника от центра модели.

MULT

Коэффициент пересчета силы.

SIZE

Размер источника. Условия прерывания проверяются, только если маятник ближе к источнику, чем многие пиксели.

Примеры файлов конфигурации находятся в подкаталоге данных. Если хотите создать собственные файлы конфигурации, начните с изменения одного из существующих файлов.

Галерея

Наконец, ниже представлено несколько изображений, вычисленных с помощью приложения. Изображения были получены с использованием разных наборов параметров относительно силы и количества магнитов, а также положения точки крепления маятника.

 

Рисунок 6: Галерея, показывающая изображения на основе разных наборов параметров