协同仿真 API 概述
以下章节提供有关如何通过 Simcenter STAR-CCM+ 协同仿真 API 将程序与 Simcenter STAR-CCM+ 进行耦合的信息。有关可用 API 函数和选项的详细信息,请参考“协同仿真 API 在线帮助”。可通过选择 ,从 Simcenter STAR-CCM+ 界面访问在线帮助。
示例程序
- Windows:[INSTALLDIR]\Documents\STAR-CCM+TutorialFiles16.06\tutorials\couplingWithCaeCodes\CoSimAPI_Code
- Linux:[INSTALLDIR]/Documents/STAR-CCM+TutorialFiles16.06/tutorials/couplingWithCaeCodes/CoSimAPI_Code
协同仿真 API:杆阀教程演示了如何在协同仿真分析中将 SpindleValve 示例程序与 Simcenter STAR-CCM+ 进行耦合。
API 库
- Windows:[INSTALLDIR]\star\lib\[OS]\[COMPILER]\lib\StarccmplusCoSimulationApi.dll
- Linux:[INSTALLDIR]/star/lib/[OS]/[COMPILER]/lib/StarccmplusCoSimulationApi.so
SpindleValve 示例中附带的 LibraryLoader.h 和 LibraryLoader.cpp 文件将演示如何使用 API 库进行动态加载。
标头文件
- Windows:
[INSTALLDIR]\star\include
- Linux:
[INSTALLDIR]/star/include
从在线帮助中,可以在文件选项卡下访问标头文件的 HTML 版本。
StarccmplusCosimulationApiV8.h | 包含定义协同仿真 API v8 的功能套件。 程序仅需要包括此标头文件。系统将自动包括 StarccmplusCosimulationApiStruct.h 和 StarccmplusCosimulationApiConstants.h 文件。 |
StarccmplusCosimulationApiStruct.h | 包含功能套件 API 的主要访问功能。 |
StarccmplusCosimulationApiConstants.h | 包含功能套件 API 使用的常数。 |
注 | 该文件夹包含与已作废版本的 API 相对应的额外标头文件。程序只能包括一个提供的标头文件。 |
API 结构和功能套件
协同仿真 API 由一组功能组成,为程序和 Simcenter STAR-CCM+ API 服务器之间的通信提供了一个界面。这些功能按功能套件分组。
有两种类型的功能套件。第一种类型(包括主 API 套件、工厂套件和属性套件)可为程序调用 Simcenter STAR-CCM+ API 服务器提供界面。第二种类型(包括处理程序套件)可为 Simcenter STAR-CCM+ API 服务器回调程序提供界面。所有功能套件均包含在标头文件 StarccmplusCosimulationApiV#.h 中,其中,# 为 API 版本号。
每个功能套件均由发布功能套件的 API 版本和唯一名称加以标识。此架构通过为每个 API 版本提供功能套件,有助于加强版本控制。每个 API 新版本均会扩展现有的功能套件、创建新功能套件或者停用旧功能套件。
在访问功能套件之前,可以调用协同仿真 API 库以获取 API 结构指针。
- API 结构
- StarccmplusCosimulationApiStruct.h 中的 API 结构包含许多指向 API 库功能的指针,允许程序执行以下操作:
- 验证 API 版本
- 按 API 版本和名称检索 Simcenter STAR-CCM+ 功能套件
- 按 API 版本和名称指定处理程序功能套件
- 主 API 套件
- 主功能套件 StarccmplusApiSuiteV#(其中,# 为 API 版本号)包含指向 API 库功能的指针,允许程序执行以下操作:
- 初始化或终止 API 库
- 同步与合作伙伴的连接
- 设置时间步
- 设置耦合时间间隔(显式耦合)或每个交换的内部迭代次数(隐式耦合)
- 指示程序等待 Simcenter STAR-CCM+ 中的数据
- 通知 Simcenter STAR-CCM+ 网格或场数据已准备导出
- 通知 Simcenter STAR-CCM+ 当前处理循环已完成
- 通知 Simcenter STAR-CCM+ 任何错误和警告
- 工厂套件
- 工厂套件 StarccmplusFactorySuiteV#(其中,# 为 API 版本号)包含许多指向 API 库功能的指针,允许程序与 Simcenter STAR-CCM+ API 服务器进行通信并在其中实例化对象。具体地说,此功能套件允许执行以下操作:
- 创建物理连续体
- 创建区域和边界
- 创建协同仿真链接
- 设置协同仿真链接
- 创建协同仿真区域
- 将区域和边界分配给协同仿真区域
- 提供网格
- 导入/导出场数据
- 在 API 服务器中获取并设置特定条件和值信息
- 属性套件
- 要在程序和 Simcenter STAR-CCM+ API 服务器之间传递数据,可以定义名为属性容器的中间体数据存储结构。属性容器具有其自身的 ID,类型为 int。用于创建属性容器的 API 调用将返回容器 ID。对于所有涉及相同属性容器的未来操作,程序均必须保留容器 ID。
- 处理程序套件
- 处理程序套件 StarccmplusHandlerSuiteV#(其中,# 为 API 版本号)包含许多指向允许 Simcenter STAR-CCM+ 回调至程序等功能的指针。
辅助脚本
Simcenter STAR-CCM+ 安装包含两个辅助脚本,即 buildapi 和 starapi。这些脚本可用于编译和启动示例程序 SpindleValve。请参见示例程序。
也可以使用这些脚本编译和启动自己的程序。但是,建议根据需要使用自己的构建系统编译和启动程序。
例如,在 Windows 中,通常使用 Microsoft Visual Studio 编译代码。此方法不需要从命令行启动程序。可以直接从 Microsoft Visual Studio 编译和启动程序。有关指导说明,请参见杆阀示例使用 Windows 编译和启动合作伙伴代码。
- Windows:
[INSTALLDIR]\star\bin\buildapi.bat
[INSTALLDIR]\star\bin\starapi.bat
- Linux:
[INSTALLDIR]/star/bin/buildapi
[INSTALLDIR]/star/bin/starapi
- buildapi
- buildapi 辅助脚本提供了一个用于编译程序的构建系统。该脚本使用以下编译器:
- gcc for C 和 Intel Fortran 11(对于 Linux)
- Intel C++ 编译器和 Intel Fortran 编译器(对于 Windows)
注 该脚本已使用构建 Simcenter STAR-CCM+ 所用的编译器进行测试。有关信息,请参考安装指南中的 Simcenter STAR-CCM+2406 的认证平台一节。 要使用脚本编译程序,使用以下命令:- Windows:
> call "[INTEL_C++_INSTALLDIR]\bin\compilervars.bat" intel64 > [INSTALLDIR]\star\bin\buildapi.bat [<verbosity>] <executable name> [<source files>]
- Linux:
% [INSTALLDIR]/star/bin/buildapi [<verbosity>] <executable name> [<source files>]
- starapi
- starapi 脚本将启动程序,并设置环境以允许程序加载协同仿真库且启动 Simcenter STAR-CCM+ API 服务器。要通过命令控制台启动程序,使用以下命令:
- Windows:
> [INSTALLADIR]\star\bin\starapi.bat [<verbosity>] <executable> [<executable arguments>]
- Linux:
% [INSTALLDIR]/star/bin/starapi [<verbosity>] <executable> [<executable arguments>]
- Windows: