创建新用户库

本节提供有关在 Linux 或 Windows 上创建用户库的信息。

用户库是从其构成用户函数和库注册函数创建的。

在 Linux 上创建用户库

在 Linux 上,Simcenter STAR-CCM+ 不需要对此过程使用特定编译器。对于所选的通用编译器,下表提供了从 C 或 Fortran 源文件创建基本名为 user(用户) 的库的示例命令。还可以使用可选编译标志,例如针对优化;有关详细信息,请参阅编译器手册。

编译器 精度 编译命令

GCC

混合精度

gcc -fPIC -shared *.c -o libuser.so

GCC

双精度

gcc -DDOUBLE_PRECISION -fPIC -shared *.c -o libuser.so

GNU Fortran 77

混合精度

g77 -fPIC -shared *.f -o libuser.so

G95

混合精度

g95 -fPIC -shared *.f -o libuser.so

在 Windows 上创建用户库

Windows 不支持 FORTRAN。

以下说明适用于 Microsoft Visual C++ 2013。早期版本可能无法正常运行,如果是这样,采用不同的方式。Windows 仅支持 64 位版本。链接到 UserFunctions.lib(位于 Simcenter STAR-CCM+ 安装目录的编译器子目录中),例如:

C:\Program Files\Siemens\18.02.002\STAR-CCM+18.02.002\star\lib\win64\clang15.0vc14.2\lib

要在 Windows 上创建用户库,执行以下步骤:

  1. 打开 VS2013 x64 Native Tools Command Prompt(VS2013 x64 本机工具命令提示符) 以编译 64 位库。
  2. 使用以下命令将源程序编译到对象文件中:
    cl /MD /D_WINDOWS -c *.c

    对于 *.cpp 文件,将 *.c 替换为 *.cpp

    对于双精度程序,包括编译器选项 /DDOUBLE_PRECISION

  3. 使用 UserFunctions.lib(位于 Simcenter STAR-CCM+ 安装目录的编译器子目录中)将对象链接到动态链接库 (DLL):
    link -dll /out:libuser.dll *.obj “C:\Program Files\Siemens\18.02.002\STAR-CCM+18.02.002\star\lib\win64\clang15.0vc14.2\lib
    \UserFunctions.lib”
  4. 检查是否已从 DLL 导出名为 uclib 的函数。Simcenter STAR-CCM+ 将在 DLL 中查找此函数:
    dumpbin/exports libuser.dll

    以下是转储输出的示例:

    Microsoft (R) COFF/PE Dumper Version 12.00.30501.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    Dump of file libuser.dll
    File Type: DLL
      Section contains the following exports for libuser.dll
    
        00000000 characteristics
        54D1FF8D time date stamp Wed Feb 04 11:16:29 2015
            0.00 version
               1 ordinal base
               1 number of functions
               1 number of names
        ordinal hint RVA      name
              1    0 00001000 uclib
      Summary
            1000 .data
            1000 .pdata
            1000 .rdata
            1000 .reloc
            1000 .text
    

对于 Visual Studio 2013,无需嵌入清单文件。构建的 DLL 依赖于 Visual Studio 运行时 (MSVCR120.DLL)。Visual Studio 运行时必须存储在磁盘上,便于 Simcenter STAR-CCM+ 找到它。通常,如果安装了 Visual Studio,则 MSVCR120.DLL 已位于机器上。否则,可以安装 Visual Studio Redistributable,或者直接将 DLL 复制到与用户编码 .dll 相同的位置。