PyAnsis获取elastic_strain_principal_1结果与Ansys Desktop不一致问题
问题描述
我尝试从rst格式的仿真结果文件中提取数据,初始代码如下:
from ansys.dpf import core as dpf model = dpf.Model(r'.\file.rst')
我需要获取第一主弹性应变,于是创建了对应的算子实例:
op = dpf.operators.result.elastic_strain_principal_1()
接着将算子与模型关联以填充参数:
op.inputs.data_sources.connect(model.metadata.data_sources)
尽管默认设置应该已经生效,但我还是特意指定获取最后时间步的结果:
time_scoping = model.metadata.time_freq_support.time_frequencies.data[-1] op.inputs.time_scoping.connect(float(time_scoping))
之后创建场容器并提取数据:
result_fields_container = op.outputs.fields_container() field = result_fields_container[0] #仅考虑单个时间步,所以取[0] field_data = field.data
按我的理解,这段代码应该能提取最后时间步所有节点的第一主弹性应变,但结果和Ansys Desktop的输出差异极大——两者的最大值相差1.5个单位。我搞不懂PyAnsys的运行逻辑,也找不到结果不符的原因。更让我困惑的是,用完全相同的代码结构提取stress_principal_1(第一主应力)时,PyAnsys和Ansys Desktop的结果完全一致。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

