Troubleshooting#

This page explains how to resolve the most common issues encountered when using PyDPF-Core. It also includes suggestions for improving scripts.

Server issues#

Start the DPF server#

When using PyDPF-Core to start the server with the start_local_server() method or when starting the server manually with the Ans.Dpf.Grpc.sh or Ans.Dpf.Grpc.bat file, a Python error might occur: TimeoutError: Server did not start in 10 seconds. This kind of error might mean that the server or its dependencies were not found. Ensure that the AWP_ROOT{VER} environment variable is set when using DPF from an Ansys unified install, where VER is the three-digit numeric format for the version, such as 221 or 222.

Connect to the DPF server#

If an issue appears while using Py-DPF code to connect to an initialized server with the connect_to_server() method, ensure that the IP address and port number that are set as parameters are applicable for a DPF server started on the network.

Import the pydpf-core package#

Assume that you are importing the PyDPF-Core package:

from ansys.dpf import core as dpf

If an error lists missing modules, see Compatibility. For ``PyDPF-Core``<0.10.0, the ansys.grpc.dpf module should always be synchronized with its server version.

Model issues#

Invalid UTF-8 error#

Assume that you are trying to access the ansys.dpf.core.model.Model class. The following error might be raised:

[libprotobuf ERROR C:\.conan\897de8\1\protobuf\src\google\protobuf\wire_format_lite.cc:578]
String field 'ansys.api.dpf.result_info.v0.ResultInfoResponse.user_name' contains invalid UTF-8
data when serializing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.

Invalid UTF-8 data is preventing the model from being accessed. To avoid this error, ensure that you are using PyDPF-Core version 0.3.2 or later. While a warning is still raised, the invalid UTF-8 data should not prevent you from using the ansys.dpf.core.model.Model class.

Then, with result files reproducing this issue, you can prevent the warning from being raised with:

from ansys.dpf import core as dpf
dpf.settings.set_dynamic_available_results_capability(False)

However, the preceding code disables the reading and generation of the available results for the model. Any static results that are available for the model are used instead.

Plotting issues#

When trying to plot a result with DPF, the following error might be raised:

ModuleNotFoundError: No module named 'pyvista'

In that case, simply install PyVista <https://pyvista.org/>`_ with this command:

pip install pyvista

Another option is to install PyVista along with PyDPF-Core. For more information, see Install with plotting capabilities

Performance issues#

Get and set a field’s data#

Using the Field class to get or set field data entity by entity can be slow if the field’s size is large or if the server is far from the Python client. To improve performance, use the as_local_field() method in a context manager to bring the field data from the server to your local machine. For an example, see Bring a field’s data locally to improve performance.

Autocompletion in notebooks#

Autocompletion in Jupyter notebook can sometimes be slow for large models. The interpreter might evaluate the getters of some properties when the tab key is pressed. To disable this capability, use the disable_interpreter_properties_evaluation() method:

from ansys.dpf import core as dpf
dpf.settings.disable_interpreter_properties_evaluation()