Getting started#
数据处理框架(DPF)为数值模拟用户和工程师提供了访问和转换模拟数据的工具箱。DPF 可以访问来自 Ansys 求解器结果文件以及多个中性文件(参见 PyDPF-Core )的数据。
这个基于 workflow-based 框架可让您对大量仿真数据执行复杂的预处理和后处理操作。
PyDPF-Core 是一个 Python 客户端 API ,可通过网络使用 gRPC 或直接在同一进程中与 DPF服务器 通信。
Install DPF Server#
要使用 PyDPF-Core,您需要访问 DPF 服务器。
在 Ansys 2021 R1 及更高版本中,DPF 服务器打包在 Ansys 安装程序 中。要使用它,请使用您首选的分发渠道下载标准安装程序,然后按照安装程序说明安装 Ansys。 有关获取 Ansys 许可副本的信息,请访问 Ansys 网站 。
DPF 服务器预览版也可以作为 standalone(独立) 包(独立于 Ansys 安装程序)在 Ansys Customer Portal 的 DPF Pre-Release page 上提供。 如 Licensing 中所述,单机版 DPF 服务器仍受 Ansys 许可机制的保护,需要接受 DPF 预览版许可协议。 获得 Ansys 许可证后,请按照 install a standalone DPF Server 的指南进行操作。
有关安装、管理和运行 DPF 服务器的更多信息,请参阅 DPF Server 。
Install PyDPF-Core#
要在 Python 环境中安装 PyDPF-Core,请运行此命令:
pip install ansys-dpf-core
请务必查看 compatibility guidelines ,以了解您的 DPF 服务器版本是否与最新版本的 PyDPF-Core 兼容。
有关更多安装选项,请参阅 Installation section 。
Use PyDPF-Core#
要使用 PyDPF-Core,请在相同的 Python 环境中运行此命令:
from ansys.dpf import core as dpf
from ansys.dpf.core import examples
model = dpf.Model(examples.download_crankshaft())
print(model)
DPF Model
------------------------------
Static analysis
Unit system: MKS: m, kg, N, s, V, A, degC
Physics Type: Mechanical
Available results:
- displacement: Nodal Displacement
- velocity: Nodal Velocity
- acceleration: Nodal Acceleration
- reaction_force: Nodal Force
- stress: ElementalNodal Stress
- elemental_volume: Elemental Volume
- stiffness_matrix_energy: Elemental Energy-stiffness matrix
- artificial_hourglass_energy: Elemental Hourglass Energy
- thermal_dissipation_energy: Elemental thermal dissipation energy
- kinetic_energy: Elemental Kinetic Energy
- co_energy: Elemental co-energy
- incremental_energy: Elemental incremental energy
- elastic_strain: ElementalNodal Strain
- structural_temperature: ElementalNodal Temperature
------------------------------
DPF Meshed Region:
69762 nodes
39315 elements
Unit: m
With solid (3D) elements
------------------------------
DPF Time/Freq Support:
Number of sets: 3
Cumulative Time (s) LoadStep Substep
1 1.000000 1 1
2 2.000000 1 2
3 3.000000 1 3
over_time_disp = model.results.displacement().eval()
over_time_disp[0].plot()