DPF Model#
The DPF model provides the starting point for opening a result file. From here you can connect various operators and display results and data.
To create a Model
instance, import dpf
and load a file. The
path provided must be an absolute path or a path relative to the DPF
server.
from ansys.dpf import core as dpf
from ansys.dpf.core import examples
path = examples.simple_bar
model = dpf.Model(path)
To understand what is available in the result file, you can print the model (or any other instance).
print(model)
Out:
DPF Model
------------------------------
Static analysis
Unit system: Metric (m, kg, N, s, V, A)
Physics Type: Mecanic
Available results:
- displacement: Nodal Displacement
- element_nodal_forces: ElementalNodal Element nodal Forces
- 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
- structural_temperature: ElementalNodal Temperature
------------------------------
DPF Meshed Region:
3751 nodes
3000 elements
Unit: m
With solid (3D) elements
------------------------------
DPF Time/Freq Support:
Number of sets: 1
Cumulative Time (s) LoadStep Substep
1 1.000000 1 1
For an example using the model, see Basic DPF-Core Usage.
For a description of the Model object, see the APIs section Model.
Model Metadata#
You can use model metadata to access all information about an analysis:
Type of analysis
Time or frequency descriptions
Mesh
Available results
For example, you can get the analysis type:
model.metadata.result_info.analysis_type
Out:
'static'
You can get information about the mesh:
>>> model.metadata.meshed_region.nodes.n_nodes
>>> model.metadata.meshed_region.elements.n_elements
>>> print(model.metadata.meshed_region.elements.element_by_id(1))
Out:
3751
3000
DPF Element 1
Index: 1400
Nodes: 8
Type: element_types.Hex8
Shape: Solid
You can get time sets:
time_freq_support = model.metadata.time_freq_support
print(time_freq_support.time_frequencies.data)
Out:
[1.]
For a description of the Metadata object, see the APIs section Model.
Model Results#
The model contains the results
attribute, which you can use to
create operators to access certain results.
To view available results, print them:
print(model.results)
Out:
Static analysis
Unit system: Metric (m, kg, N, s, V, A)
Physics Type: Mecanic
Available results:
- displacement: Nodal Displacement
- element_nodal_forces: ElementalNodal Element nodal Forces
- 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
- structural_temperature: ElementalNodal Temperature
- Model.results
Available results of the model.
Organizes the results from DPF into accessible methods. All the available results are dynamically created depending on the model’s class:ansys.dpf.core.result_info.
- Returns
results – Available results of the model if possible, else returns common results.
- Return type
- all types of results
Result provider helper wrapping all types of provider available for a given result file.
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.electric_therm) >>> v = model.results.electric_potential >>> dissip = model.results.thermal_dissipation_energy
- Type
Examples
Extract the result object from a model.
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.simple_bar) >>> results = model.results # printable object
Access the displacement at all times.
>>> from ansys.dpf.core import Model >>> from ansys.dpf.core import examples >>> transient = examples.download_transient_result() >>> model = Model(transient) >>> displacements = model.results.displacement.on_all_time_freqs.eval()
Choosing the time, frequencies, or spatial subset on which to get a given result
is straightforward with the results
attribute:
disp_result = model.results.displacement
disp_at_all_times_on_node_1 = disp_result.on_all_time_freqs.on_mesh_scoping([1])
For an example using the Result API, see Choose a Time Scoping for a Transient Analysis.
For a description of the `Model object, see the APIs section Results.