Create Hierarchical Data Format File with Velocity Results Using DPF

The following script enables you to create a Hierarchical Data Format (HDF) Version 5 (.hdf5/.h5) file that includes velocity results using the Data Processing Framework (DPF) operator. You can then import the generated file into the Mechanical application using the External Data feature. See the Importing Data from Mechanical section of the Mechanical User’s Guide for the steps to import the file.

import mech_dpf
import Ans.DataProcessing as dpf
import os
mech_dpf.setExtAPI(ExtAPI)
dataSource = dpf.DataSources(Model.Analyses[0].ResultFileName)
mesh_provider = dpf.operators.mesh.mesh_provider()
mesh_provider.inputs.data_sources.Connect(dataSource)
mesh = mesh_provider.outputs.mesh.GetData()

time_freq_provider = dpf.operators.metadata.time_freq_provider()
time_freq_provider.inputs.data_sources.Connect(dataSource)
time_freq_support = time_freq_provider.outputs.time_freq_support.GetData()

cummulative_sets = []
for i in range(time_freq_support.NumberSets):
    cummulative_sets.append(i+1)

result_info_provider = dpf.operators.metadata.result_info_provider() # operator instantiation
result_info_provider.inputs.data_sources.Connect(dataSource)
result_info = result_info_provider.outputs.result_info.GetData()

v = dpf.operators.result.velocity()
v.inputs.data_sources.Connect(dataSource)
v.inputs.time_scoping.Connect(cummulative_sets)
velcity_data = v.outputs.fields_container.GetData()

h5dpf_location = ExtAPI.DataModel.AnalysisByName(ExtAPI.DataModel.AnalysisNames[0]).WorkingDir + 'file.h5'
if os.path.exists(h5dpf_location):
    os.remove(h5dpf_location)
hdf5_generator = dpf.operators.serialization.hdf5dpf_generate_result_file()
hdf5_generator.inputs.filename.Connect(h5dpf_location)
hdf5_generator.inputs.mesh_provider_out.Connect(mesh)
hdf5_generator.Connect(2, time_freq_support)
hdf5_generator.inputs.ansys_unit_system_id.Connect(result_info.AnsysUnitSystemInt)
hdf5_generator.Connect(4, "V")
hdf5_generator.Connect(5, velcity_data)
hdf5_generator.Connect(-1, False)
#hdf5_generator.Connect(-2, 1) #compression
hdf5 = hdf5_generator.outputs.data_sources.GetData()