If you can't visit bitbucket in China, you can visit temporary mirror site (https://vcUdfStudio.github.io)。
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!
Supported Platforms
Windows: WinXP ~ Win11 (32bit & 64bit) Professional or Enterprise
Visual Studio: VS2010 ~ VS2019 Community, Professional or Ultimate (Chinese or English version)
Fluent: 6.3 ~ 2024R2
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 |
max. 1 macros, No serial trial for Fluent2022R2 or higer |
unlimited macros |
max. 1 macros, No serial trial for Fluent2022R2 or higher |
unlimited macros |
Compile and debug |
||||
Compile and debug |
1-core parallel trial for Fluent2022R2 or higher |
1-core parallel trial for Fluent2022R2 or higher |
||
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. |
Development Milestone:
Aug-2024: Add "Hook Assistant" capability.
Dec-2022: Begin to support dynamic link mode to call Matlab functions.
Oct-2022: Begin to support Visual Studio 2015~2019.
Jul-2022: Temporary mirror homepage was created (https://vcUdfStudio.github.io) in case that bitbucket website can't be visited from China. Stable official homepage is in construction.
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
Aug-2024: version 2024R2
- Support Fluent6.3 ~ Fluent 2024R2.
- Add "Hook Assistant" capability to prompt users how to hook their DEFINE_XXX macros.
- Fixed the bug that DEFINE_XXX macro cannot be identified if the whole macro implementation body is on the same line.
- Add "try starting with administrator rights" prompt if Workbench or Fluent start fails.
- If VS2019 is installed without other VS versions and statically linked with Matlab, then "Selected C compiler is incompatible with C99 (ISO) language standard" warning may occur. Now, solution prompt can be given to users.
Feb-2024: version 2024R1
- Support Fluent6.3 ~ Fluent 2024R1.
- Fixed the bug that "Error in moving MatlabLibrary.dll to libudf directory" warning occurs when users compile the UDF source first time under dynamic link to Matlab mode.
- Fixed the bug that Intellisense errors also reported in the "Error list" window.
Dec-2023: version 2023R2 SP3
- Fixed the bug that VC++UdfStudio add-on menu disappear in parallel version.
Dec-2023: version 2023R2 SP2
- Fixed the bug that Intellisense cannot find header files, such as "udf.h" and "Go to Definition" also failed.
- In "Dynamic link" mode of calling Matlab functions, the dependency of MatlabLibrary.dll on VcRuntime.dll or MSVCR.dll are removed.
- Fixed the bug that in "Dynamic link" mode of calling Matlab functions, once the MatlabLibraryInitialize function is executed, "Error code: 126" will occur when loading the UDF library again after unloading the UDF library.
Dec-2023: version 2023R2 SP1
- Add "Dynamic link" mode to call Matlab functions.
- Fixed the bug that "Convert .m files to C/C++" button always be enabled in Visual Studio.
- If some Matlab functions are not supported by "Static link" mode, then warning will show to suggest users to use "Dynamic link".
Oct-2023: version 2023R2
- Support Fluent6.3 ~ Fluent 2023R2.
- Fixed the bug that "Your Fluent case directory is too long!" warning occurs when parallel cores exceeds 50.
- CoolProp library is upgraded from 6.4.1 to 6.4.3.
Apr-2023: version 2023R1 SP1
- Fixed the bug that academic version toolbar icons in VS2012~2019 are not correct.
Mar-2023: version 2023R1
- Support Fluent6.3 ~ Fluent 2023R1.
- If the user has installed python component, the bug "Failed to attach debugger: Cannot open process for debugging" will appear if the user start debugging. Now it is fixed.
- Fixed the bug that compilation will be forced to cancel if some non-UDF-project files are opened in VS editor.
- Improved the searching accuracy for Visual Studio 2017~2019 installation.
Nov-2022: version 2022R2 SP1
- Detect whether MFC component has been installed. If not, then shows error to avoid creating UDF source file failure in Visual Studio.
- Matlab converted to .c file so as to avoid the error like "The specified code generation target is configured to generate C++, but the C-only compiler, LCC, is the default compiler... " when Matlab required C++ compiler is not installed.
- Show warnings after C/C++ conversion fails if multiple Matlab versions installed.
Oct-2022: version 2022R2
- Support Fluent6.3 ~ Fluent 2022R2.
- Fixed the bug that "udf_source.cpp" content can't be auto opened if VS restarts after Solution Explorer is deactivated.
- Fixed the bug that Matlab can't be identified for some higher version or user defined installation folder.
- Add the homepage mirror https://vcudfstudio.github.io and update check using this mirror.
- Can remember input parameter types even if "Convert .m files to Cpp" Dialog is closed.
- Convert dynamic matrix type using C method (i.e., dynamic matrix represented by matrix name and matrix size) so as to avoid using Matlab defined types, like "emxArray" or "coder::array", which may confuse users.
- Fixed the bug that workbench will start event if users click "Cancel" in the "True serial warning" dialog.
Jul-2022: version 2022R1 SP5
- Fixed the bug that VS may crash when editing non-C++ project and clicking files in Solution Explorer if VS does not start from FLUENT.
- When saving a case in high Fluent Serial version (>=2020R1), issues like "Hdfio library can be only loaded in parallel" or "%prf-set-var: invalid fixnum" will occur. Now it is fixed.
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)