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

Компиляция UDF


The_Immortal

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

Всех приветствую!

 

Господа, помогите, пожалуйста, побороть компиляцию UDF-файла.

 

Делаю вроде как и нужно:

 

1. Скачал VS 2017.

2. Открыл %comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" (Командная строка разрабочтчика) - через неё запустил *.cas.

3. Далее уже во Fluent'е загрузил UDF-файл и нажал Build:

Цитата

> Copied C:\Users\emm\Desktop\fluent/C:\Users\emm\Desktop\fluent\profcarWE_1.5.c to libudf\src

Creating user_nt.udf file for 2d ...

(system "copy "C:\PROGRA~1\ANSYSI~1\v172\fluent"\fluent17.2.0\src\udf\makefile_nt.udf "libudf\win64\2d\makefile" ")

ª®¯¨à®¢ ­® ä ©«®¢: 1.

(chdir "libudf")(chdir "win64\2d")# Generating ud_io1.h

profcarWE_1.5.c

# Generating udf_names.c because of makefile profcarWE_1.5.obj

udf_names.c

# Linking libudf.dll because of makefile user_nt.udf udf_names.obj profcarWE_1.5.obj

Microsoft (R) Incremental Linker Version 14.12.25835.0

Copyright (C) Microsoft Corporation. All rights reserved.

 

Ñîçäàåòñÿ áèáëèîòåêà libudf.lib è îáúåêò libudf.exp

 

Done.

 

Тут, правда, какие-то крякозябры (не знаю как от них избавиться), но вроде как ошибок никаких не возникло (папка с именем функции создалась, внутрии неё есть вские dll, lib, exp и прочее).

Далее пытаюсь загрузить функцию через Manage, введя её имя и получаю скромное:

 

Цитата

 

Error: Error code: 193\n

Error Object: #f

 

 

По этой проблеме нашел всего лишь один топик, который оказался бесполезным :(

 

Подскажите, пожалуйста, в какую сторону копать?

 

Спасибо!

 

P.S. Ansys 17.2, Windows 8.1, Visaul Studio 2017.

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


@The_Immortal,

можете попробовать сюда свой .c выложить.

 

Общее у вас и ТС с cfd-online, что компилятор выдает сообщение на национальных языках. Не могу утверждать, что в этом причина проблемы, но лучше такого стараться избегать.

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

Ñîçäàåòñÿ áèáëèîòåêà libudf.lib è îáúåêò libudf.exp = Создается библиотека libudf.lib и объект libudf.exp

ª®¯¨à®¢ ­® ä ©«®¢: 1. = копировно файлов : 1 

 

 

Теоретически все скомпилировалось без ошибок. А кнопку Load нажимали после компиляции?

Ссылка на сообщение
Поделиться на других сайтах
14 минуты назад, piden сказал:

Общее у вас и ТС с cfd-online, что компилятор выдает сообщение на национальных языках

Вот этого не понял :) Fluent в логах не воспринимает национальный язык?

 

14 минуты назад, piden сказал:

можете попробовать сюда свой .c выложить.

#include "udf.h"

#define v_mean 1.5
#define y_max 2000
#define y_min 0
#define B 1./7.

DEFINE_PROFILE(x_velocity,thread,index)
{
	real x[ND_ND];
	real y,v_max,del,h,ufree;
	face_t f;

	h = 1750;
	ufree = v_mean*(B+1);

	begin_f_loop(f,thread)
	{
		F_CENTROID(x,f,thread);
		y=x[1];
		F_PROFILE(f,thread,index) = ufree*pow((y-250)/10,B);

	}

	end_f_loop(f,thread)
}

Но не думаю, что там проблема. Уж функцию подгрузить бы можно было? Мне кажется, что проблема в несоответствии между версиями Флюента, ОС, Студии... Только вот как узнать наверняка, что из них менять надо?

 

7 минут назад, Arkur сказал:

А кнопку Load нажимали после компиляции?

Так по сути это тот же Load, что и из Manager'а - та же ошибка...

Изменено пользователем The_Immortal
Ссылка на сообщение
Поделиться на других сайтах
41 minutes ago, The_Immortal said:

P.S. Ansys 17.2, Windows 8.1, Visaul Studio 2017.

Win 7, Fluent 17.0, VS2008

 

Скомпилировалось, подгрузилось. The_Immortal.rar

 

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, piden сказал:

Скомпилировалось, подгрузилось.

Вот блин... А в чем же беда? :( А Вы также делали:

48 минут назад, The_Immortal сказал:

Открыл %comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" (Командная строка разрабочтчика) - через неё запустил *.cas.

?

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

Win+R, cmd

 


%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" amd64

 

потом

 

"C:\Program Files\ANSYS Inc\v170\fluent\ntbin\win64\fluent.exe"

Во флуенте User-Defined > Functions > Compiled > Add immort.c > Build, Load

 

Функция простая, ее наверно и интерпретировать можно. Попробуйте через Interpreted..

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

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

 

Благодарю за помощь! Пойду пробовать более старые версии Студии...

Ссылка на сообщение
Поделиться на других сайтах
Just now, The_Immortal said:

Пойду пробовать более старые версии Студии...

Если не поможет - попробуйте английскую винду.

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

На всякий случай решил отписаться: связка Fluent 17.2 + Windows 8.1 + Visual Studio 2013 нормально отработала, т.е. в моём случае похоже был некий конфликт между Fluent'ом 17.2 и VS 2017. Вероятно, в новых версиях Флуента такого наблюдаться не будет, но пока и 17-ой хватает.

Ну а от испорченной кодировки я так и не смог избавиться. Видимо, только английская версия Windows (и соответственно VS) будет отображать ход работы компилятора на английском. Ну да Бог с этим.

Изменено пользователем The_Immortal
Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...
В 02.02.2018 в 14:27, piden сказал:

Win 7, Fluent 17.0, VS2008

 

Скомпилировалось, подгрузилось. The_Immortal.rar

 

Скажите пожалуйста, а как сделать, чтобы она появилась в каком нибудь UDF при настройке параметров. Тоже подгрузилась, только ее нигде не видно, чтобы назначить параметр.

libudf.zip

Ссылка на сообщение
Поделиться на других сайтах
1 hour ago, акм said:

 .... только ее нигде не видно, чтобы назначить параметр.

А где вы ее ищите? Вроде все работает:

 

01.thumb.PNG.eec405243e3dca6e76a7533a6296e2e9.PNG

Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, piden сказал:

А где вы ее ищите? Вроде все работает:

 

01.thumb.PNG.eec405243e3dca6e76a7533a6296e2e9.PNG

то есть я правильно понял, что этот UDF к зоне ячеек или граничному условию подключать не надо (его там нигде не выбрать), он сам назначает начальную температуру всех ячеек перед началом расчета, соглано условию в файле?

Ссылка на сообщение
Поделиться на других сайтах
21 minutes ago, акм said:

то есть я правильно понял, что этот UDF к зоне ячеек или граничному условию подключать не надо (его там нигде не выбрать), он сам назначает начальную температуру всех ячеек перед началом расчета, соглано условию в файле?

Этот удф для начальной инициализации. И подключить его можно только к инициализации.

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

Piden, спасибо за ответы!

Хотел еще спросить, если Вас не затруднит, подсказать путь решения. Я начал только изучать эти удф по туториалу, чтобы смоделировать работу предохранительного клапана, у меня сейчас есть модель клапана, где идет сброс давления, но только после достижения движущимся поршнем определенной координаты при этом изменяется гидросопротивление и пористость (прилагаю файлы), а хотелось бы сделать модель, чтобы при  достижении давления в определённых точках началось движение для регулирования сечения (открытие или закрытие) или, чтобы при том же достижении давления в определённых точках происходило изменение пористости и к-тов вязкостных и инерционных потерь. Не подскажите в каком направлении двигаться, какие UDF применить? я правильно понимаю, что для нарастания давления можно применить DEFINE_INI, прописав в ней формулу роста давления от временного шага, а как дальше? Спасибо.

piston.7z

Ссылка на сообщение
Поделиться на других сайтах
3 hours ago, акм said:

Хотел еще спросить, если Вас не затруднит, подсказать путь решения.

3 hours ago, акм said:

хотелось бы сделать модель, чтобы при  достижении давления в определённых точках началось движение для регулирования сечения (открытие или закрытие) или, чтобы при том же достижении давления в определённых точках происходило изменение пористости и к-тов вязкостных и инерционных потерь.

Я с удфами знаком крайне слабо. Лично мне такую задачу проще бы было делать в CFX - там вышеописанное можно реализовать на встроенном языке CEL. Если же Fluent был выбран из-за ремешинга или еще каких требований - тогда советовал бы найти в сети туториалы по флуенту, среди них есть курс Intro to Fluent UDF. Начать с его изучения) А то Вы сейчас хотите удф, ответственный за инициализацию значений один раз в начале расчета, использовать для всей этой сложной кухни.

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • mactepnew
      Вот я тоже так думал, пока не столкнулся с обратным) Как еще столкнусь, пришлю скриншот. Хаос еще в том, что порядок в дереве построения весьма условный. операция, которая стоит перед групой, имеет бОльший timestamp(пардон, не знаю как это в переводе), чем эта группа, и выполняется позже. При этом все операции в группе имеют timestamp на пару сотен меньше и выполняются раньше, чем две группы, стоящие перед ней. Логика?  Если в эскизе все элементы определены, то можно поставить еще один размер (хочешь переопределить эскиз - да пожалста!), изменить его - и NX самостоятельно выберет, какой размер или ограничение отпустить и весь эскиз летит к чертям. Это ли не хаос?   Назовете хоть один CAD, которым можно пользоваться так? Любой из встреченных мной имеет много неочевидных нюансов, которые конечно не проявляются при выполнении университетского или базового курса. В Creo я на протяжении 5 лет находил всё новые фишки, которые не прописаны в документации. Огромная благодарность Ruslan за пояснения тонкостей. Даже Компас и Solidworks, которые считаются самыми дружественными, оказалось непросто обуздать, когда проходил собеседования и делал тестовые. А ведь университетский курс знал на отлично!   Возвращаясь к NX - вот сегодняшний пример. Утром деталь была оранжевая, единая. Изменил пару уклонов и толщин, стала желтая с элементами оранжевого и частично твердотельной, частично листовой. Я даже не знаю, как сформулировать вопрос в поддержку. 
    • Mikhail_Podgornyj
      Добрый день, кто может поделиться SKF Bearing V1.6 (ANSYS App)? Заранее благодарен!
    • kkk
      Короче, как сделать автоматом не нашел. Раскрасил нужные грани нужными цветами. Затем на вкладке с цветом модели можно выбирать нужный цвет, тогда в модели выбираются грани, покрашенные этим цветом. Можно еще сохранить выбор этих граней, но смысла не вижу, т.к. все легко выбирается по цвету. Затем либо в инструменте Измерить смотрим площадь и как-то ее используем, либо можно макросом (что выкладывал Kir95 ) внести площадь в свойства (на вкладку Конфигурации). Можно еще внести выбранные грани в датчики, но как использовать их в свойствах не нашел.    Макрос прикрепляю.     Площадь выбранных граней в свойства.swp
    • IgnatvKudrin
      Для нашего производства требуются постоянно инструментальные пружины для штампов. Сейчас заказы обрабатываются довольно долго - до 2-х месяцев. А у нас сроки на штампы 1-2 месяца с испытанием, доработкой и т.п. Хотелось бы найти поставщика, у которого уже есть склад с данными пружинами или кто может доставить за 1 месяц.   Пружины стандартные по ISO, но на всякий случай приложил каталог. Вот список пружин, которые нужны очень срочно:   LR 32 x 44 - 1 шт. LR 25 x 51 - 2 шт. LB 63 x 89 - 7 шт. LB 32 x 102 - 10 шт. LB 32 x 89 - 20 шт. LB 32 x 76 - 12 шт. LB 32 x 51 - 6 шт. LB 25 x 127 - 9 шт.   Готов выслушать все предложения. Возможно даже есть те, кто сможет изготовить подобные пружины с такими же параметрами. 20231101.pdf
    • bubblyk
      Знатоки форума, подскажите, как смоделировать простую (на первый взгляд) задачу термомеханики в упругой постановке.   Есть брусок правильный формы ака кирпич, в котором генерируется НЕРАВНОМЕРНОЕ удельное тепловыделение (HGEN). Задняя и передняя поверхности конвективно охлаждаются с известными (но различными) коэффициентами теплоотдачи и температурами жидкости/газа. Свойства кирпича (теплофизика + механика) принимаются зависящими от температуры. Постановка - стационарная Собственно вопрос : как грамотно смоделировать температурное поле в кирпиче с учетом температурного расширения?   Исходный код приложил.     Надеюсь на коллективный разум и опыт! EPTH2D.mac p.s.   Если есть опыт решения этой задачи в Ansys WB, тоже можно сюда приложить командные вставки.
    • OutXL
      Это было давно использовал NC-Link  и данную инструкцию. The Maho.docx
    • Mikhail_Podgornyj
      Добрый день, кто может поделиться SKF Bearing V1.6 (ANSYS App)? Заранее благодарен!
    • alexqwq10
      В данных корпусах ничего лишнего быть не должно. Максимум шпильки заземления, в количестве предусмотренном для конкретного корпуса. Рассматривал очень много подобных корпусов разных производителей и данная проблема актуальна для подавляющего большинства.
    • MFS
      Коллеги, приветствую, нужно штамповать на горячую из алюминиевого сплава (АК6 или около того) заготовки размером 280*180*12. Подскажите, пожалуйста, параметры пресса для такой заготовки - размеры, усилия. А есл дадите пример такой марки и модели, более менее подходящей для этой работы (нашего или импортного), то будет и еще лучше. Заранее спасибо!
    • Elbaro
      Добрый день. Уже несколько дней пытаюсь найти на просторах инета макрос, позволяющий менять материал выделенных деталей в сборке. У меня есть макрос это делающий, но только в открытой детали, заставить его работать в сборке не получается. Может кто поделится ссылкой или часть кода? Спасибо.
×
×
  • Создать...