The_Immortal

Компиляция UDF

Pinned posts

ID: 1   Опубликовано: (изменено)

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

 

Господа, помогите, пожалуйста, побороть компиляцию 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

Поделиться сообщением


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


UnPinned posts

@The_Immortal,

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

 

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

1 пользователю понравилось это

Поделиться сообщением


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

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

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

 

 

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

1 пользователю понравилось это

Поделиться сообщением


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

ID: 4   Опубликовано: (изменено)

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

 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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..

1 пользователю понравилось это

Поделиться сообщением


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

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

 

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

Поделиться сообщением


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

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

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

1 пользователю понравилось это

Поделиться сообщением


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

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

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

Изменено пользователем The_Immortal
1 пользователю понравилось это

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Реклама

  • Сообщения

    • MFS
      Степени защиты стандартизированы и называется Ingress Protection - IP. https://ru.wikipedia.org/wiki/IP_(Степени_защиты,_обеспечиваемые_оболочками)
    • LxCoder
        Большое пожалуйста! Готово вроде... UNCX01.F44 UNCX01.P44 UNCX01.s44
    • Maik812
      Походу сайт свой пиарим Митя.. А если редактировать нужный документ то ентер нажимают или ф4 ...  В Totale commander  наиболее удобен по перемещению и поиску/фильтру всех файлов что есть на компе. и равных ему нет. есть кто просто не умеет им пользоваться. лазить по 100 папкам чтоб открыть -не нужно,  нужный фаил сразу находим.. наоборот убираем все папки  ! , и поиск с диалогом включаем как фильтр от не нужных файлов! А чтоб открыть нужный документ нужно видеть экскиз документа например в картинке 400х400 дпй, покажи мне крупную картинку автогада и офисных документов .. пдф,ехель, ворд... Ты когда работаешь по настоящему то тебе что только автогад файлы приходится открывать?... а сколько этих пришедших файлов по почте от тупых юзеров с ярлыками файлов а не самих файлов! как это достало! сделай реально чтоб удобно было... для всех файлов.
    • piden
    • LiViS
      В данном случае станок сделать проще, чем саму "морковку", как оказалось. А этот вариант исполнения еще и с изюминкой, т.к. кончик разгружен во время колки, да и направление резьбы "правое" и шестигранник сразу под ключ, в случае клина. Литье, к тому же, позволит сделать ее из "правильного" материала с последующей термической обработкой и избавляет от поиска "рукастого" токаря ;) Но это уже другая история и, наверное, не в этом форуме.
    • NickEL1000
      ----------------------------------- а @Ninja , как и все продажники софта, готов кипятком писать от своей программы, и т.к. эмоциональная составляющая напрочь блокирует любое критическое мышление, то достучаться до него с позиции логики и здравого смысла в принципе бесполезно.  Это как поездил на своей машине и очень доволен, а качество машины соседа определяешь по стилю вождения соседа...   -------------- уточню исходную модель - в родном формате CAD-системы, по другому и не получится операцию в prz c нулевым сжатием
    • piden
    • NickEL1000
      сохранять лучше в prz c нулевым сжатием, зависит от вашего стиля работы
    • sennik53
      как  очередному б-у сказать,  что он стоит перед новыми воротами?  ученик ( а может клон самого Чингачгука, который определяется по стилистики слов и построению фраз с применением своих сленговых предложений и междометий). Слово "гемор" в транскрипции "Чингачгука (охотника за скальпами)" означает не достаточное знание проблемных зон здорового тела человека. По медицинскому определению геморрой -  это заболевание. А по определению  Ninja это какие-то ложки.
    • NickEL1000
      не ну можно и самому разобраться...при желании, мозги поразмять..