    

 ## On this page

  

 

 # DVS::IClient Class Reference

 Last update: 16.07.2025 

API for solvers to use to send data to EnSight servers. [More...](#details)

`#include <<a class="el" href="dvs__client__interface_8h_source.html">dvs_client_interface.h</a>>`

## <a id="pub-methods" name="pub-methods"></a>Public Member Functions

<a id="a64eedec7e83a7e05ae9b3ca96c9f79b6" name="a64eedec7e83a7e05ae9b3ca96c9f79b6"></a> **IClient** ()=default default   
 <a id="ab54b2523137180da43fa39b2e597eb0d" name="ab54b2523137180da43fa39b2e597eb0d"></a>virtual **~IClient** ()=default default   
 <a id="a3833003a214593bcf229917fe9f677d0" name="a3833003a214593bcf229917fe9f677d0"></a> **IClient** ([IClient](class_d_v_s_1_1_i_client.html) &amp;&amp;)=default default   
 <a id="aa3a67114d90c513c43bd76c461ea6df3" name="aa3a67114d90c513c43bd76c461ea6df3"></a>[IClient](class_d_v_s_1_1_i_client.html) &amp; **operator=** ([IClient](class_d_v_s_1_1_i_client.html) &amp;&amp;)=default default   
 <a id="a7cf4e8dfda9a6d9de1ab8ca4ea64961f" name="a7cf4e8dfda9a6d9de1ab8ca4ea64961f"></a> **IClient** (const [IClient](class_d_v_s_1_1_i_client.html) &amp;)=default support copying   
 <a id="a9250ff94c04d2465a17ac1e637350ec7" name="a9250ff94c04d2465a17ac1e637350ec7"></a>[IClient](class_d_v_s_1_1_i_client.html) &amp; **operator=** (const [IClient](class_d_v_s_1_1_i_client.html) &amp;)=default default   
 virtual void [set\_logger](#a024475b03496bc310e211632d153517d) ([ILogger](class_d_v_s_1_1_i_logger.html) \*logger)=0 Set the logger interface to use.   
 virtual const char \* [get\_version](#aa5d98105d78c61e4e0c4043e28174fe1) ()=0 Get the version of the client API.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [begin\_init](#aff782ecd341fddd87a22a15107efeb3b) (const char \*dataset\_name, uint32\_t current\_rank, uint32\_t total\_ranks, uint32\_t num\_chunks)=0 Begins initialization for this rank.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [set\_unit\_system](#a284f922fec402e03365c7873502d1fde) (const char \*system)=0 Set the unit system we are using for this session (optional)   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [add\_metadata](#ab4144e59bfdcf9c095c6510c4298d160) (const char \*const keys\[\], const char \*const vals\[\], uint32\_t num\_metadata\_pairs)=0 Add metadata for the current dataset.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [add\_part\_info](#a5e9ee6af237e76a6e270d99ec8cd4388) (const [dvs\_part\_info](structdvs__part__info.html) \*part\_info, uint32\_t num\_parts)=0 Add part information for session.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [add\_var\_info](#a82f841d7f6f33071bf8c709623ca215d) (const [dvs\_var\_info](structdvs__var__info.html) \*var\_info, uint32\_t num\_vars)=0 Add variable information for session.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [add\_plot\_info](#a1bdb7ca9cf25c63e533f47fe26132af6) (const [dvs\_plot\_info](structdvs__plot__info.html) \*plot\_info, uint32\_t num\_plots)=0 Add plot information for session.   
 virtual uint32\_t [get\_num\_parts](#af609f80df51a124a137c6476b7d3c958) () const =0 Get the number of [dvs\_part\_info](structdvs__part__info.html "Struct holding information for a part's definition.") objects this client has stored.   
 virtual uint32\_t [get\_num\_vars](#a85adbf75ade9d0ffc6d258c34dae1eb3) () const =0 Get the number of [dvs\_var\_info](structdvs__var__info.html "Struct holding information for a variable's definiton.") objects this client has stored.   
 virtual uint32\_t [get\_num\_plots](#a80325aaa83f2d2f27f1aa8e5f167c4c6) () const =0 Get the number of [dvs\_plot\_info](structdvs__plot__info.html "Struct holding information for a plot's definition.") objects this client has stored.   
 virtual const [dvs\_part\_info](structdvs__part__info.html) \* [get\_part\_info](#a9a1e02d1e1764788a58db0f0ccce4cd4) (uint32\_t index) const =0 Get the [dvs\_part\_info](structdvs__part__info.html "Struct holding information for a part's definition.") object for a specific index.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [get\_part\_id](#a4e3e6fbf66582927a17b54c9fba3464c) (const std::string &amp;name, uint32\_t &amp;id) const =0 Get the ID being used by the client for the named part.   
 virtual const [dvs\_var\_info](structdvs__var__info.html) \* [get\_var\_info](#afb50715fd6d0ed4aa2df49b8cd9d93bb) (uint32\_t index) const =0 Get the [dvs\_var\_info](structdvs__var__info.html "Struct holding information for a variable's definiton.") object for a specific index.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [get\_var\_id](#ac4a86f03c9eb353cb1d92e326945cb9c) (const std::string &amp;name, uint32\_t &amp;id) const =0 Get the ID being used by the client for the named var.   
 virtual const [dvs\_plot\_info](structdvs__plot__info.html) \* [get\_plot\_info](#a7753d7dfb238856722825403a5cb6d32) (uint32\_t index) const =0 Get the [dvs\_plot\_info](structdvs__plot__info.html "Struct holding information for a plot's definition.") object for a specific index.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [get\_plot\_id](#a5dc7f1a7c19c068b04a384c1891e435f) (const std::string &amp;name, uint32\_t &amp;id) const =0 Get the ID being used by the client for the named plot.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [end\_init](#aaf1641a1afbf8bb6257940be28dd94b2) ()=0 Finish initialization for this rank.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [begin\_update](#abd1cbbd2007346ad616dc74eab9d0553) (uint32\_t update\_num, uint32\_t rank, uint32\_t chunk, float time)=0 Method to begin an update.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_copy\_previous\_part](#a3de23c0dcfc5c614f3047ff6284167d3) (uint32\_t part\_id, const char \*options)=0 Copy data from the previous timestep before applying other data.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_part\_rigid\_body\_motion](#a119a2ae01cb95e70b82cb3d4aa9550f4) (uint32\_t part\_id, const std::vector&lt; float &gt; &amp;quaternion, const std::vector&lt; float &gt; &amp;displacement, const std::vector&lt; float &gt; &amp;cg\_offset)=0 Update the rigid body motion for a part.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [convert\_rotation\_to\_quaternion](#a70720b911b5f26697cdbe12b518e485c) (std::array&lt; float, 3 &gt; axis\_start, std::array&lt; float, 3 &gt; axis\_end, float relative\_rotation\_angle, std::array&lt; float, 4 &gt; &amp;quaternion)=0 Utility API to convert a rigid body rotation described by the rotation axis and the angle of rotation to its quaternion representation.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_nodes](#a87ab36c2f16d093c0beaba60da2cd661) (uint32\_t part\_id, const float \*x, const float \*y, const float \*z, uint32\_t num\_values)=0 Update nodes for a specific part.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_nodes\_structured](#a1588c437020e0ba5702ec48460a792a9) (uint32\_t part\_id, const uint32\_t global\_ijk\_max\[3\], const uint32\_t local\_ijk\_min\[3\], const uint32\_t local\_ijk\_max\[3\], const float origin\[3\], const float dir\_i\[3\], const float dir\_j\[3\], const float dir\_k\[3\], const float \*i\_vals, const float \*j\_vals, const float \*k\_vals)=0 Update the nodes for a parallelepiped structured part.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_nodes\_structured](#aee6c79370e423a70f4b73c08794cdf9b) (uint32\_t part\_id, const uint32\_t global\_ijk\_max\[3\], const uint32\_t local\_ijk\_min\[3\], const uint32\_t local\_ijk\_max\[3\], const float \*x\_vals, const float \*y\_vals, const float \*z\_vals)=0 Update the nodes for a curvilinear structured part.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_elements](#a41aa2ad12fbfa456f3ec8e48530ea6f6) (uint32\_t part\_id, [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) type, const uint32\_t \*indices, uint32\_t num\_indices)=0 Update elements for a specific part and element type.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_elements\_polygon](#ac6b3990562f507eda4abedf53e021647) (uint32\_t part\_id, [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) type, const uint32\_t \*nodes\_per\_polygon, uint32\_t nodes\_per\_polygon\_size, const uint32\_t \*indices, uint32\_t indices\_size)=0 Update N-SIDED elements.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_elements\_polyhedral](#a7a9ccf04ed8502d23913d8eef21607ec) (uint32\_t part\_id, [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) type, const uint32\_t \*faces\_per\_element, uint32\_t faces\_per\_element\_size, const uint32\_t \*nodes\_per\_face, uint32\_t nodes\_per\_face\_size, const uint32\_t \*indices, uint32\_t indices\_size)=0 Update N-FACED Elements.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_case](#a8f2e7174f9e89ef5285043dd9357f9b0) ([dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, const float \*values, uint32\_t num\_values)=0 Update case variable.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_part](#ab18cc3827eda737ea73c31aa7fe6ef68) ([dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, uint32\_t part\_id, const float \*values, uint32\_t num\_values)=0 Update part vector variable.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_element](#aec8ed14b290237049976f68cb81b200f) ([dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) elem\_type, [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, uint32\_t part\_id, const float \*values, uint32\_t num\_values)=0 Update elemental scalar variable values.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_element](#a722ee94dc27c54a0f563229d4677ac3f) ([dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) elem\_type, [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, uint32\_t part\_id, const int64\_t \*values, uint32\_t num\_values)=0 Update elemental scalar 64bit variable values \*.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_node](#ae67a2884dd8f68f4757d8d7fac3828d3) ([dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, uint32\_t part\_id, const float \*values, uint32\_t num\_values)=0 Update nodal variable values.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_node](#ae1eb49e0bf598055279b8ebbbc1815e6) ([dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, uint32\_t part\_id, const int64\_t \*values, uint32\_t num\_values)=0 Update nodal variable values Extend support to handle 64 bit values   
  
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_field](#a3834c25cf5ed35a17f08ecefa4b73417) ([dvs\_var\_location](dynamic__visualization__store__enums_8h.html#af4f0eba512eff253854b44d7ce078491) location, [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) elem\_type, [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, uint32\_t part\_id, const float \*values, uint32\_t num\_values)=0 Update var field values (nodal or elemental)   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_var\_field](#a89c8b5cf33a733071bcc6b4bc35615b2) ([dvs\_var\_location](dynamic__visualization__store__enums_8h.html#af4f0eba512eff253854b44d7ce078491) location, [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) elem\_type, [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) var\_type, uint32\_t var\_id, uint32\_t part\_id, const int64\_t \*values, uint32\_t num\_values)=0 Update var field values (nodal or elemental) Extend support to handle 64 bit integer variable values.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [update\_plot](#afcf7811f22d58bd328bed415116a4c41) (uint32\_t plot\_id, const float \*x\_values, const float \*y\_values, uint32\_t num\_values)=0 Update plot data for plot.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [end\_update](#a6396cc4ae967ad5f0da8e234429a97cd) ()=0 Call to end the update for this timestep/rank/chunk.   
 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) [delete\_item](#a5e8f192f5c683a8265dd94020506a0aa) (uint32\_t update\_num, uint32\_t rank, const char \*filter)=0 Delete an item.   
 <a id="details" name="details"></a>## Detailed Description

API for solvers to use to send data to EnSight servers.

This interface class wraps the client type and other functionality such as data deduplication so the user doesn't need to worry about it. We can add functionality to this without needing solver code to be modified. This will also hide Ensight sessions potentially being taken down and brought up dynamically.

Definition at line [80](dvs__client__interface_8h_source.html#l00080) of file [dvs\_client\_interface.h](dvs__client__interface_8h_source.html).



## Member Function Documentation

<a id="ab4144e59bfdcf9c095c6510c4298d160" name="ab4144e59bfdcf9c095c6510c4298d160"></a>## [◆ ](#ab4144e59bfdcf9c095c6510c4298d160)add\_metadata()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::add\_metadata  ( const char \*const *keys*\[\],    const char \*const *vals*\[\],    uint32\_t *num\_metadata\_pairs* )  pure virtual 

Add metadata for the current dataset.

Errors:

- DVS\_NONE: Success
- DVS\_PARAM\_NULL: Method called with NULL params or num\_metadata\_pairs == 0
- DVS\_CLIENT\_INVALID\_TRANSPORT: Internal error, should not happen
- DVS\_TRANSPORT\_NULL\_INVALID\_SERVER: Internal error, should not happen
- DVS\_VERSION\_MISMATCH: Client version out of date with server version, update server and client to match
- DVS\_VERSION\_UNKNOWN: Unable to determine server version, update the server to match the client
- DVS\_TRANSPORT\_SERVICE\_FAILURE: Normally caused by server call retry time out or invalid secret key

Parameters \[in\]keysstring array of UTF-8 Compatible string keys, each string should be null terminated \[in\]valsstring array of UTF-8 Compatible string values, each string should be null terminated \[in\]num\_metadata\_pairsnumber of key/value pairs in the arrays Returnsdvs\_ret DVS\_NONE on success, otherwise see method description 



<a id="a5e9ee6af237e76a6e270d99ec8cd4388" name="a5e9ee6af237e76a6e270d99ec8cd4388"></a>## [◆ ](#a5e9ee6af237e76a6e270d99ec8cd4388)add\_part\_info()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::add\_part\_info  ( const [dvs\_part\_info](structdvs__part__info.html) \* *part\_info*,    uint32\_t *num\_parts* )  pure virtual 

Add part information for session.

NOTE: These cannot be changed once [end\_init()](#aaf1641a1afbf8bb6257940be28dd94b2 "Finish initialization for this rank.") is called.

Parameters \[in\]part\_infoarray of global parts across entire simulaton num\_partsnumber of part info objects in part\_info Returnsdvs\_ret TODO 



<a id="a1bdb7ca9cf25c63e533f47fe26132af6" name="a1bdb7ca9cf25c63e533f47fe26132af6"></a>## [◆ ](#a1bdb7ca9cf25c63e533f47fe26132af6)add\_plot\_info()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::add\_plot\_info  ( const [dvs\_plot\_info](structdvs__plot__info.html) \* *plot\_info*,    uint32\_t *num\_plots* )  pure virtual 

Add plot information for session.

NOTE: These cannot be changed once [end\_init()](#aaf1641a1afbf8bb6257940be28dd94b2 "Finish initialization for this rank.") is called.

Parameters \[in\]plot\_infoarray of global plot information across entire simulation num\_plotsnumber of plot\_info objects in plot\_info Returnsdvs\_ret TODO 



<a id="a82f841d7f6f33071bf8c709623ca215d" name="a82f841d7f6f33071bf8c709623ca215d"></a>## [◆ ](#a82f841d7f6f33071bf8c709623ca215d)add\_var\_info()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::add\_var\_info  ( const [dvs\_var\_info](structdvs__var__info.html) \* *var\_info*,    uint32\_t *num\_vars* )  pure virtual 

Add variable information for session.

NOTE: These cannot be changed once [end\_init()](#aaf1641a1afbf8bb6257940be28dd94b2 "Finish initialization for this rank.") is called.

Parameters \[in\]var\_infoarray of global variable information across entire simulation num\_varsnumber of var info objects in var\_info Returnsdvs\_ret TODO 



<a id="aff782ecd341fddd87a22a15107efeb3b" name="aff782ecd341fddd87a22a15107efeb3b"></a>## [◆ ](#aff782ecd341fddd87a22a15107efeb3b)begin\_init()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::begin\_init  ( const char \* *dataset\_name*,    uint32\_t *current\_rank*,    uint32\_t *total\_ranks*,    uint32\_t *num\_chunks* )  pure virtual 

Begins initialization for this rank.

Parameters dataset\_namename for dataset current\_rankthe rank we are sending init info for (zero based) total\_ranksthe total number of ranks being used across solver nodes num\_chunksthe number of chunks being used for this rank (usually 1) Returnsdvs\_ret TODO 



<a id="abd1cbbd2007346ad616dc74eab9d0553" name="abd1cbbd2007346ad616dc74eab9d0553"></a>## [◆ ](#abd1cbbd2007346ad616dc74eab9d0553)begin\_update()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::begin\_update  ( uint32\_t *update\_num*,    uint32\_t *rank*,    uint32\_t *chunk*,    float *time* )  pure virtual 

Method to begin an update.

Parameters update\_numupdate number of this update, must be monotonically increasing rankthe rank we are sending an update for (zero based) chunkthe chunk number this update is for (zero based) timetime in seconds this update is for Returnsdvs\_ret TODO 



<a id="a70720b911b5f26697cdbe12b518e485c" name="a70720b911b5f26697cdbe12b518e485c"></a>## [◆ ](#a70720b911b5f26697cdbe12b518e485c)convert\_rotation\_to\_quaternion()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::convert\_rotation\_to\_quaternion  ( std::array&lt; float, 3 &gt; *axis\_start*,    std::array&lt; float, 3 &gt; *axis\_end*,    float *relative\_rotation\_angle*,    std::array&lt; float, 4 &gt; &amp; *quaternion* )  pure virtual 

Utility API to convert a rigid body rotation described by the rotation axis and the angle of rotation to its quaternion representation.

Parameters \[in\]axis\_startan array of floats describing the starting point of the line representing the rotation axis \[in\]axis\_endan array of floats describing the end point of the line representing the rotation axis \[in\]relative\_rotation\_anglethe angle to rotate around the give axis \[out\]quaternionan array of 4 floats to be filled with the quaternion representation of the rotationReturnsDVS\_NONE if the convention was successful 



<a id="a5e8f192f5c683a8265dd94020506a0aa" name="a5e8f192f5c683a8265dd94020506a0aa"></a>## [◆ ](#a5e8f192f5c683a8265dd94020506a0aa)delete\_item()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::delete\_item  ( uint32\_t *update\_num*,    uint32\_t *rank*,    const char \* *filter* )  pure virtual 

Delete an item.

Currently this will only allow for timesteps to be deleted. In the future it can be expanded to all objects via the filter mechanism (see [Query Stanzas](group__group__dvs__filtering.html#dvs_query_stanzas)). Currently this supports the operands of eq, gt, gte, lt, lte. Example: To delete all timesteps &gt;= time 1.1 the filter would be "/timestep.time/gte/1.1//" .

It also currently only supports one statement so /timestep.time/gt/1.1//and/timestep.time/lt/2.1// is not valid as of version 1.1.0.

Note: The update number should be monotonically increasing with the begin\_update calls

Parameters update\_numupdate number of this update, must be monotonically increasing rankrank making this call filterfilter for the item(s) to delete see detailed description for more info Returnsdvs\_ret TODO 



<a id="aaf1641a1afbf8bb6257940be28dd94b2" name="aaf1641a1afbf8bb6257940be28dd94b2"></a>## [◆ ](#aaf1641a1afbf8bb6257940be28dd94b2)end\_init()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::end\_init  ( )   pure virtual 

Finish initialization for this rank.

This must be called to let server know initialization for this rank is complete

Returnsdvs\_ret TODO 



<a id="a6396cc4ae967ad5f0da8e234429a97cd" name="a6396cc4ae967ad5f0da8e234429a97cd"></a>## [◆ ](#a6396cc4ae967ad5f0da8e234429a97cd)end\_update()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::end\_update  ( )   pure virtual 

Call to end the update for this timestep/rank/chunk.

Returnsdvs\_ret TODO 



<a id="af609f80df51a124a137c6476b7d3c958" name="af609f80df51a124a137c6476b7d3c958"></a>## [◆ ](#af609f80df51a124a137c6476b7d3c958)get\_num\_parts()

 virtual uint32\_t DVS::IClient::get\_num\_parts  ( )  const  pure virtual 

Get the number of [dvs\_part\_info](structdvs__part__info.html "Struct holding information for a part's definition.") objects this client has stored.

Note: This gets the number of part info objects this client has. It does not query the server for the information.

Returnsuint32\_t number of [dvs\_part\_info](structdvs__part__info.html "Struct holding information for a part's definition.") objects 



<a id="a80325aaa83f2d2f27f1aa8e5f167c4c6" name="a80325aaa83f2d2f27f1aa8e5f167c4c6"></a>## [◆ ](#a80325aaa83f2d2f27f1aa8e5f167c4c6)get\_num\_plots()

 virtual uint32\_t DVS::IClient::get\_num\_plots  ( )  const  pure virtual 

Get the number of [dvs\_plot\_info](structdvs__plot__info.html "Struct holding information for a plot's definition.") objects this client has stored.

Note: This gets the number of plot info objects this client has. It does not query the server for the information.

Returnsuint32\_t number of [dvs\_plot\_info](structdvs__plot__info.html "Struct holding information for a plot's definition.") objects 



<a id="a85adbf75ade9d0ffc6d258c34dae1eb3" name="a85adbf75ade9d0ffc6d258c34dae1eb3"></a>## [◆ ](#a85adbf75ade9d0ffc6d258c34dae1eb3)get\_num\_vars()

 virtual uint32\_t DVS::IClient::get\_num\_vars  ( )  const  pure virtual 

Get the number of [dvs\_var\_info](structdvs__var__info.html "Struct holding information for a variable's definiton.") objects this client has stored.

Note: This gets the number of part info objects this client has. It does not query the server for the information.

Returnsuint32\_t number of [dvs\_var\_info](structdvs__var__info.html "Struct holding information for a variable's definiton.") objects 



<a id="a4e3e6fbf66582927a17b54c9fba3464c" name="a4e3e6fbf66582927a17b54c9fba3464c"></a>## [◆ ](#a4e3e6fbf66582927a17b54c9fba3464c)get\_part\_id()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::get\_part\_id  ( const std::string &amp; *name*,    uint32\_t &amp; *id* ) const  pure virtual 

Get the ID being used by the client for the named part.

Errors: DVS\_NONE: Success DVS\_INVALID\_NAME: No object with name found DVS\_ID\_NO\_VALID\_SESSION: No session found matching session\_id DVS\_ID\_INVALID\_TYPE: Session id is of wrong type (possibly server) DVS\_PARAM\_NULL: Null param passed in

Parameters \[in\]namethe name of the part to search for \[out\]idUINT32\_MAX on failure, otherwise the id of the part for this client Returnsdvs\_ret DVS\_NONE on success, else see method description 



<a id="a9a1e02d1e1764788a58db0f0ccce4cd4" name="a9a1e02d1e1764788a58db0f0ccce4cd4"></a>## [◆ ](#a9a1e02d1e1764788a58db0f0ccce4cd4)get\_part\_info()

 virtual const [dvs\_part\_info](structdvs__part__info.html) \* DVS::IClient::get\_part\_info  ( uint32\_t *index*)  const  pure virtual 

Get the [dvs\_part\_info](structdvs__part__info.html "Struct holding information for a part's definition.") object for a specific index.

Note: This only gets the [dvs\_part\_info](structdvs__part__info.html "Struct holding information for a part's definition.") objects from the current client it does not query the server for the information

Parameters indexindex of the [dvs\_part\_info](structdvs__part__info.html "Struct holding information for a part's definition.") object to retrieve Returnsconst dvs\_part\_info\* found object, nullptr if not found 



<a id="a5dc7f1a7c19c068b04a384c1891e435f" name="a5dc7f1a7c19c068b04a384c1891e435f"></a>## [◆ ](#a5dc7f1a7c19c068b04a384c1891e435f)get\_plot\_id()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::get\_plot\_id  ( const std::string &amp; *name*,    uint32\_t &amp; *id* ) const  pure virtual 

Get the ID being used by the client for the named plot.

Errors: DVS\_NONE: Success DVS\_INVALID\_NAME: No object with name found DVS\_ID\_NO\_VALID\_SESSION: No session found matching session\_id DVS\_ID\_INVALID\_TYPE: Session id is of wrong type (possibly server) DVS\_PARAM\_NULL: Null param passed in

Parameters \[in\]namethe name of the plot to search for \[out\]idUINT32\_MAX on failure, otherwise the id of the plot for this client Returnsdvs\_ret DVS\_NONE on success, else see method description 



<a id="a7753d7dfb238856722825403a5cb6d32" name="a7753d7dfb238856722825403a5cb6d32"></a>## [◆ ](#a7753d7dfb238856722825403a5cb6d32)get\_plot\_info()

 virtual const [dvs\_plot\_info](structdvs__plot__info.html) \* DVS::IClient::get\_plot\_info  ( uint32\_t *index*)  const  pure virtual 

Get the [dvs\_plot\_info](structdvs__plot__info.html "Struct holding information for a plot's definition.") object for a specific index.

Note: This only gets the [dvs\_plot\_info](structdvs__plot__info.html "Struct holding information for a plot's definition.") objects from the current client it does not query the server for the information

Parameters indexindex of the [dvs\_plot\_info](structdvs__plot__info.html "Struct holding information for a plot's definition.") object to retrieve Returnsconst dvs\_plot\_info\* found object, nullptr if not found 



<a id="ac4a86f03c9eb353cb1d92e326945cb9c" name="ac4a86f03c9eb353cb1d92e326945cb9c"></a>## [◆ ](#ac4a86f03c9eb353cb1d92e326945cb9c)get\_var\_id()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::get\_var\_id  ( const std::string &amp; *name*,    uint32\_t &amp; *id* ) const  pure virtual 

Get the ID being used by the client for the named var.

Errors: DVS\_NONE: Success DVS\_INVALID\_NAME: No object with name found DVS\_ID\_NO\_VALID\_SESSION: No session found matching session\_id DVS\_ID\_INVALID\_TYPE: Session id is of wrong type (possibly server) DVS\_PARAM\_NULL: Null param passed in

Parameters \[in\]namethe name of the var to search for \[out\]idUINT32\_MAX on failure, otherwise the id of the var for this client Returnsdvs\_ret DVS\_NONE on success, else see method description 



<a id="afb50715fd6d0ed4aa2df49b8cd9d93bb" name="afb50715fd6d0ed4aa2df49b8cd9d93bb"></a>## [◆ ](#afb50715fd6d0ed4aa2df49b8cd9d93bb)get\_var\_info()

 virtual const [dvs\_var\_info](structdvs__var__info.html) \* DVS::IClient::get\_var\_info  ( uint32\_t *index*)  const  pure virtual 

Get the [dvs\_var\_info](structdvs__var__info.html "Struct holding information for a variable's definiton.") object for a specific index.

Note: This only gets the [dvs\_var\_info](structdvs__var__info.html "Struct holding information for a variable's definiton.") objects from the current client it does not query the server for the information

Parameters indexindex of the [dvs\_var\_info](structdvs__var__info.html "Struct holding information for a variable's definiton.") object to retrieve Returnsconst dvs\_var\_info\* found object, nullptr if not found 



<a id="aa5d98105d78c61e4e0c4043e28174fe1" name="aa5d98105d78c61e4e0c4043e28174fe1"></a>## [◆ ](#aa5d98105d78c61e4e0c4043e28174fe1)get\_version()

 virtual const char \* DVS::IClient::get\_version  ( )   pure virtual 

Get the version of the client API.

NOTE: The version is of the format X.Y.Z where X=MAJOR, Y = MINOR, and Z = PATCH. Anything other than a change in Z or PATCH is incompatible with another version and needs to be upgraded to the latest library

Returnsconst char\* the semantic version of the API 



<a id="a024475b03496bc310e211632d153517d" name="a024475b03496bc310e211632d153517d"></a>## [◆ ](#a024475b03496bc310e211632d153517d)set\_logger()

 virtual void DVS::IClient::set\_logger  ( [ILogger](class_d_v_s_1_1_i_logger.html) \* *logger*)   pure virtual 

Set the logger interface to use.

Set a logger interface for the client to use. This object will have [DVS::ILogger::release()](class_d_v_s_1_1_i_logger.html#a753d496b0ca488a74e6209f330b13458 "Release the memory of the object.") invoked on it. If release() is not implemented the memory should be destroyed by the caller after the client is destroyed.

Parameters loggerlogger to use, will be released if [DVS::ILogger::release()](class_d_v_s_1_1_i_logger.html#a753d496b0ca488a74e6209f330b13458 "Release the memory of the object.") is implemented 



<a id="a284f922fec402e03365c7873502d1fde" name="a284f922fec402e03365c7873502d1fde"></a>## [◆ ](#a284f922fec402e03365c7873502d1fde)set\_unit\_system()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::set\_unit\_system  ( const char \* *system*)   pure virtual 

Set the unit system we are using for this session (optional)

NOTE: This cannot be changed once [end\_init()](#aaf1641a1afbf8bb6257940be28dd94b2 "Finish initialization for this rank.") is called.

Parameters \[in\]systemunit system to set, see: [https://nexusdemo.ensight.com/docs/python/html/ENS\_UNITSSchema.html](https://nexusdemo.ensight.com/docs/python/html/ENS_UNITSSchema.html) Returnsdvs\_ret TODO 



<a id="a3de23c0dcfc5c614f3047ff6284167d3" name="a3de23c0dcfc5c614f3047ff6284167d3"></a>## [◆ ](#a3de23c0dcfc5c614f3047ff6284167d3)update\_copy\_previous\_part()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_copy\_previous\_part  ( uint32\_t *part\_id*,    const char \* *options* )  pure virtual 

Copy data from the previous timestep before applying other data.

Currently we only support the options of empty string, mesh or mesh.vars empty string and mesh.vars will copy the mesh, connectivity, and nodal/elemental variables. mesh only copies the mesh and connectivity. Note: Currently plots and case/part constant variables will not be copied via this option and must always be sent.

Parameters part\_idthe id of the part we are copying data for, UINT32\_MAX to select all parts optionswhat to copy, see method description Returnsdvs\_ret TODO 



<a id="a41aa2ad12fbfa456f3ec8e48530ea6f6" name="a41aa2ad12fbfa456f3ec8e48530ea6f6"></a>## [◆ ](#a41aa2ad12fbfa456f3ec8e48530ea6f6)update\_elements()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_elements  ( uint32\_t *part\_id*,    [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) *type*,    const uint32\_t \* *indices*,    uint32\_t *num\_indices* )  pure virtual 

Update elements for a specific part and element type.

This will update the elements for a part. The number of indices needed will vary depending on the type and the num\_elements. I.E. if updating triangles with 3 elements the indices array should be of size 9 (3 triangles with 3 indices)

Parameters part\_idunique id of part to update elements for (must match parts added with dvs\_add\_part\_info) typeelement type of elements to update (points, triangles, quads, etc.) indicesnode indices for each element, for ordering info per element type see EnSight's User Manual, section 9.2.3 Supported EnSight Gold Elements num\_indicesthe size of the indices array Returnsret\_val TODO 



<a id="ac6b3990562f507eda4abedf53e021647" name="ac6b3990562f507eda4abedf53e021647"></a>## [◆ ](#ac6b3990562f507eda4abedf53e021647)update\_elements\_polygon()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_elements\_polygon  ( uint32\_t *part\_id*,    [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) *type*,    const uint32\_t \* *nodes\_per\_polygon*,    uint32\_t *nodes\_per\_polygon\_size*,    const uint32\_t \* *indices*,    uint32\_t *indices\_size* )  pure virtual 

Update N-SIDED elements.

This method will send over a list of arbitrarily sized polygons. The nodes\_per\_polygon param is an array containing the size of each polygon. I.E. if sending a quadrangle, and a 25 sided element the nodes\_per\_polygon array might look like \[4, 25\]. The size of the indices array would be 4+25=29 in this example where the first 4 items in the indices array would correspond to the first item in the nodes\_per\_polygon array, the next 25 items in the indices array would correspond to the second item in the nodes\_per\_polygon array

Parameters part\_idunique id of part to update elements for (must match parts added with dvs\_add\_part\_info) typeelement type of elements to update (N\_SIDED\_POLYGON or N\_SIDED\_POLYGON\_GHOST) nodes\_per\_polygonArray containing number of nodes in each element/polygon nodes\_per\_polygon\_sizesize of nodes\_per\_polygon array indicesArray of node indices for the polygons described in nodes\_per\_polygon indices\_sizeSize of indices array Returnsdvs\_ret TODO 



<a id="a7a9ccf04ed8502d23913d8eef21607ec" name="a7a9ccf04ed8502d23913d8eef21607ec"></a>## [◆ ](#a7a9ccf04ed8502d23913d8eef21607ec)update\_elements\_polyhedral()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_elements\_polyhedral  ( uint32\_t *part\_id*,    [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) *type*,    const uint32\_t \* *faces\_per\_element*,    uint32\_t *faces\_per\_element\_size*,    const uint32\_t \* *nodes\_per\_face*,    uint32\_t *nodes\_per\_face\_size*,    const uint32\_t \* *indices*,    uint32\_t *indices\_size* )  pure virtual 

Update N-FACED Elements.

Parameters part\_idunique id of part to update elements for (must match parts added with dvs\_add\_part\_info) typeelement type of elements to update (CONVEX\_POLYHEDRON or CONVEX\_POLYHEDRON\_GHOST) faces\_per\_elementArray of how many faces are in each element faces\_per\_element\_sizesize of faces\_per\_element array nodes\_per\_faceArray of how many nodes each face contains nodes\_per\_face\_sizesize of nodes\_per\_face array indicesNode indices for elements indices\_sizesize of node indices Returnsdvs\_ret TODO 



<a id="a87ab36c2f16d093c0beaba60da2cd661" name="a87ab36c2f16d093c0beaba60da2cd661"></a>## [◆ ](#a87ab36c2f16d093c0beaba60da2cd661)update\_nodes()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_nodes  ( uint32\_t *part\_id*,    const float \* *x*,    const float \* *y*,    const float \* *z*,    uint32\_t *num\_values* )  pure virtual 

Update nodes for a specific part.

Parameters part\_idthe id of part we are updating nodes for \[in\]xarray of x components for nodes \[in\]yarray of y components for nodes \[in\]zarray of z components for nodes num\_valuesnumber of values in individual x/y/z arrays (max nodes in part 2^31) Returnsdvs\_ret TODO 



<a id="aee6c79370e423a70f4b73c08794cdf9b" name="aee6c79370e423a70f4b73c08794cdf9b"></a>## [◆ ](#aee6c79370e423a70f4b73c08794cdf9b)update\_nodes\_structured() \[1/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_nodes\_structured  ( uint32\_t *part\_id*,    const uint32\_t *global\_ijk\_max*\[3\],    const uint32\_t *local\_ijk\_min*\[3\],    const uint32\_t *local\_ijk\_max*\[3\],    const float \* *x\_vals*,    const float \* *y\_vals*,    const float \* *z\_vals* )  pure virtual 

Update the nodes for a curvilinear structured part.

A curvilinear structured part is represented by the global IJK grid across ranks, the local sub-block's IJK rank, and the actual XYZ values for each IJK grid point in the local grid.

Local IJK Dimensions: The min/max represent a local sub-block from the overall global grid. This could be the entire range if not splitting the grid into multiple ranks or a specific slice. For example you could have a 2ix3jx4k grid where it was split across the I dimension. One rank would specify min/max IJK as min:\[0,0,0\], max:\[0,2,3\], the other rank would specify min/max IJK as min:\[1,0,0\], max:\[1,2,3\]. If sending the data all as one rank it would be the full range of: min:\[0,0,0\], max:\[1,2,3\]

IJK Vals: These specify the actual XYZ location for each IJK value in the grid. The order of these should be by the fastest changing dimension being I, the next being J, and the next being K. I.E. for a 2x2x2 grid the x\_vals array would contain the X component for IJK values: \[i0 j0 k0\]\[i1 j0 k0\]\[i0 j1 k0\]\[i1 j1 k0\]\[i0 j0 k1\]\[i1 j0 k1\]\[i0 j1 k1\]\[i1 j1 k1\].

**Note:** iblanking information is sent via [update\_var\_node()](#ae67a2884dd8f68f4757d8d7fac3828d3 "Update nodal variable values.") using [SCALAR](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0a7efbb6cac96595e63e8fa171bde1eb68 "Scalar.") as the var type and [DVS\_STRUCTURED\_IBLANKED\_NODES](dynamic__visualization__store__enums_8h.html#aa405c87964a066405de5426a3089702b) as the variable id

**Note:** Ghost element information is sent [update\_var\_element()](#aec8ed14b290237049976f68cb81b200f "Update elemental scalar variable values.") using [SCALAR](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0a7efbb6cac96595e63e8fa171bde1eb68 "Scalar.") as the var type and [DVS\_STRUCTURED\_GHOST\_ELEMENTS](dynamic__visualization__store__enums_8h.html#a5f85a0e808c3bad9b9b616e62f5724c0) as the variable id

Parameters \[in\]part\_idthe id of part we are updating nodes for \[in\]global\_ijk\_maxThe one based global ijk max of the mesh across all ranks \[in\]local\_ijk\_minthe zero based local sub-block ijk min for this rank \[in\]local\_ijk\_maxthe zero based local sub-block ijk max for this rank x\_valsThe actual X component for each IJK value for the local sub block (size (iMax-iMin+1)\*(jMax-jMin+1)\*(kMax-kMin+1)) y\_valsThe actual Y component for each IJK value for the local sub block (size (iMax-iMin+1)\*(jMax-jMin+1)\*(kMax-kMin+1)) z\_valsThe actual Z component for each IJK value for the local sub block (size (iMax-iMin+1)\*(jMax-jMin+1)\*(kMax-kMin+1)) Returnsdvs\_ret TODO 



<a id="a1588c437020e0ba5702ec48460a792a9" name="a1588c437020e0ba5702ec48460a792a9"></a>## [◆ ](#a1588c437020e0ba5702ec48460a792a9)update\_nodes\_structured() \[2/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_nodes\_structured  ( uint32\_t *part\_id*,    const uint32\_t *global\_ijk\_max*\[3\],    const uint32\_t *local\_ijk\_min*\[3\],    const uint32\_t *local\_ijk\_max*\[3\],    const float *origin*\[3\],    const float *dir\_i*\[3\],    const float *dir\_j*\[3\],    const float *dir\_k*\[3\],    const float \* *i\_vals*,    const float \* *j\_vals*,    const float \* *k\_vals* )  pure virtual 

Update the nodes for a parallelepiped structured part.

A parallelepiped structured part is represented by the global IJK grid across ranks, the local sub-block's IJK range, the origin of the IJK sub-block, the normalized direction (unit) vectors for each IJK dimension, and the absolute distances for each IJK index from the origin of this sub-block.

Global IJK Max: for a 2x3x4 grid would be: \[2 3 4\]

Local IJK Dimensions: The min/max represent a local sub-block from the overall global grid. This could be the entire range if not splitting the grid into multiple ranks or a specific slice. For example you could have a 2ix3jx4k grid where it was split across the I dimension. One rank would specify min/max IJK as min:\[0,0,0\], max:\[0,2,3\], the other rank would specify min/max IJK as min:\[1,0,0\], max:\[1,2,3\]. If sending the data all as one rank it would be the full range of: min:\[0,0,0\], max:\[1,2,3\]

Direction (Unit) Vectors: These represent the XYZ orientation of each IJK axis. I.E. if I==X J==Y K==Z the vectors would be dir\_i: \[1 0 0\], dir\_j: \[0 1 0\], dir\_k: \[0 0 1\]

IJK Vals: These specify the absolute distance from the XYZ origin in each IJK direction(specified by the direction vectors). So if the distance was 1 between every I index, 2 between every J index, and 3 in between every K index the arrays would look like: i\_vals: \[0 1 2 3 4 5....\] j\_vals: \[0 2 4 6 8 10....\] k\_vals: \[0 3 6 9 12 15....\]

**Note:** iblanking information is sent via [update\_var\_node()](#ae67a2884dd8f68f4757d8d7fac3828d3 "Update nodal variable values.") using [SCALAR](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0a7efbb6cac96595e63e8fa171bde1eb68 "Scalar.") as the var type and [DVS\_STRUCTURED\_IBLANKED\_NODES](dynamic__visualization__store__enums_8h.html#aa405c87964a066405de5426a3089702b) as the variable id

**Note:** Ghost element information is sent [update\_var\_element()](#aec8ed14b290237049976f68cb81b200f "Update elemental scalar variable values.") using [SCALAR](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0a7efbb6cac96595e63e8fa171bde1eb68 "Scalar.") as the var type and [DVS\_STRUCTURED\_GHOST\_ELEMENTS](dynamic__visualization__store__enums_8h.html#a5f85a0e808c3bad9b9b616e62f5724c0) as the variable id

Parameters \[in\]part\_idthe id of part we are updating nodes for \[in\]global\_ijk\_maxThe one based global ijk max of the mesh across all ranks \[in\]local\_ijk\_minthe zero based local sub-block ijk min for this rank \[in\]local\_ijk\_maxthe zero based local sub-block ijk max for this rank \[in\]originthe XYZ origin of this local ijk block \[in\]dir\_iThe normalized XYZ direction vector for the i dimension \[in\]dir\_jThe normalized XYZ direction vector for the j dimension \[in\]dir\_kThe normalized XYZ direction vector for the k dimension \[in\]i\_valsThe absolute distance vector for each i index from the local sub block's origin of size iMax-iMin+1 \[in\]j\_valsThe absolute distance vector for each j index from the local sub block's origin of size jMax-jMin+1 \[in\]k\_valsThe absolute distance vector for each k index from the local sub block's origin of size kMax-kMin+1 Returnsdvs\_ret TODO 



<a id="a119a2ae01cb95e70b82cb3d4aa9550f4" name="a119a2ae01cb95e70b82cb3d4aa9550f4"></a>## [◆ ](#a119a2ae01cb95e70b82cb3d4aa9550f4)update\_part\_rigid\_body\_motion()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_part\_rigid\_body\_motion  ( uint32\_t *part\_id*,    const std::vector&lt; float &gt; &amp; *quaternion*,    const std::vector&lt; float &gt; &amp; *displacement*,    const std::vector&lt; float &gt; &amp; *cg\_offset* )  pure virtual 

Update the rigid body motion for a part.

Parameters part\_idthe part ID of the part to update quaterniona vector of float representing the quaternion describing the rotation. Empty if no rotation. displacementthe displacement describing the rigid body motion translation. Empty if no translation. cg\_offsetthe eventual center of gravity offset to apply before the rotation and translations. Empty if no center of gravity offset.ReturnsDVS\_NONE if the update was successful 



<a id="afcf7811f22d58bd328bed415116a4c41" name="afcf7811f22d58bd328bed415116a4c41"></a>## [◆ ](#afcf7811f22d58bd328bed415116a4c41)update\_plot()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_plot  ( uint32\_t *plot\_id*,    const float \* *x\_values*,    const float \* *y\_values*,    uint32\_t *num\_values* )  pure virtual 

Update plot data for plot.

Parameters plot\_idID of plot \[in\]x\_valuesArray of x axis values of plot \[in\]y\_valuesarray of y axis values of plot num\_valuesnumber of x/y value pairs being sent Returnsdvs\_ret TODO 



<a id="a8f2e7174f9e89ef5285043dd9357f9b0" name="a8f2e7174f9e89ef5285043dd9357f9b0"></a>## [◆ ](#a8f2e7174f9e89ef5285043dd9357f9b0)update\_var\_case()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_case  ( [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    const float \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update case variable.

Parameters var\_typetype of variable we are updating var\_idunique id of variable \[in\]valuesarray of values for variable size based on type num\_valuessize of values array Returnsdvs\_ret TODO 



<a id="aec8ed14b290237049976f68cb81b200f" name="aec8ed14b290237049976f68cb81b200f"></a>## [◆ ](#aec8ed14b290237049976f68cb81b200f)update\_var\_element() \[1/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_element  ( [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) *elem\_type*,    [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    uint32\_t *part\_id*,    const float \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update elemental scalar variable values.

Parameters elem\_typeelement type var\_typetype of var see ensight\_dynmaic\_data\_enums.h: dvs\_element\_type for more info var\_idid of variable part\_idid of part \[in\]valuesarray of values to update, should be same size as number of elements sent num\_valuessize of values array Returnsdvs\_ret TODO 



<a id="a722ee94dc27c54a0f563229d4677ac3f" name="a722ee94dc27c54a0f563229d4677ac3f"></a>## [◆ ](#a722ee94dc27c54a0f563229d4677ac3f)update\_var\_element() \[2/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_element  ( [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) *elem\_type*,    [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    uint32\_t *part\_id*,    const int64\_t \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update elemental scalar 64bit variable values \*.

Parameters elem\_typeelement type var\_typetype of var see ensight\_dynmaic\_data\_enums.h: dvs\_element\_type for more info var\_idid of variable part\_idid of part \[in\]valuesarray of values to update, should be same size as number of elements sent num\_valuessize of values array Returnsdvs\_ret TODO 



<a id="a3834c25cf5ed35a17f08ecefa4b73417" name="a3834c25cf5ed35a17f08ecefa4b73417"></a>## [◆ ](#a3834c25cf5ed35a17f08ecefa4b73417)update\_var\_field() \[1/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_field  ( [dvs\_var\_location](dynamic__visualization__store__enums_8h.html#af4f0eba512eff253854b44d7ce078491) *location*,    [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) *elem\_type*,    [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    uint32\_t *part\_id*,    const float \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update var field values (nodal or elemental)

Parameters locationLocation of variable (node or element) elem\_typeElement type if location element, else undefined var\_typeType of variable var\_idID of variable part\_idID of part variable is associated with \[in\]valuesarray of values to update num\_valuessize of values array Returnsdvs\_ret TODO 



<a id="a89c8b5cf33a733071bcc6b4bc35615b2" name="a89c8b5cf33a733071bcc6b4bc35615b2"></a>## [◆ ](#a89c8b5cf33a733071bcc6b4bc35615b2)update\_var\_field() \[2/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_field  ( [dvs\_var\_location](dynamic__visualization__store__enums_8h.html#af4f0eba512eff253854b44d7ce078491) *location*,    [dvs\_element\_type](dynamic__visualization__store__enums_8h.html#af1c8824b29a0ab747460216716cc2895) *elem\_type*,    [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    uint32\_t *part\_id*,    const int64\_t \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update var field values (nodal or elemental) Extend support to handle 64 bit integer variable values.

Parameters locationLocation of variable (node or element) elem\_typeElement type if location element, else undefined var\_typeType of variable var\_idID of variable part\_idID of part variable is associated with \[in\]valuesarray of values to update num\_valuessize of values array Returnsdvs\_ret TODO 



<a id="ae67a2884dd8f68f4757d8d7fac3828d3" name="ae67a2884dd8f68f4757d8d7fac3828d3"></a>## [◆ ](#ae67a2884dd8f68f4757d8d7fac3828d3)update\_var\_node() \[1/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_node  ( [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    uint32\_t *part\_id*,    const float \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update nodal variable values.

Parameters var\_typetype of var var\_idid of variable part\_idid of part \[in\]valuesarray of values to update, should be same size as number of nodes sent with update\_nodes num\_valuessize of values array Returnsdvs\_ret TODO 



<a id="ae1eb49e0bf598055279b8ebbbc1815e6" name="ae1eb49e0bf598055279b8ebbbc1815e6"></a>## [◆ ](#ae1eb49e0bf598055279b8ebbbc1815e6)update\_var\_node() \[2/2\]

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_node  ( [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    uint32\_t *part\_id*,    const int64\_t \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update nodal variable values Extend support to handle 64 bit values

Parameters var\_typetype of var var\_idid of variable part\_idid of part \[in\]valuesarray of values to update, should be same size as number of nodes sent with update\_nodes num\_valuessize of values array Returnsdvs\_ret TODO 



<a id="ab18cc3827eda737ea73c31aa7fe6ef68" name="ab18cc3827eda737ea73c31aa7fe6ef68"></a>## [◆ ](#ab18cc3827eda737ea73c31aa7fe6ef68)update\_var\_part()

 virtual [dvs\_ret](dynamic__visualization__store__error__codes_8h.html#a1d7466ae72e89fe36cbf2408b4f7d9c1) DVS::IClient::update\_var\_part  ( [dvs\_var\_type](dynamic__visualization__store__enums_8h.html#af6aa6351345da4151507012681b3aff0) *var\_type*,    uint32\_t *var\_id*,    uint32\_t *part\_id*,    const float \* *values*,    uint32\_t *num\_values* )  pure virtual 

Update part vector variable.

Parameters var\_typetype of variable we are updating var\_idid of variable part\_idid of part \[in\]valuesarray of values for variable size based on type num\_valuessize of values array Returnsdvs\_ret TODO 



---

The documentation for this class was generated from the following file:- D:/ANSYSDev/Product-src/ensight/user\_defined\_src/readers/dvs/include/[dvs\_client\_interface.h](dvs__client__interface_8h_source.html)