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 undestand 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

Results, CommonResults

all types of results

Result provider helper wrapping all types of provider available for a given result file.

Examples

Create a stress result from the model and choose its time and mesh scopings.

>>> from ansys.dpf import core as dpf
>>> from ansys.dpf.core import examples
>>> model = dpf.Model(examples.electric_therm)
>>> v = model.results.electric_potential
>>> rf = model.results.reaction_force
>>> dissip = model.results.thermal_dissipation_energy
Type

Result

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.

API Reference

For more information, see Model or Results.