WWW.DIS.KONFLIB.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

 
<< HOME
Научная библиотека
CONTACTS

Pages:     | 1 |   ...   | 15 | 16 ||

Куприянов владимир викторович численно-экспериментальное исследование вращательной динамики спутников планет 01.03.01 – астрометрия и небесная механика диссертация на соискание

-- [ Страница 17 ] --

Логический флаг trace определяет вывод текущих оценок ХПЛ и тра­ ектории в файл (значение «T» разрешает вывод, значение «F» — запрещает его). Шаг вывода задается параметром dtout. Если значение dtout 0, принимается dtout=tstep. При использовании углов Эйлера оценки ХПЛ и траектория выводятся в файл session.dat, где «session» — имя сессии (спутника) из файла satlce.job. Для каждого спутника создается отдельный файл session.dat. В приведенном выше примере траектории и ХПЛ для двух спутников будут записаны в файлы Hyperion.dat и Phoebe.dat, соответ­ ственно.

Файл session.dat имеет вид таблицы со столбцами В случае использования параметров РГ вывод производится в файл session-rh.dat (т.е., напр., Hyperion-rh.dat и Phoebe-rh.dat). В данном слу­ чае файлы имеют формат (т.е. формат аналогичен случаю углов Эйлера; в том числе, мгновенные оцен­ ки компонент ляпуновского спектра идут в той же последовательности — (1), (2), (3), (5) (3), (6) (2), (7) (1) ; последним идет (4), зна­ чение которого должно стремиться к нулю, см. выше).

Флаги trace_wa... trace_psi управляют выводом текущих компонент вектора положения в ходе интегрирования в отдельные файлы. В отличие от вывода траектории и текущих оценок ХПЛ в один файл с фиксирован­ ным шагом (см. выше параметры trace и dtout), в данном случае в файле фиксируются только локальные экстремумы координат — т.е., координата выводится, только если значение ее на предыдущем и следующем шагах ите­ рации строго меньше (локальный максимум) либо больше (локальный ми­ нимум) текущего. В случае сравнительно медленного изменении какой-либо координаты (обычно это ), т.е. если характерное время ее изменения зна­ чительно больше единицы, данный метод способен существенно уменьшить размер файла траектории, сохранив вид траектории и предельные значения координаты. При установке в «T» флага, соответствующего какой-либо коор­ динате, создается файл session-coord.dat, первый столбец которого со­ держит моменты времени, второй — значения координаты. Здесь session, аналогично файлу session.dat (см. выше) — это имя сессии (имя спутни­ ка); coord — символическое имя соответствующей координаты ( соответ­ ствует суффикс «-theta», — «-phi», — «-psi», — «-wa», — «-wb», — «-wc». Так, например, для комбинации флагов «T F F F T F» и сесии Hyperion будут созданы файлы Hyperion-wa.dat и Hyperion-phi.dat. В случае ис­ пользования параметров РГ к файлам добавляется суффикс «-rh» (в данном примере — Hyperion-wa-rh.dat и Hyperion-phi-rh.dat).

Включение флага traceint («T») разрешает вывод в файл session-integrator_dump.dat (session-integrator_dump-rh.dat при использо­ вании параметров РГ) внутренних переменных состояния IWORK(17)...

IWORK(20) интегратора DOP8533. Для сессии Hyperion это будут, соответ­ Описание переменных состояния см. в файле dop853.f ственно, файлы Hyperion-integrator_dump.dat и Hyperion-integrator_dump-rh.dat).

Вывод осуществляется по окончании каждого шага итерации (т.е. с шагом tstep). Формат файла:

IWORK(17)=NFCN IWORK(18)=NSTEP IWORK(19)=NACCPT IWORK(20)=NREJCT Программа рассчитывает средние значения, стандартные отклонения и коэффициенты линейного тренда ХПЛ на интервале усреднения (см. раз­ дел А.3.2). Кроме того, определяются минимальное и максимальное значе­ ния мгновенной угловой скорости || и модуля угла нутации || по интер­ валу [tstart,tend]. При использовании углов Эйлера также отслеживаются моменты приближения к сингулярности координатной системы (по критерию | cos | 107 ). Момент времени и значение для таких точек заносится в файл session-sing.dat.

По окончании счета, в файл satlce-results.dat (соотв. satlce-rh-results.dat для параметров РГ) в табличном виде помещаются значения параметров и результатов счета. Символические имена выводимых значений приводятся в заголовке (первой строке) файла. Следует обратить внимание, что, вместо от­ дельных компонент ляпуновского спектра (1)... () в файл заносятся усред­ ненные значения противоположных по знаку ХПЛ. Т. е. для углов Эйлера ( = 6) и для параметров РГ В файл satlce-errors.txt (соотв. satlce-rh-errors.txt) записываются возник­ шие ошибки.

Альтернативный frontend-модуль modellce.f/modellce-rh.f осуществляет рас­ чет ХПЛ для той же самой задачи, но для произвольного набора модель­ ных параметров и произвольного диапазона начальных данных. Результаты расчетов заносятся в файл modellce-results.dat/modellce-rh-results.dat, возмож­ ные ошибки — в файл modellce-errors.txt/modellce-rh-errors.txt. Данный вари­ ант программы предназначен для массовых расчетов ХПЛ, поэтому вывод в файл траекторий и мгновенных оценок ХПЛ, контроль координатной сингу­ лярности и вывод переменных внутреннего состояния интегратора не поддер­ живаются.

Единственным входным файлом в этом примере для обеих систем пере­ менных является файл modellce.cfg, имеющий следующий формат:

real*8 tend real*8 tstep integer tmap_alg real*8 shift real*8 A_C_start A_C_end A_C_step real*8 B_C_start B_C_end B_C_step real*8 ecc_start ecc_end ecc_step real*8 theta0_start theta0_end theta0_step real*8 phi0_start phi0_end phi0_step real*8 psi0_start psi0_end psi0_step real*8 dtheta0_start dtheta0_end dtheta0_step real*8 dphi0_start dphi0_end dphi0_step real*8 dpsi0_start dpsi0_end dpsi0_step где tend — время окончания интегрирования, tstep — шаг итерации, tmap_alg — выбор алгоритма расчета матрицы (1, 2 или 3), shift — начальное смеще­ ние теневых траекторий для алгоритма 1, A_C_start, A_C_end и A_C_step — диапазон значений /, B_C_start, B_C_end и B_C_step — диапазон значе­ ний /, ecc_start, ecc_end и ecc_step — диапазон значений, theta0_start, theta0_end и theta0_step — диапазон начальных значений 0, phi0_start, phi0_end и phi0_step — диапазон начальных значений 0, psi0_start, psi0_end и psi0_step — диапазон начальных значений 0, dtheta0_start, dtheta0_end и dtheta0_step — диапазон начальных значений 0, dphi0_start, dphi0_end и dphi0_step — диапазон начальных значений 0, dpsi0_start, dpsi0_end и dpsi0_step — диапазон начальных значений 0. Параметры tend, tstep, tmap_alg и shift аналогичны соответствующим параметрам для модуля frontend satlce.f. Для остальных параметров можно задавать диапазоны изменения в форме начальное значение–конечное значение–шаг изменения (разделите­ лем является пробел). Если какой-либо параметр не предполагается изме­ няющимся, можно задать только начальное его значение, заменив конечное значение и шаг знаками «минус»:

Запуск всех примеров должен производиться из директории, содержа­ щей входные файлы (satlce.cfg и satlce.job для первого примера и modellce.cfg для второго). Для этого можно воспользоваться имеющимися в директории examples командными файлами (run.bat для Windows и run для UNIX), кото­ рые осуществляют запуск исполнимых файлов из директории bin в фоновом режиме. Формат вызова командных файлов:

run [ program ] где program — необязательное имя программы, которую необходимо выпол­ нить, без расширения; по умолчанию вызывается программа satlce. Пример:

run modellce-rh А.4. Подключение интегратора, отличного от DOP Вызов процедуры интегрирования dop853 содержится только в файле ядра (core.f), в процедуре do_step. Определение процедуры:

logical function do_step(n, t, x, x_next, tstep, fcn) real*8 t, x(n), x_next(n), tstep Данная процедура получает в качестве входных параметров значение момента времени t, вектора положения x на этот момент и шага итерации tstep. Значение n в случае использования алгоритмов 1 и 2 равно размерно­ сти исходной динамической системы (А.1). Для алгоритма 3 это размер­ ность полной системы, т. е. уравнений А.1, решаемых совместно с линеари­ зованной системой (А.3): n= ( + 1). Кроме того, передается ссылка на процедуру fcn, рассчитывающую (, ). Семантика процедуры do_step:

1) установить возможные параметры интегратора;

2) по значению x на момент t рассчитать значение x_next на момент t + tstep, обращаясь к интегратору;

3) в случае успеха вернуть значение.TRUE., при ошибке —.FALSE..

Для получения дескриптора файла для выдачи ошибок процедура do_step использует common-блок common /HQRB_global/ sysorder, err_lun integer sysorder, err_lun где sysorder — порядок исходной динамической системы (при использовании алгоритма 3 он отличен от значения параметра n), err_lun — дескриптор файла ошибок.

Кроме того, в do_step определен common-блок common /HQRB_integrator/ intdump, FileName_intdump character FileName_intdump* data intdump /.FALSE./ использующийся для информирования процедуры о необходимости вывода в файл внутреннего состояния интегратора (см. раздел А.3.2). В случае, ес­ ли intdump=.TRUE., процедура открывает файл с именем FileName_intdump в режиме access=’append’ и записывает в него строку, содержащую теку­ щий момент времени t и набор переменных состояния. Для DOP853 это IWORK(17)... IWORK(20), т.е. переменные NFCN, NSTEP, NACCPT и NREJCT (см.

файл dop853.f). По окончании записи do_step закрывает файл.

Специфический набор переменных состояния при использовании друго­ го интегратора будет, конечно, отличным от данного. Никаких ограничений на этот набор не вводится. Более того, если используемый интегратор не под­ держивает возможности вывода своих переменных состояния, common-блок /HQRB_integrator/ можно не определять.

Процедура fcn, в соответствии с требованиями интегратора DOP853, определена следующим образом:

subroutine fcn(n, t, x, f, rpar, ipar) (см. файлы hqrb1.f–hqrb3.f). В параметре ipar возвращается код завершения процедур hqrb_f или hqrb_df — 1 при успешном завершении, 0 в случае ошибки (см. раздел А.3.1). Если формат процедуры fcn для подключаемого интегратора совпадает с форматом для DOP853, достаточно лишь заменить операторы установки параметров и вызова интегратора в теле процедуры do_step и указать нужный файл вместо dop853.f в командной строке компи­ лятора.

В более сложном случае, когда подключаемый интегратор требует отлич­ ного от указанного выше списка параметров функции fcn, наиболее простым решением будет модифицировать определения процедур fcn1–fcn3 в файлах hqrb1.f–hqrb3.f для приведения их в соответствие с требованиями интеграто­ ра.

Например, если в файле your_integrator.f содержится реализация инте­ гратора subroutine integrate(n, t0, x0, t1, x1, fcn, tol, success) real*8 x0(n), t0, x1(n), t1, tol и процедура fcn должна быть определена как logical function fcn(n, x, t, f) следует заменить процедуру fcn1 в файле hqrb1.f на logical function fcn1(n, x, t, f) и аналогично для процедур fcn2 и fcn3 в файлах hqrb2.f и hqrb3.f.

Процедура do_step будет выглядеть, например, следующим образом:

logical function do_step(n, t, x, x_next, tstep, fcn) real*8 t, x(n), x_next(n), tstep common /HQRB_global/ sysorder, err_lun integer sysorder, err_lun integrate(n, t, x, t1, x_next, fcn, tol, success) if (.not. success) then write(err_lun, ’(integrate(): success=.FALSE.)’) а командная строка компилятора — f77 lce.f dynsys.f hqrb1.f hqrb3.f core.f your_integrator.f Разумеется, в случае совпадения форматов процедуры fcn для подклю­ чаемого интегратора с форматом для DOP853, шаг, осуществляющий коррек­ тировку процедур fcn1–fcn3, пропускается.

А.5. Вопросы переносимости Данный программный комплекс успешно протестирован под ОС Windows с компиляторами Compaq Visual Fortran (CVF) и g77/cygwin и под ОС GNU/Linux с компилятором g77.

При переносе под другие ОС и компиляторы единственной потенциаль­ ной проблемой может оказаться трактовка режима «append» оператора open.

Данный режим не поддерживается стандартом языка Фортран–77; для раз­ личных компиляторов способ его реализации может варьироваться. В част­ ности, компиляторы CVF и g77 используют синтаксис open(..., access=’append’) Вторым из наиболее распространенных способов является open(..., position=’append’) (компилятор CVF поддерживает оба способа). Поэтому при переносе ком­ плекса может оказаться необходимым заменить все вхождения «access=’append’»

на «position=’append’» (либо на соответствующую строку, приведенную в документации компилятора). Следует отметить, что оператор open в ядре комплекса встречается только в модуле core.f, в процедуре do_step. В осталь­ ном, использование его ограничено приведенными в разделе А.3.3 примерами frontend-модулей satlce.f и modellce.f.

При возникновении трудностей можно, без ущерба для основной функци­ ональности программного комплекса, удалить из do_step блок, относящийся к выводу внутреннего состояния интегратора (см. раздел А.4). Для существу­ ющих frontend-модулей также возможен альтернативный вывод данных, не требующий режима «append». Однако, его введение потребует значительной модификации модулей.

Кроме того, перенос комплекса на другую ОС может потребовать преоб­ разования символов концов строк для файлов исходных текстов комплекса (.f), а также для входных файлов (.cfg,.job,.in) примеров раздела А.3.3. Про­ граммный комплекс распространяется в формате, принятом в ОС семейства UNIX (строки оканчиваются символом LF). Тем не менее, комплекс успешно компилируется и исполняется и под управлением ОС Windows при использо­ вании компиляторов CVF и g77.



Pages:     | 1 |   ...   | 15 | 16 ||
 


Похожие материалы:

« Гожа Марина Львовна НАСЕЛЕНИЕ РАССЕЯННЫХ ЗВЕЗДНЫХ СКОПЛЕНИЙ ГАЛАКТИКИ 01.03.02 – астрофизика и звездная астрономия Диссертация на соискание ученой степени кандидата физико-математических наук Научный руководитель доктор физико-математических наук, профессор В.А. Марсаков Ростов-на-Дону – 2014 2 Оглавление Введение………………………………………………………………………………. 5 Глава 1. Неоднородность населения рассеянных звездных скоплений в Галактике…………………………………………………………………………. 20 1.1 ...»

«ЧАЗОВ Вадим Викторович РАЗРАБОТКА И ПРИМЕНЕНИЕ АЛГОРИТМОВ ЧИСЛЕННО-АНАЛИТИЧЕСКОГО МЕТОДА ВЫЧИСЛЕНИЯ ПОЛОЖЕНИЙ ИСКУССТВЕННЫХ СПУТНИКОВ ЗЕМЛИ Диссертация на соискание учёной степени доктора физико-математических наук Специальность 01.03.01. Астрометрия и небесная механика Москва – 2012 Содержание 1 Содержание Предисловие 7 1 Постановка задачи 17 1.1 Стандартные соглашения . . . . . . . . . . . . . . . . . . . . . . 17 1.1.1 Системы отсчёта . . . . . . . . . . . . . . . . . . . . . . . 17 1.1.2 ...»

« УДК 524.7;524.72-4 КАЙСИНА Елена Ивановна БАЗОВЫЕ СВОЙСТВА ГАЛАКТИК МЕСТНОГО ОБЪЕМА (01.03.02 - Астрофизика и звездная астрономия) ДИССЕРТАЦИЯ на соискание ученой степени кандидата физико–математических наук Научный руководитель: доктор физико–математических наук, профессор Караченцев И. Д. Нижний Архыз – 2014 2 Оглавление Введение Общая характеристика работы Актуальность Цели и задачи исследования Научная новизна Научная и практическая ценность работы Основные результаты ...»







 
© 2013 www.dis.konflib.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.