Перейти к публикации

Фортрановские подпрограммы для CFX


Бармалей

Рекомендованные сообщения

Сабрутина будет выполняться столько раз, сколько к ней обращается cfx. Никакими средстваим програмирования внутри сабрутины этого не избежать. Варианты: в течении одного временного шага использовать всегда одни и теже исходные данные для расчета (например с предыдущего временного шага, предварительно записаные в файл) или использовать джанкшон боксы.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...


Здравствуйте!

Пытаюсь компилировать фортрановскую подпрограмму, выдает следующее:

Microsoft Windows [Version 6.1.7601]

© Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

J:\Users\evv\Documents\Ansys\Temp\0912>cfx5mkext pt_breakup_rd.F

C:\Program Files (x86)\Intel\ComposerXE-2011\bin\intel64\ifort.exe -Qvec- -iface

:cvf -MD -fpp -include:"C:\Program Files\ANSYS Inc\v140\CFX\include" -object:win

nt-amd64\\pt_breakup_rd.o -c pt_breakup_rd.F

Intel® Visual Fortran Intel® 64 Compiler XE for applications running on Inte

l® 64, Version 12.0 Build 20101116

Copyright © 1985-2010 Intel Corporation. All rights reserved.

C:\Program Files (x86)\Intel\ComposerXE-2011\bin\intel64\ifort.exe -threads -dll

-exe:.\winnt-amd64\\pt_breakup_rd.dll winnt-amd64\\pt_breakup_rd.o C:\Program F

iles\ANSYS Inc\v140\CFX\lib\winnt-amd64\solver-pcmpi.lib

Intel® Visual Fortran Intel® 64 Compiler XE for applications running on Inte

l® 64, Version 12.0 Build 20101116

Copyright © 1985-2010 Intel Corporation. All rights reserved.

ifort: command line warning #10161: unrecognized source type 'winnt-amd64\\pt_br

eakup_rd.o'; object file assumed

ipo: warning #11010: file format not recognized for C:\Program Files\ANSYS Inc\v

140\CFX\lib\winnt-amd64\solver-pcmpi.lib

ifort: error #10037: could not find 'link'

An error has occurred in cfx5mkext:

C:\Program Files (x86)\Intel\ComposerXE-2011\bin\intel64\ifort.exe could

not be started, or exited with return code 255: +Єърчрэю т фюёЄєях.

Не могу понять в чем ошибка, подскажите, кто знает...

Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...

Доброго времени суток!

Возник такой вопрос в связи с использованием фортрановских подпрограмм. Так как нельзя выводить больше 1го параметра с помощью самой программы (пробовала), решила сделать несколько. Почему-то она (дополнгительная) не читается, хотя всё подключено верно и в ансисовском help я по поводу ограничений на их количество ничего не нашла. Подскажите, можно ли подключать по несколько подпрограмм с помощью User CEL Function (вот Junction box много нельзя, solver control ограничивает)? Кто-нибудь пробовал так подключать? Может кто-то знает, что ещё можно почитать или где найти информацию про подключение функций в cfx?

Ссылка на сообщение
Поделиться на других сайтах

Ограничений на количество вроде как нет (я не сталкивался). Проверьте еще раз, есть ли у вас обращение к подпрограмме во время расчета.

Зачем Вам с помощью сабрутины выводить больше одного параметра? Если вы её используете для задания ГУ, то больше одного вам от неё и не надо, если для чегото другого - лучше использовать Junction box.

Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Здравствуйте!

Меня очень интересует tutorial о работе кондиционирования (HVAC), но не могу выполнить этот урок из-за проблем с фортрановским компилятором (истек лицензионный файл, хотя при запуске cfx5mkext дается информация об ошибке, возникшей вроде бы по другой причине, -см. ссылку в конце сообщения).

Может быть, кто-нибудь подскажет, как устранить ошибку? Я использую CFX версии 11 на Win XP SP2 32bit. Visual Studio 2008. IFortran 9.1.

В своей работе с CFX я пока не планирую использовать подпрограммы, поэтому у меня следующая просьба. Может, кто уже компилировал для себя подпрограмму TStat_Control.F из этого туториала. Буду очень благодарен, если сможете выслать мне эту подпрограмму в откомпилированном виде. При необходимости могу выслать исходный файл подпрограммы. Заранее спасибо за любую полезную информацию.

cfx5mkext_info.txt

Ссылка на сообщение
Поделиться на других сайтах

в тексте ошибки написано, что у вас переменные не объявлены, проверьте этот момент.

В файле cfx5mkext_info.txt , приложенном мной в предыдущем сообщении, упоминания о 2 ошибках:

ifort: error: unable to run '<Microsoft VC++ Dir>\\Bin'

An error has occurred in cfx5mkext:

C:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin\ifort could not be

started, or exited with return code 255: .

Вероятно, ошибка с кодом 255 и говорит о том, что переменные не объявлены.

Кстати, уточняю, что содержимое файла получено через обычную командную строку виндоуз (run\cmd.exe). Т.е. содержимое этого файла не связано с компиляцией интересующей меня процедуры. И вполне логично, что переменные не объявлены.

А вот когда я нахожусь в графической оболочке CFX и через command editor запускаю процесс компиляции нужной процедуры (все строго по инструкциям туториала), по шустро мелькнувшему прогресс бару видно, что процесс прошел, никаких сообщений об ошибках не возникает, но в рабочей директории не появляется папка с dll этой процедуры. Там вообще ничего нового не появляется. И чего делать?

Изменено пользователем Wonderz
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

я обычно компилирую через фарменеджер - запускаю на выполнение в командной строке одновременно файл cfx5mkext и фортрановскую программу *.F. Поэтому все отчеты обо всех действиях сохраняются в самом фаре. Как я понял ваша программа называется ShlibExt.pm, там и пишут:
Use of uninitialized value in rindex at C:\Program Files\ANSYS Inc\v110\CFX\bin\
/perllib/CFX5/PathManip.pm line 356.
Что вы используете необявленное значение в строке 356.
Насчет ошибки
ifort: error: unable to run '<Microsoft VC++ Dir>\\Bin'
An error has occurred in cfx5mkext:
то тут я уже не понимаю, вы компилируете фортарновским компилятором или С++?

Ссылка на сообщение
Поделиться на других сайтах

Я не компилировал что-либо через командную строку, такой нужды не было. Меня пока интересует лишь туториал HVAC, здесь я первый раз столкнулся с Фортраном для CFX. Файл cfx5mkext_info.txt, выложенный мной выше, получен только для того, чтобы понять, подключен ли у меня фортрановский компилятор.  Делал я это по интструкции из справки CFX:

You must have the required Fortran compiler installed and set in your system path in order to run this tutorial. For details on which Fortran compiler is required for your platform, see the applicable ANSYS, Inc. installation guide. If you are not sure which Fortran compiler is installed on your system, try running the cfx5mkext command (found in <CFXROOT>/bin) from the command line and read the output messages.

Т.е. я увидел в справке по установке, какой нужен компилятор, и поставил его. А потом получил то, что есть в cfx5mkext_info.txt. Я запустил через командную строку cfx5mkext без каких-либо сопутствующих процедур для компиляции.

 

Use of uninitialized value in rindex at C:\Program Files\ANSYS Inc\v110\CFX\bin\ /perllib/CFX5/PathManip.pm line 356.

Через гугл: Файлы с расширением .pm являются библиотеками Perl. Получается, что cfx5mkext зачем-то обращалась к разным библиотекам.

 

Кстати, еще при установке фортрановскского компилятора он спрашивал, где есть Visual Studio. В общем, поставил и ее. Вот откуда появилось сообщение с <Microsoft VC++ Dir>. Скажите, Doomed, нужна ли Visual Studio для работы фортрановского  компилятора в CFX ?

А вот кусок справки по компиляции процедуры: tut17help.txt. Я  выполнил все действия, а директория с откомпилированной библиотекой так и не появилась. Какие будут советы?

 

Ссылка на сообщение
Поделиться на других сайтах

А вот моя попытка откомпилировать нужную мне процедуру через командную строку ОС.

Для этого я скопировал в папку размещения cfx5mkext процедуру TStat_Control.F и ввел по очереди в ком.строке:

C:\Documents and Settings\ASUS>chdir C:\Program Files\ANSYS Inc\v110\CFX\bin\

C:\Program Files\ANSYS Inc\v110\CFX\bin>cfx5mkext TStat_Control.F

 

Результат следующий: cfx5mkext info2.txt.

В поддиректории "winnt" появился файл TStat_Control.o. Вероятно, он является промежуточным звеном при компиляции (как я понял, объектным файлом).

Как довести процесс компиляции до логического завершения и получить DLL?

 

P.S. Может, есть альтернативные способы откомпилировать процедуру? Бывают же свободно распространяемые (free) программы, в том числе компиляторы.

Изменено пользователем Wonderz
Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Все получилось, спасибо огромное. Хотя в самом проекте по-прежнему выскакивает ошибка, но через командную строку программа компилируется. Оказывается, сначала нужно было набирать команду ifortvars вместе с индексами фортрана и VS, а потом уже компилировать. Но на всякий случай я поставил себе Intel Fortran для 64-битной версии.

Теперь у меня есть еще один вопрос: как настроить фортрановскую подпрограмму так, чтобы она работала при распараллеливании? Пока она работает только если подключать не более 2х partitions, но у меня весьма сложный расчет, и потому я хотел бы подключать все свои 8.

Кто-нибудь знает, как это осуществить?

Скажите пожалуйста, как это получилось. У меня та же ситуация.

post-41722-0-27875200-1386517436_thumb.png

Изменено пользователем Bachduong
Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

Добрый день. Bachduong, ответ с методикой компиляции отправил Вам в личном сообщении.

 

У меня самого возник вопрос другого характера, а именно по возможнностям фортрановских подпрограмм. Вопросов несколько:

 

1. Поддерживают ли фортрановские подпрограммы импорт/экспорт нескольких переменных?

2. Пробовал ли кто-нибудь настроить выполнение подпрограмм в параллельном режиме?

 

Поясню цель, быть может, она поспособствует более точному ответу. Меня интересует следующее:

 

Допустим, в CFX рассчитывается поле течения многокомпонентного газа. В определенный момент (например, в конце каждого временного шага в нестационарном или итерации в стационарном расчете) в подпрограмму передаются значения массовых долей компонентнов и температура из каждой ячейки. Подпрограмма выполняет расчет химических реакций, отправляет обновленные значения массовых долей и температур обратно в CFX и одновременно записывает их во внешний файл.

 

По сути, это расчет методом расщепления по потокам, вынесенный за пределы программы. Во Fluent'e такое возможно. Возможно ли в CFX?

 

С уважением,

Delcraft.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Еще картинка

В папке winnt-amd64 есть только файлыTStat_Control.exp (.lib, .o) а файла TStat_Control.dll нетту

post-41722-0-18343300-1390014653_thumb.png

Изменено пользователем Bachduong
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Оставлю здесь небольшой туториал по настройке и применению Fortran'a к CFX, хотя описанный способ настройки и не самый удобный, IMFAO.

Это быстрый перевод на англ, оригинал на португальском тут.

 

tutorial_cfx_fortran_english.rar

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Оставлю здесь небольшой туториал по настройке и применению Fortran'a к CFX, хотя описанный способ настройки и не самый удобный, IMFAO.

Это быстрый перевод на англ, оригинал на португальском тут.

 

attachicon.giftutorial_cfx_fortran_english.rar

 

 

спасибо вам за руководство!

пожалуйста, расшифруйте этот пассаж:

--------------------------------------------------------------

Variable Name: lib

Variable value: C:\Program Files (x86)\Intel\Composer XE 2013 \compiler\lib;

C:\Program Files (x86)\Intel\Composer XE 2013 \compiler\lib\intel 64

Click OK to the variable to be created. Note that the address used here may change according to the currently selected installation options.

 

Repeat this procedure by creating a new variable with values:

C:\Program Files (x86)\Intel\Composer XE 2013 \compiler\include;

C:\Program Files (x86)\Intel\Composer XE 2013 \compiler\include\intel 64

Again, repeat this procedure by creating a new PATH variable with values:

C:\Program Files\ANSYS Inc\v140\CFX\bin;C:\Program Files ( x86)\Intel\ Composer XE 2013\bin;C:\Program Files (x86)\Intel\Composer XE 2013 \ bin\intel64;C:\Program Files (x86)\Intel\Composer XE 2013 \redist;

C:\Program Files (x86)\Intel\Composer XE 2013 \redist\intel64;

C:\Program Files (x86)\Intel\Composer XE 2013 \redist\intel64\compiler;

C:\Program Files (x86)\Intel\Composer XE 2013 \redist\intel64\mkl;

C:\Program Files (x86)\Intel\Composer XE 2013 \redist\intel64\mpirt

--------------------------------------------------------------

 

в первом выделенном жирным шрифтом абзаце неясно, какую же переменную создать?

во втором абзаце в значение переменной записать все строчки, разделенные точкозапятой?

Ссылка на сообщение
Поделиться на других сайтах

Это тот случай, когда мог понадобиться португальский оригинал) Гугл-переводчик съел некоторую инфу.

 

В первом жирном абзаце создаем переменную include

Во втором -- да, записывать через точку с запятой. Посмотрите, у Вас уже в переменной PATH записано много всего через точку с запятой.

 

*************************

 

Именно из-за того, что все переменные предлагается вбить вручную, мне такая инструкция и не кажется удобной. Тем более, если установлено много прог, то все новые значения могут банально не влезть в отведенное кол-во символов (вроде 256). Более простой, как по мне, путь:

 

1. Устанавливаем Visual Studio

2. Устанавливаем компилятор фортрана с интеграцией в Visual Studio

3. Запускаем Fortran Build Environment (Пуск > Все Программы > Intel ....)

4. Оттуда уже через командную строку запускаем CFX

 

Смысл в том, что при запуске Build Environment будут настроены все нужные переменные, даже те, о которых в англо-португальском документе не знали или забыли.

 

Если же фортраном для CFX пользуемся часто, можно создать специальный .bat и пользоваться им. К примеру, у меня в свойствах ярлыка к Fortran Build Environment записано следующее (это где Пуск > Все Программы > Intel .... а потом RMB > Свойства):

 

C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat" intel64 vs2010"

 

Копируем в блокнот и добавляем нужное, чтобы получить (жирным показаны добавления):

 

call C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat" intel64 vs2010"

call "C:\Program Files\ANSYS Inc\v150\CFX\bin\cfx5.exe"

 

Сохраняем, меняем расширение на .bat, запукаем. Enjoy.

 

Аналогично для udf для Fluent'a -- можно запустить Visual Studio Command Prompt, а оттуда -- флуент. Хотя VS обычно прописывает свои переменные в окружение при установке.

Для Abaqus -- тоже аналогично CFX. Либо дописать call C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat" intel64 vs2010" в abq6131.bat (который в abaqus/commands) после @echo off, но перед всем остальным.

 

Все. Надеюсь, после 4 лет изначальный вопрос ветки можно считать закрытым)

Ссылка на сообщение
Поделиться на других сайтах

Это тот случай, когда мог понадобиться португальский оригинал) Гугл-переводчик съел некоторую инфу.

 

В первом жирном абзаце создаем переменную include

Во втором -- да, записывать через точку с запятой. Посмотрите, у Вас уже в переменной PATH записано много всего через точку с запятой.

 

*************************

 

Именно из-за того, что все переменные предлагается вбить вручную, мне такая инструкция и не кажется удобной. Тем более, если установлено много прог, то все новые значения могут банально не влезть в отведенное кол-во символов (вроде 256). Более простой, как по мне, путь:

 

1. Устанавливаем Visual Studio

2. Устанавливаем компилятор фортрана с интеграцией в Visual Studio

3. Запускаем Fortran Build Environment (Пуск > Все Программы > Intel ....)

4. Оттуда уже через командную строку запускаем CFX

 

Смысл в том, что при запуске Build Environment будут настроены все нужные переменные, даже те, о которых в англо-португальском документе не знали или забыли.

 

Если же фортраном для CFX пользуемся часто, можно создать специальный .bat и пользоваться им. К примеру, у меня в свойствах ярлыка к Fortran Build Environment записано следующее (это где Пуск > Все Программы > Intel .... а потом RMB > Свойства):

 

C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat" intel64 vs2010"

 

Копируем в блокнот и добавляем нужное, чтобы получить (жирным показаны добавления):

 

call C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat" intel64 vs2010"

call "C:\Program Files\ANSYS Inc\v150\CFX\bin\cfx5.exe"

 

Сохраняем, меняем расширение на .bat, запукаем. Enjoy.

 

Аналогично для udf для Fluent'a -- можно запустить Visual Studio Command Prompt, а оттуда -- флуент. Хотя VS обычно прописывает свои переменные в окружение при установке.

Для Abaqus -- тоже аналогично CFX. Либо дописать call C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat" intel64 vs2010" в abq6131.bat (который в abaqus/commands) после @echo off, но перед всем остальным.

 

Все. Надеюсь, после 4 лет изначальный вопрос ветки можно считать закрытым)

 

 

даже не знаю, как вас благодарить.

огромное спасибо!

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • статист
      Добрый день! Возник вопрос как повернуть сечение балочного элемента. Допустим, есть балочный элемент, который создан не на линии, а напрямую через элемент.   ET,1,BEAM188 MPTEMP,,,,,,,,   MPTEMP,1,0   MPDATA,EX,1,,2e11    MPDATA,PRXY,1,,0.3   SECTYPE,   1, BEAM, RECT, quad, 0    SECOFFSET, CENT SECDATA,0.1,0.1,0,0,0,0,0,0,0,0,0,0 N,1,0,0,0    N,2,1,0,0    E,1,2        Как его сечение можно повернуть, например, на 45 градусов?  
    • ak762
      если вас беспокоят результаты анализа которые кратны ожилаемым, а картинка по распределению напряжений отражает ожидаемое, то возможно у вас деталь имеет не те размеры? для пороверки построил деталь с заданными размерами   в сборке завел вашу и на картинке она кратна той что я построил      
    • gudstartup
      вот эти как бы ничего
    • Orchestra2603
      Я так и не понял, так в чем проблема то была? За что @Jesse то получил ? :D Ну, допустим нужна факторизация. Ну, так, сделаем факторизацию. В чем сложность в итоге? Или вы хотите скахать, что в ИСПЕ какая-то специальная крутая система обхода факторизации?   Кроме того, разве матрица масс стержневого элемента не так выглядит?     Почему у вас нет внедиагональных элементов?
    • cepr
      Есть рабочий компьютер, есть от чего отталкиваться. Понятно, что связка Intel-Nvidia. Экран 17", обратить внимание на матрицу. Ну, и сумма, какую можете потратить на ноут.
    • gudstartup
      а вот тут все уже расписано   это оказалось непросто оказывается китайцы в этих вопросах большие параноики и сами себе не доверяют
    • MagicNight
      Да дело не в бедности, ищу оптимальный ноут, пока не могу найти.
    • Bot
      АСКОН объявляет о старте открытого бета-тестирования новой версии КОМПАС-3D и приложений. Коммерческая версия КОМПАС-3D v23 выйдет летом 2024 года, но уже сейчас испытать новинки может любой желающий. Бета-тестирование — это проверка новой функциональности в «полевых» условиях, когда пользователи знакомятся с нововведениями на собственных проектах и сценариях работы, а также проверяют совместимость со своим программно-аппаратным обеспечением. Новая версия создавалась в соответствии с дорожной картой АСКОН для задач проектирования изделий высокотехнологичных отраслей и стала еще более функциональной и производительной. При разработке учитывались предложения пользователей по темам трехмерного моделирования, подготовки чертежей и спецификаций, приложений для машиностроения, приборостроения и строительства. Бета-версия КОМПАС-3D открыта для всех. Дистрибутив предоставляется бесплатно на время проведения тестирования. *** Период проведения бета-тестирования: с 6 [...] View the full article
    • fenics555
      Уважаемые Дамы и Господа!  Есть библиотечные изделия, которые почему-то очень доооооолго грузятся в сборках. Я хочу попросить Вас потестить их и сказать в чем причина, ибо совсем невозможно работать. gost18829-73.prt.1 pin_split.prt.1 Как это всё можно ускорить?
    • gudstartup
      а вы хоть станок проверяли по программе на изделии на точность прежде чем товарищей этих выгнать? если нет то грешите на самих себя! система в наших краях еще не распространенная поэтому и тем тут нет надо в поднебесную писать
×
×
  • Создать...