![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
After you have set up the folder structure and put the files in the proper places, you can compile and build the shared library using the TUI.
Windows Systems
SOURCES = | the user-defined source file(s) to be compiled. |
Use the prefix $(SRC) before each filename. For example, | |
$(SRC)udfexample.c for one file, and | |
$(SRC)udfexample1.c $(SRC)udfexample2.c for two files. | |
VERSION = | the version of the solver you are running which will be the |
name of the build folder where user_nt.udf is located. | |
( 2d, 3d, 2ddp, 3ddp, 2d_host, 2d_node, 3d_host, 3d_node, | |
2ddp_host, 2ddp_node, 3ddp_host, or 3ddp_node). | |
PARALLEL_NODE = | the parallel communications library. |
Specify none for a serial version of the solver or one of | |
the following: | |
smpi: parallel using shared memory (for multiprocessor | |
machines) | |
vmpi: parallel using shared memory or network with vendor | |
MPI software | |
net: parallel using network communicator with RSHD | |
software |
|
If you are using a parallel version of the solver, be sure to edit
both copies of
user_nt.udf (the one in the host folder and the one in the node folder), and specify the appropriate
SOURCE,
VERSION, and
PARALLEL_NODE in each file. Set
PARALLEL_NODE = none for the host version and one of the other options
smpi, vmpi, net, nmpi for the node version depending on which message passing method you are going to use.
|
An excerpt from a sample user_nt.udf file is shown below:
# Replace text in " " (and remove quotes) # | indicates a choice # note: $(SRC) is defined in the makefile SOURCES = $(SRC)udfexample.c VERSION = 2d PARALLEL_NODE = none |
\libudf\ntx86\2d\
), and type
nmake as shown in the following example.
C:\users\user_name\work_dir\libudf\ntx86\2d>nmake |
The following messages will be displayed:
Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. cl /c /Za /DUDF_EXPORTING -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\ntx86\2d -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\cortex\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\client\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\tgrid\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\multiport\src ..\..\src\udfexample.c Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. udfexample.c # Generating udf_names.c because of makefile udfexample.obj cl /c /Za /DUDF_EXPORTING -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\ntx86\2d -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\cortex\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\client\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\tgrid\src -Ic:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\multiport\src udf_names.c Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. udf_names.c # Linking libudf.dll because of makefile user_nt.udf udf_names.obj udfexample.obj link /Libpath:c:\Program Files\ANSYS Inc\v120\fluent\fluent12.0.9\ntx86\2d /dll /out:libudf.dl l udf_names.obj udfexample.obj fl1209s.lib Microsoft (R) Incremental Linker Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. Creating library libudf.lib and object libudf.exp C:\Program Files\ANSYS Inc\v120\fluent\ntbin\ntx86\libudf\ntx86\2d> |
|
Note that if there are problems with the build, you can do a complete rebuild by typing
nmake clean and then
nmake again.
|
UNIX and Linux Systems
SOURCES = | the name of your source file(s) (e.g., udfexample.c) |
Multiple sources can be specified by using a space delimiter | |
(e.g., udfexample1.c udfexample2.c) | |
FLUENT_INC = | the path to your release directory |
CFLAGS_IRIX6R10= -KPIC -ansi -fullwarn -O -n32 |
CFLAGS_IRIX6R10= -KPIC -xansi -fullwarn -O -n32 |
For all other architectures, do not make any further changes to the makefile.
An excerpt from a sample makefile is shown below:
#-----------------------------------------------------------#
# makefile for user defined functions.
#
#-----------------------------------------------------------#
#-----------------------------------------------------------#
# User modifiable section.
#-----------------------------------------------------------#
SOURCES= udfexample1.c
FLUENT_INC= /
path
/ansys_inc/v120/fluent
# Precompiled User Object files (for example .o files from .f
sources)
USER_OBJECTS=
#-----------------------------------------------------------#
# Build targets (do not modify below this line).
#-----------------------------------------------------------#
.
.
.
Note that in the previous example, path represents the directory where you installed ANSYS FLUENT.
make "FLUENT_ARCH=lnx86" |
ANSYS FLUENT will build a shared library for each version you created a directory for (Section 5.3.1) and will display messages about the compile/build process in the console. You can view the compilation history in the log file that is saved in your working directory.
For example, when compiling/building a shared library for a source file named profile.c and a UDF library named libudf on a Linux architecture, the console messages may include the following:
Working... for d in lnx86[23]*; do \ ( \ cd $d; \ for f in ../../src*.[ch] ../../src/makefile; do \ if [ ! -f 'basename $f' ]; then \ echo "# linking to " $f "in" $d; \ ln -s $f .; \ fi; \ done; \ echo ""; \ echo "# building library in" $d; \ make -k>makelog 2>&1; \ cat makelog; \ ) \ done # linking to ... myudf.c in lnx86/2d # building library in lnx86/2d make[1]: Entering directory ..../udf_names.c # Generating udf_names make[2]: Entering directory ..../profile.c make libudf.so ... # Compiling udf_names.o ... # Compiling profile.o ... # Linking libudf.so ... make[2]: Leaving directory ..../udf_names.c make[1]: Leaving directory ..../profile.c You can also see the 'log'-file in the working directory for compilation history Done. |