.. _user_guide_xmlfiles:
=============
DPF XML files
=============
This page describes the ``DataProcessingCore.xml`` and ``Plugin.xml`` XML files
provided with DPF. These XML files work on both Linux and Windows
because they contain content for both of these operating systems.
These XML files must be located alongside the plugin DLL files on Windows or
SO files on Linux.
``DataProcessingCore.xml`` file
-------------------------------
The ``DataProcessingCore.xml`` file provides for configuring the plugins to load.
Here is the content of this XML file:
.. code-block:: html
/usr/local/ansys_inc/v222
E:\ANSYSDev\ANSYS Inc\v222
libAns.Dpf.Native.so
LoadOperators
false
$(THIS_XML_FOLDER)\Ans.Dpf.NativeD.dll
LoadOperators
Ans.Dpf.Native.dll
LoadOperators
$(THIS_XML_FOLDER)\Ans.Dpf.FEMUtils.dll
LoadOperators
true
In this XML file, some of the elements are optional, and many of the
elements have Linux-specific versus Windows-specific child elements.
.. caution::
To ensure that DPF operates correctly, modify this XML file
carefully. All paths specified in this XML file must adhere to the path
conventions of the respective operating system. For Linux paths, use
forward slashes (/). For Windows paths, use backward slashes (\\).
```` element
~~~~~~~~~~~~~~~~~~~~~~~~~
The ```` element is used only for defining the root folder
of the Ansys software. Its child ```` elements can
define the root folders for Ansys software installed on Linux and on Windows.
The path for the root folder ends with Ansys version information, ``v###``,
where ``###`` is the three-digit format for the installed version. For example,
on Windows, the path for the root folder for Ansys 2022 R2 likely ends with
``\ANSYS Inc\v222``.
The ``ANSYS_ROOT_FOLDER`` element defines a variable
that can be used in the other XML files. For example, you might use it to find required
third-party software.
If the ``ANSYS_ROOT_FOLDER`` element is not defined in the ``DataProcessing.xml``
file, an attempt is made to
find the root folder relative to the ``DataProcessingCore`` DLL or SO file. This
works only if the ``DataProcessingCore.xml`` file is located in its default
location.
If the ``ANSYS_ROOT_FOLDER`` element is still not defined, the root folder is
determined by reading the ``AWP_ROOT###`` environment variable specific to your
installed Ansys version. For example, if you are using Ansys 2022 R2, it looks
for the ``AWP_ROOT222`` environment variable to find the root folder.
ANSYS_ROOT_FOLDER is not an environment variable and cannot be set accordingly.
```` element
~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ```` element defines the plugins to load. The ```` or
```` child element contains the operating system for the plugins defined
in the child elements.
The ```` element defines DPF native operators. The further subdividing of
plugins into ```` or ```` elements is optional. The ````
element, for example, would only be used with a debug version of the
``DataProcessingCore`` DLL or SO file.
The element names for plugins, such as ```` and ````, are used as
**keys** when loading plugins. Each plugin must have a unique key.
The element for each plug-in has child elements:
- ````: Contains the location of the plugin to load. The normal mechanism
that the operating system uses to find a DLL or SO file is used. The DLL
file could be in the Windows path, or the SO file could be in the Linux
``LD_LIBRARY_PATH`` system environment variable.
- ````: Contains how the plugin is loaded. Only ``LoadOperators`` is
supported. It loads all operators within the plugin.
- ````: Contains a ``true`` or ``false`` value that indicates
whether to use the ``PLUGIN.XML`` file defined in the next element to load
the plugin. This element is optional. The default value is ``true``.
To provide an absolute path to a plugin, you can use these predefined variables:
- ``ANSYS_ROOT_FOLDER``, which is described in the preceding section.
- ``THIS_XML_FOLDER``, which defines the location of where the current XML file
is located. In this case, it defines the location of the ``DataProcessingCore.xml``
file.
You can also use any other environment variable. For example, if you always have your
plugins in a folder defined by a ``MY_PLUGINS`` environment variable, you could use
it in the XML file.
You specify environment variables in the same way as the ``ANSYS_ROOT_FOLDER``
or ``THIS_XML_FOLDER`` variable. They are defined as ``$(…)``.
In the Ansys installation, the default ``DataProcessingCore.xml`` file is located
next to the ``DataProcessingCore`` DLL or SO file. If you want to use a different
one, you can initialize DPF using a specific ``DataProcessingCore.xml`` file.
``Plugin.xml`` file
-------------------
The ``Plugin.xml`` file allows you to configure a specific environment for loading a
plugin.
Here is the content of this XML file:
.. code-block:: html
$(ANSYS_ROOT_FOLDER)/aisol/dll/linx64:$(ANSYS_ROOT_FOLDER)/aisol/lib/linx64:$(ANSYS_ROOT_FOLDER)/tp/IntelMKL/2020.0.166/linx64/lib/intel64:$(LD_LIBRARY_PATH)
c:\temp
$(ANSYS_ROOT_FOLDER)\aisol\bin\winx64;$(ANSYS_ROOT_FOLDER)\tp\IntelMKL\2020.0.166\winx64;$(ANSYS_ROOT_FOLDER)\tp\IntelCompiler\2019.5.281\winx64;$(MY_FOLDER);$(PATH)
The ```` element within this XML file is defined the same way
as the ``DataProcessingCore.xml`` file.
Any environment variables that are defined or used have the values at the time
that they are defined or used. You can effectively define a variable multiple times
and keep appending it.