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

Компиляция 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 пользователей

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




  • Сообщения

    • gudstartup
      @stanislavz если тактовая частота цп ок видать что то с таймерными циклами слишком длинные отсюда такой лаг в работе
    • gudstartup
      да у вас очень древний чемоданчик думаю из 90-х ну его ломать не жалко но если все уже заменили с рабочего то тут даже не знаю что и посоветовать....
    • stanislavz
      Спасибо за ответ. Так этот и был заказан на запас. В машине живой рабочий. Носителя нету, все в памяти hm628128-10 + ээпром.
    • gudstartup
      @stanislavz вы уж сразу еще один контроллер закажите а потом этот доламывайте. а со старым комбинировать не пробовали? у вас там диск или ssd в качестве носителя? может hdd загибается а вы сразу в мат.плату полезли. дисковые операции тоже ввод вывод тормозят...
    • maxx2000
      Подушную малость. Чё там. Уже в упор научились резьбу резать без выходной канавки?
    • ispite
      Здравствуйте, не могу построить стандартную сетку, что не позволяет дальше провести расчёт. Получается сделать сетку "на основе кривизны", но солид отказывается считать, после нажатия кнопки "запустить исследование" происходит сбой. https://disk.yandex.ru/d/D8wvRbYMW1lWjQ
    • ddm
      изготовить по чертежу с последующим покрытием,цинкование ,по 1000 шт каждой позиции ,предложение отправить на почту qwer463@yandex.ru
    • sklide008
      И еще можно ли задать горчие клавиши на кнопки открыть, скрыть и тд?
    • sklide008
      Подскажите, пожалуйста, в инвенторе есть такой пункт упорядочи по алфавиту дерево. Здесь найти такого не могу, пытался treesorter ставить но он добавляет просто в папку а не сортирует в дереве. Есть ли такой макрос чтобы все детали в дереве по порядку и алфавиту шли?
    • stanislavz
      Есть станок с данным контроллером. Все работает. Недавно была проблема с передачей данных - установил запасной контроллер. А запасной контроллер сказал нет работе. Проблема была в программе компьютера для передачи данных. Грустно, досадно, контроллер был куплен как рабочий. Как бы и не горит, но необходимо поправить. Плата управления с процессором mc68020, память hm628128-10. Память буферным питанием от 3 батареек + 0,5 Фарада на плате как буфер для замены батареек на 1 сутки. Лежало долго, без батареек. Симптомы: После первого включения, в памяти были и программы и параметры (0 странность). Честно, удивило. Но - система жутко тормозит, отклик на нажатие кнопки 3-5 секунд. В таком режиме сумел закачать машинные параметры под свой станок. Но это заняло час.. 4 строки и ждет секунд 10 итд. Есть видео. Перекинул с рабочего контроллера, БП, плату плц, ээпром плц - все то же. Проверил осциллографом кварцы живые , частота есть, амплитуда хорошая. 1 странность - после манипуляций по замене батарейки, старые записи из памяти исчезли. Ничего не коротнул. Возможно 0,5 Ф был не заряжен. Там тоже необходимы сутки для зарядки. Но как оно было запечатоно до этого - мистика. 2 странность. Если плата лежит ночь без питания, только с буфером - потом 2-3 минуты работает хорошо. 3 аналогично работает 2-3 минуты если питание отключить и очистить питание памяти (выпаял 0,5 Ф буфер с платы) Проверка памяти на старте есть. Проходит хорошо. На зависает, на холодную пайку не похоже. Шевелил / двигал все. Да и не виснет, именно тормозит. При том если оставить на час - тоже все стабильно плохо. Если набрать быстро 5 символей- экран сразу пуст, но после задержки символы будут на экране. Заказал второй процессор и память. 10 штук. Подавал прямо 5 вольт на память - все так же. Токи потребления между плохой и хорошей платой смогу проверит.    
×
×
  • Создать...