Бармалей 2 Опубликовано: 28 декабря 2010 Жалоба Рассказать Опубликовано: 28 декабря 2010 Доброго времени суток! В туториале к cfx 12.1 нашел подробный пример описывающий использование подпрограмм пользователя, написанных на FORTRAN. Создал рабочую директорию, создал файл ***.cfx, скопировал файл с подпрограммой (файл не редактировал). Все сделал так как написано в туториале. Но при компилировании подпрограммы CFX выдает ошибку. У меня вопрос - это ошибка в самой подпрограмме, или же в Command Editor CFX? Проблема еще в том что саму подпрограмму нельзя откомпилировать в Fortran, будет вылезать ошибка так как подпрограмма должна быть частью какой-либо программы. Файлы прилагаются. test.rar Цитата Ссылка на сообщение Поделиться на других сайтах
kristeen 355 Опубликовано: 29 декабря 2010 Жалоба Рассказать Опубликовано: 29 декабря 2010 А сам компилятор установлен? Он не ставицца автоматически вместе с CFX. Нужно отдельно мучацца. Смотри в хелпе Compiling 32-bit User Fortran for ANSYS CFX 12.0 on Windows или соседние темы в зависимости от ОС. Цитата Ссылка на сообщение Поделиться на других сайтах
Бармалей 2 Опубликовано: 29 декабря 2010 Автор Жалоба Рассказать Опубликовано: 29 декабря 2010 Спасибо за совет. Прочитал указанные разделы. Мой компилятор действительно староват для версии 12.1. Нужен компилятор Intel Fortran c архитектурой IA-32. У меня стоит Compaq Visual Fortran 6.6.0 Однако есть возможность использовать компилятор Compaq Visual Fortran 6.6.0. Если я правильно понял хелп то надо в файле ...\etc\cfx5mkext.ccl закомментировать интеловский компилятор и раскомментировать компилятор Compaq Visual Fortran 6.6.0. Но просмотрел файл cfx5mkext.ccl и что-то не вижу ссылок или указаний на интеловский компилятор. Есть кусок (закомментированный) с 181 строки по 202 строку с компилятором Compaq Visual Fortran. Эту часть я раскомментирую. Но в каких строках надо ставить комментарии? Если кто занимался чем-то подобным? Цитата Ссылка на сообщение Поделиться на других сайтах
Бармалей 2 Опубликовано: 29 декабря 2010 Автор Жалоба Рассказать Опубликовано: 29 декабря 2010 Если кто-то занимался подобным, где интеловский компилятор закоментировать? Цитата Ссылка на сообщение Поделиться на других сайтах
IGL 8 Опубликовано: 30 декабря 2010 Жалоба Рассказать Опубликовано: 30 декабря 2010 присоединяюсь к вопросу Цитата Ссылка на сообщение Поделиться на других сайтах
gdrst 0 Опубликовано: 26 января 2011 Жалоба Рассказать Опубликовано: 26 января 2011 комментировать со 158 до 179...ifort - тот самый интеловский фортран Цитата Ссылка на сообщение Поделиться на других сайтах
Бармалей 2 Опубликовано: 2 февраля 2011 Автор Жалоба Рассказать Опубликовано: 2 февраля 2011 Спасибо! Цитата Ссылка на сообщение Поделиться на других сайтах
demm10 0 Опубликовано: 12 декабря 2011 Жалоба Рассказать Опубликовано: 12 декабря 2011 В туториале к cfx 12.1 нашел подробный пример описывающий использование подпрограмм пользователя, написанных на FORTRAN. Вы не могли бы подсказать в какой главе это описано? Мне тоже нужно написать свою подпрограммку, которая будет уточнять модель турбулентности. Но как это сделать я в Туториале не нашел... Цитата Ссылка на сообщение Поделиться на других сайтах
Бармалей 2 Опубликовано: 15 декабря 2011 Автор Жалоба Рассказать Опубликовано: 15 декабря 2011 Укажите в хелпе в поисковике разделы User Fortran. В каком именно разделе я уже не помню. Там вся проблема в том, что нужно правильно настроить фортран. Цитата Ссылка на сообщение Поделиться на других сайтах
Delcraft 0 Опубликовано: 14 апреля 2012 Жалоба Рассказать Опубликовано: 14 апреля 2012 Добрый день. Дело в том, что у меня возникла та же проблема, что и у автора данной темы, но даже с закомментированными нужными строками выдается ошибка: D:\WORK\ANSYS\CFX\Study\AirConditioner>cfx5mkext Tstat_Control.F A fatal error has occurred in cfx5mkext: The compiler command "ifort" could not be found. Please ensure that the compiler is on your PATH and try again. Может быть, кто-нибудь подскажет, что я не так сделал? Буду очень благодарен. Исправленный файл прилагается. cfx5mkext.txt Цитата Ссылка на сообщение Поделиться на других сайтах
gdrst 0 Опубликовано: 15 апреля 2012 Жалоба Рассказать Опубликовано: 15 апреля 2012 Проверьте установлен ли у Вас компилятор для языка Fortran от фирмы Intel (ifor). Если установлен, то проверьте значение переменной среды PATH. В ней указаны пути, в которых другие программы ищу необходимые им "вещи". Так вот, среди указанных путей должен быть путь к папке, в которую установлен Intel Fortran. Цитата Ссылка на сообщение Поделиться на других сайтах
Delcraft 0 Опубликовано: 24 апреля 2012 Жалоба Рассказать Опубликовано: 24 апреля 2012 Intel Fortran у меня установлен. Я добавляю путь к нему в path (C:\Program Files (x86)\Intel\Compiler\11.1\067\), но проблема остается, к сожалению. Цитата Ссылка на сообщение Поделиться на других сайтах
Delcraft 0 Опубликовано: 28 апреля 2012 Жалоба Рассказать Опубликовано: 28 апреля 2012 Прошу прощения, я ошибся. Теперь эта проблема устранена, но есть другая: C:\Program Files (x86)\Intel\Compiler\11.1\067\bin\ia32\ifort -threads -dll -exe :.\winnt-amd64\\Tstat_Control.dll winnt-amd64\\Tstat_Control.o C:\Program Files\ ANSYS Inc\v140\CFX\lib\winnt-amd64\solver-pcmpi.lib Intel® Visual Fortran Compiler Professional for applications running on IA-32, Version 11.1 Build 20100806 Package ID: w_cprof_p_11.1.067 Copyright © 1985-2010 Intel Corporation. All rights reserved. ifort: command line warning #10161: unrecognized source type 'winnt-amd64\\Tstat _Control.o'; object file assumed An error has occurred in cfx5mkext: C:\Program Files (x86)\Intel\Compiler\11.1\067\bin\ia32\ifort could not be started, or exited with return code 255: ═х єфрхЄё эрщЄш єърчрээ√щ Їрщы. С чем это может быть связано, не подскажете? Цитата Ссылка на сообщение Поделиться на других сайтах
Doomed 0 Опубликовано: 29 апреля 2012 Жалоба Рассказать Опубликовано: 29 апреля 2012 C:\Program Files (x86)\Intel\Compiler\11.1\067\bin\ia32\ifort -threads -dll -exe :.\winnt-amd64\\Tstat_Control.dll winnt-amd64\\Tstat_Control.o C:\Program Files\ ANSYS Inc\v140\CFX\lib\winnt-amd64\solver-pcmpi.lib Intel® Visual Fortran Compiler Professional for applications running on IA-32, Version 11.1 Build 20100806 Package ID: w_cprof_p_11.1.067 Copyright © 1985-2010 Intel Corporation. All rights reserved. ifort: command line warning #10161: unrecognized source type 'winnt-amd64\\Tstat _Control.o'; object file assumed Я не специалист в таких вещах, но насколько я понял: у вас стоит 64-разрядная система (winnt-amd64), а фортран 32х разрядный (IA-32). Может в этом причина. А ошибка то в следующем: при компиляции фортран в папке ../bin/"имя ОС(winnt, winnt-amd64, lunix-amd64...)" создает файл "имя компилируемой программы".о и потом использует его для создания библиотеки, подключаемой к cfx. Вот именно на этом шаге у вас и возникает ошибка. файл .о либо не создается, либо создается неправильный. он случаем не ругается при компиляции на отсутствие каких либо библиотек? Цитата Ссылка на сообщение Поделиться на других сайтах
Delcraft 0 Опубликовано: 2 мая 2012 Жалоба Рассказать Опубликовано: 2 мая 2012 Все получилось, спасибо огромное. Хотя в самом проекте по-прежнему выскакивает ошибка, но через командную строку программа компилируется. Оказывается, сначала нужно было набирать команду ifortvars вместе с индексами фортрана и VS, а потом уже компилировать. Но на всякий случай я поставил себе Intel Fortran для 64-битной версии. Теперь у меня есть еще один вопрос: как настроить фортрановскую подпрограмму так, чтобы она работала при распараллеливании? Пока она работает только если подключать не более 2х partitions, но у меня весьма сложный расчет, и потому я хотел бы подключать все свои 8. Кто-нибудь знает, как это осуществить? Цитата Ссылка на сообщение Поделиться на других сайтах
Doomed 0 Опубликовано: 2 мая 2012 Жалоба Рассказать Опубликовано: 2 мая 2012 у меня сразу нормально параллелилось) (считал более чем на 80 ядрах) Разве что иногда возникали ошибки из-за обращений к сторонним файлам или драки за память. Но все эти ошибки осправляются изменением самой фортрановской программы. Цитата Ссылка на сообщение Поделиться на других сайтах
Delcraft 0 Опубликовано: 29 августа 2012 Жалоба Рассказать Опубликовано: 29 августа 2012 Здравствуйте. Моя программа выдает весьма странные результаты. Я считаю в ней дифф. уравнение роста давления во времени на каждом шаге расчета в CFX (входные данные - полное давление на входе в участок, температура, пл-дь критики и временной шаг). Входное давление задается через areaAve(Total Pressure)@Inlet. Так вот, дело в том, что она выдает значения, гораздо большие тех, которые должны быть. Я проверял это же уравнение в маткаде и в обычном фортране, там все правильно, а тут - давление растет в несколько раз быстрее. Мне кажется, это каким-то образом связано с выводом давления из подпрограммы в CFX, в последних ее строках. Может быть, кто-нибудь подскажет, тут ли ошибка и как можно настроить правильный вывод? Вот ссылка на программу: <noindex>http://narod.ru/disk/60178437001.f473f1020...erationP.F.html</noindex> Цитата Ссылка на сообщение Поделиться на других сайтах
HochuUznat 0 Опубликовано: 5 сентября 2012 Жалоба Рассказать Опубликовано: 5 сентября 2012 Доброго времени суток! Моя проблема носит схожий характер с проблемой предыдущего пользователя. А именно: Считаю простую задачу обтекания - падает тело. На каждом временном шаге должны выдаваться параметры высоты (уменьшается с течением времени) и изменения высоты (соответственно нарастает на каждом временном шаге), а также скорость. Сейчас удалось заставить CFX принимать в расчете наши программы. Однако результаты расчёта не соответствуют предполагаемым (аналитика + обычный фортран). После того, как сделали вывод расчетных переменных в консоль решателя, выяснилось, что на каждом временном шаге он правильно берет только первую иттерацию и в ней запускает программу, но почему-то два раза! Поэтому значение изменения высоты увеличивается быстрее, чем это должно быть. Аналогично для значений высоты (уменьшается слишком быстро). Знает ли кто-нибудь, как подобной ошибки можно избежать? Текст программы прилагается. PS: внешний цикл с IF завязан на итерации временного шага (аналогично примеру с кондиционером).1.txt Цитата Ссылка на сообщение Поделиться на других сайтах
Doomed 0 Опубликовано: 5 сентября 2012 Жалоба Рассказать Опубликовано: 5 сентября 2012 Дежурный совет: усли считаете динамику, то выполнять расчет по сабрутине на каждой итерации внутри временного шага бессмысленно! Ни решение еще не сошлось, ни огромное количесво повторов выполнения программы вам ни к чему. Пишите проги так, что бы выполнялась она один раз в течении одного тайм-степа - в начали или в конце. Кроме того, если вы используете сабрутину и пишите на ней ссылку из ГУ, то выполняется она столько раз, сколько к ней есть обращений. Например если в качестве входного ГУ я задал величину из сабрутины, а вход у меня широкий и в паралельном режиме он разделился на 4 процессора, то сабрутина выполнится 4 раза! Цитата Ссылка на сообщение Поделиться на других сайтах
HochuUznat 0 Опубликовано: 6 сентября 2012 Жалоба Рассказать Опубликовано: 6 сентября 2012 Возможно, ранее я некорректно выразилась. Именно однократного просчёта в один временной шаг нужно добиться. Однако это не удаётся осуществить. Подскажите, пожалуйста, как следует исправить условие цикла, чтобы избежать множественных прогонов внутри временного шага? Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.