What's it?

Language

VC++ UDF Studio is a professional tool that takes advantage of Visual Studio IDE, C++ compiler, and debugger to edit, compile, load, unload and debug FLUENT UDF source in a simple way (all-in-one). It controls FLUENT, Visual Studio in the form of add-on menu/toolbar and makes them cooperate like a unified software. Furthermore, C++ language and Win32 API/MFC functions can be identified in this tool, which greatly enhances the capability of UDF. For example, you can call 3rd-party C/C++ library, enable Fortran suport by calling Fortran static library or couple Fluent with matlab by calling Windows socket using this tool (blog demo)

From now on, debugging UDF code will be just as easy as common C/C++ in Visual Studio. Source code can be traced line by line and intermmediate variable values can be inspected where mouse hovered. Just try it!

Screenshots

Downloads

Supported Platforms

Windows: WinXP ~ Win10 (32bit & 64bit) Professional or Enterprise

Visual Studio: 2008SP1 ~ 2013 Professional or Ultimate (Chinese or English version)

Fluent: 6.3 ~ 2022R1

Intel Visual Fortran: 2011 ~ 2018 (12.0~18.0)

Matlab: 2014a ~ 2021b

Features

Capabilities

Academic version

Enterprise version

Trial

Registered

Trial

Registered

Compile and debug
(serial, single precision)

max. 2 macros

unlimited macros

max. 2 macros

unlimited macros

Compile and debug
(serial, double precision)

Compile and debug
(parallel, single/double precision)

Call C++/Win32 API/MFC functions

Get zone ID from name by UDF

Interrupt iteration by UDF

Call 3rd-party library

Set 3rd-party library folders

max. 1 folder
unlimited

Add user menu in Fluent

max. 2 submenus
unlimited

Drive Fluent to iterate by UDF

max. 1 steady iteration
unlimited

Call Scheme/TUI in UDF

Call CoolProp
max. 1 function
unlimited
max. 1 function
unlimited
Call Intel Fortran Procedures
max. 1 procedure
unlimited
max. 1 procedure
unlimited
Call Matlab Functions
max. 1 function, matrix argument forbidden
unlimited
max. 1 function, matrix argument forbidden
unlimited

Couple iteration with Matlab

In develop.
In develop.

 

Typical University Customers

News

Feb-2021: This tool was developed as two versions: Academic and Enterprise versions. The later has more enhanced functions.

May-2020: VIP Tencent QQ group created for academic version (only for registered users of academic version).

Nov-2018: Tencent QQ group created (group number: 817525240).

Jun-2018: VC++ Udf Studio homepage created (https://vcUdfStudio.bitbucket.io).

History

May-2022: version 2022R1 SP4

  • Optional CoolProp property library was added.
  • Auto check update and remind users (Users can disable the reminder).
  • Could start from Workbench now.
  • In parallel debugging, the user can select which of the host/node processes to debug. Other processes will be ignored even if breakpoints were set.
  • Enhanced source code identification capability. For example, when the right quotation symbol of #include declaration is lost, "UDF code requires at least one DEFINE_XXX macro be added" error will show in previous version. Now it is fixed.
  • If "calling Matlab" is checked and compilation is started before .m file conversion to C++ files, error will show.
  • If Visual Assistant is not installed, then a tips will pop up to suggest users to install it (Users can disable the tips).
  • Put the SuperUdfExtension.lib into project file and as a result #pragma comment(lib, "SuperUdfExtension.lib") is no longer needed in the source code.

Apr-2022: version 2022R1 SP3

  • Added the "//#pragma comment(lib, "SuperUdfExtension.lib")" line in demo udf_source.cpp, which is lost in the old verison.
  • SuperUdf_Interrupt function is added into the SuperUdf extension library to interrupt iteration.
  • Fixed the bug that input file 'preprocessing.lib' cannot be opened when there is no DEFINE_XXX macros.
  • Fixed the bug that input file 'preprocessing.lib' cannot be opened or Visual Studio toolbar is always disabled when the case directory contains '=,&; symbols.
  • Auto detect whether matlab coder is installed when the user checks the "Call matlab" option.
  • Case directory will be stored as the starting directory if the case UDF source has been edited with this tool.

Apr-2022: version 2022R1 SP2

  • Fixed the bug that "Get_Report_Definition_Values" function cannot be identified.
  • Fixed the bug that input file 'preprocessing.lib' cannot be opened when DEFINE_XXX macro name is same as those in C++ std namespace, such as "add_const", "advance", "equal", "begin" or "end".
  • Fixed the bug that even once is forbidden when driving Fluent to iterate in enterprise trial verison.

Mar-2022: version 2022R1 SP1

  • Fixed the bug that Visual Studio crashes due to huge size of "udf_source.cpp" file in some cases.

Jan-2022: version 2022R1

  • Support Fluent6.3 ~ Fluent 2022R1.
  • Fixed the bug that Matlab-related commands can't be removed from Visual Studio after uninstallation.
  • Fixed the prompt information error in the trial version of "Setting Matrix" dialog.

Dec-2021: version 2021R2

  • Support Fluent6.3 ~ Fluent 2021R2.
  • Add "Call Intel Fortran Procedures" and "Call Matlab Functions" capabilities (optional to purchase).

Nov-2021: version 2021R1 SP4

  • Single core parallel was allowed in registered version to facilitate parallel debugging.

Aug-2021: version 2021R1 SP3

  • Fixed the bug that Fluent freezes when starting Fluent2021R1 serial version.
  • Fixed the bug that compilation can't pass if udf_source.cpp file is closed in VS editor.
  • "Open UDF source folder" and "Read tutorial" button command are now enabled in debug mode.

May-2021: version 2021R1 SP2

  • Fixed the bug that "LNK2019:unresolved external symbol" error reported when DEFINE_TRANSIENT_PROFILE macro used in Fluent18.0-19.4.

Mar-2021: version 2021R1 SP1

  • Fixed the bug that Visual Studio reports "OnBuildBegin confliction" and "can't open preprocessing.lib file".
  • Fixed the bug that "browse folder" button doesn't work properly in WinXP.
  • Allow UDF programming to drive Fluent to iterate once in trial version (enterprise version only).
  • Fixed the bug that Chinese folder name can't be stored in the 3rd-party header and library directories setup dialog (enterprise version only).

Feb-2021: version 2021R1

  • Support Fluent6.3 ~ Fluent 2021R1.
  • Added "double precision" checkbox to replace 2ddp, 3ddp
  • Added SuperUdfExtension extension library (get zone ID from name, drive Fluent to iterate by UDF, perform Fluent TUI/sheme command by UDF, insert user menu in Fluent, etc.. Some of these functions are only provided in enterprise version)
  • Enabled to set 3rd-party header and lib file directories (enterprise version only)
  • Fixed the bug that Intellisense report “ud_io1.h” cannot be found.
  • Fixed the bug that register information cannot be deleted when uninstalling on 32bit windows.
  • Detect whether the UDF library is occupied by other processes. If yes, the program can kill these processes before compiling.
  • In old parallel version, only host UDF library was detected whether it has been loaded in Fluent. Now host and node library are both detected. If either one has been loaded, the compilation will stopped.

Aug-2020: version 2020R2

  • Support Fluent6.3 ~ Fluent 2020R2.
  • Fixed the bug that memory occupied by VC++UdfStudio is not freed when the user unloads "VC++UdfStudio" menu from Fluent manually for Fluent17.0 and higher version.
  • Fixed the bug that HardWare ID section may be empty in the user information file "user.ini".
  • Not show the C4190 warning any more (like 'XXX' has C-linkage specified, but returns UDT 'XXX' which is incompatible with C) because of including "sg.h" or "geom_info.h" header.

Jul-2020: version 2020R1 SP1

  • Add menu separator for different button groups.
  • Fixed the messy code bug when using non-Chinese language in non-Unicode program setting.
  • Fixed the bug that VS report "can't find add-in" error after uninstalling this program (clean up residues during uninstalling).
  • Auto select interface language according to Windows language at the first start.
  • Fixed the bug that sometimes hardware information is not coresponding to Windows system root.
  • Fixed the bug that sometimes Fluent file operation functions (e.g. fluent_fopen, fluent_fprintf) can't be called if DEFINE_RW_FILE macro exists in the udf source.
  • Fixed the messy code bug when loaded in Fluent for the demo source code.

Feb-2020: version 2020R1, English-Chinese dual language edition

  • Support both English and Chinese interface languages.
  • Beautify dialog font.

Feb-2020: version 2020R1

  • Support Fluent6.3 ~ Fluent 2020R1.
  • "udf_source.cpp" will be opened directly when it exists. No longer ask users to overwrite or not. If it doesn't exist, a demo UDF source file will be created.
  • Fixed the bug that VS will freeze when Fluent closes on Win10 (Now if Fluent closes, VS will be closed directly without any prompt).
  • When reading a new case with Fluent window maximized, VS saving file dialog will be overlayed by Fluent window, which may lead users to misunderstand that VS is freezing. Now this bug is fixed, the saving dialog in VS will be shown at the foreground.
  • Fixed the bug "If VS has modal dialog such as 'option' dialog in open on Win10, VS will freeze when closing Fluent or reading/writing case or unloading VC++ UDF Studio addon menu".
  • Fix the bug "Can't find function pointer in Fluent libudf library due to using UDF_EXPORT keyword". For example, if using UDF_EXPORT in Real Gas Model source code, "couldn't get real_gas_fcns" will be reported when hooking Real Gas Model macros.
  • Added the "WIN64" definition in Fluent18.0 and higher versions, and resultant bugs.
  • Fixed the bug "version.h header file not included in udf.h". This bug will prevent the UDF source to call important functions, such as Inquire_Fluent_Build_Time, Inquire_Release.
  • Fixed the bug that Fluent flash-offs without any prompt due to license absense.
  • Fixed the bug that Fluent add-on menu can't show occasionally.
  • Enhanced the capability that new reading/saving/importing case (*.cas, *.cas.gz, *.cas.h5) can be auto detected. If the new case directory is different from that in VS, VS will be closed automatically.
  • Fluent working directory is always synchronized with the new open/saving/importing case directory.
  • Fix the bug that Visual Studio can't be auto closed when Fluent window closes in Fluent version 12.1~14.5.

Nov-2019: version 2019R3

  • Support Fluent6.3 ~ Fluent 2019R3.
  • Fixed the bug that UDF library can't be loaded/unloaded when some editboxs (such as gravity setup editbox) are open before starting Visual Studio in Fluent 12.0~16.2.
  • Fixed the bug that "node" library compilation fails in parallel version if the Fluent case folder contains "=" symbol.
  • Version code 19.3, 19.4, 19.5 are replaced by 2019R1, 2019R2, 2019R3 in "launcher" combobox.
  • Fixed the bug that “Please read case first” still occurs when starting Visual Studio after importing non-Fluent mesh formats.
  • The udf "source" folder and UDF library "libudf" directory can't be auto updated if the current Fluent case is saved in other directory. But this is only available in Fluent version later than 19.0. For verison<19.0, it is a known bug (So please do not save the case to other directory anymore after the Fluent case is read if your Fluent verison is below 19.0).

Sep-2019: version 2019R2 Service Pace 1

  • Fixed the bug that Intellisense reports unable to find "ud_io1.h" when start debugging.
  • Fixed the bug that Visual Studio instance can't be closed when Fluent closes or VC++ Udf Studio menu is unloaded in debugging mode (In previous version, Visual Studio may freeze or lead to illegal operation).
  • Users needn't put #include "udf.h" in extern "C" and #include "stdafx.h" at the beginning of UDF source file. That means the UDF source file syntax is exactly same as that of a traditional UDF.
  • Fixed the bug that some users can't load VC++ Udf Studio menu in VS2012/2013.
  • Fixed the bug that version auto turns back to 2d when ajusting processes in parallel version.
  • Fixed the bug that error occurs if a case is in drive root directory.
  • Enhanced the searching capability for VS and Fluent installation directories.
  • Syncronized working directory with that of the opening case all the time to facilitate opening and saving files.
  • If the user chooses to overwrite the source file, a backup file will be generated to allow recovery in future.
  • Debugging will be forbidden if the user starts debugging in Release mode or in debugging mode without pdb file.
  • Remove the warning "MBCS support in MFC is deprecated" and "function or variable may be unsafe" (e.g. sprintf) in VS2013.
  • Disable some unnecessary menu items and buttons in VS to avoid misoperation.

Jun-2019: version 2019R2

  • Support Fluent6.3 ~ Fluent 2019R2.
  • Remove the bug that "Error: sopenoutputfile: unable to open file for output" warning is shown in red words when FLUENT starts.

May-2019: version 19.2

  • Support Fluent6.3 ~ Fluent 19.2.
  • User hardware information is stored in a file instead of the clipboard so as to avoid returned register code error because space may be inserted when pasting hardware information in some email systems.

Sep-2018: version 18.2 Service Pace 1

  • Fixed the bug that shows "Some Error occurs. Restart may work!" error message in 64 bit Win10.
  • Not depending on “FLUENT_INC” environment variable any longer. When multiple FLUENT versions installed, users can specify the version to be run in launcher. And selected versions will be recorded for next time.

Jun-2018: version 18.2

March-2018: version 1.0 SP2 (only in China)

February-2018: version 1.0 SP1 (only in China)

November-2017: version 1.0 beta (only in China)