UT-SIM
  • Home
  • Architecture
    • Communication
    • Integration Modules
    • Substructure Modules
  • Users
    • Get Started with UT-SIM >
      • OpenSees
      • Abaqus
      • S-Frame
      • VecTor Suite
      • NICON-NIO
      • NICON-AIO
    • Download
  • Developers
    • Source Code
    • Communication Examples >
      • C/C++
      • Fortran
      • Matlab
      • Python
    • Download
  • Hybrid Simulation
  • Numerical Simulation
  • Application Examples
  • Workshop
  • News
  • Collaborators
  • Contact
  • References

Communication Protocol and Data Exchange FOrmat

Picture
The key feature of the UT-SIM framework is a standardized data exchange format and a communication protocol through which any potential integration module or substructure module (either numerical or experimental) can be integrated. This maximizes the use of available analysis tools and the use of computational and experimental resources. The University of Toronto Networking Protocol (UTNP) is developed for this purpose. The UTNP consists of mainly two components: communication protocol and data exchange format. 

Communication Protocol

A protocol is a rule that two communicating modules need to follow to exchange data. It needs to be specified such that when one module sends data, the other module receives the data in the appropriate format. If both modules transmit data or wait to receive data at the same time, then the communication breaks down. 

The UTNP can communicate data through TCP-IP or UTP. In the current version, the server (i.e. substructure module) always waits for a connection and a command from the client (i.e. integration module). Once the client is connected and a command is received, such as imposing a displacement or velocity to a numerical model or a physical specimen, the server sends analytical or experimental results to the client. An overview of the UTNP communication protocol (v. 1.0) is illustrated below.  

The current protocol allows only for sequential communication, i.e. when one module sends data, the other module waits to receive the data. This communication protocol can ensure that both modules can fully synchronize the data at a given loading stage (i.e. time step in dynamic analysis or pseudo-time in static analysis). However, it can lengthen the simulation time if the communication introduces time lags which depend on the physical distance or network traffic. For example, the round trip communication time between the University of Toronto in Canada and the University of Illinois at Urbana-Champaign, U.S. was on average around 6 ms.  A similar test between the University of Toronto and the Aristotle University of Thessaloniki was around 175 ms. The communication time lag is not an issue in pseudo-dynamic tests or purely numerical simulations. If one wants to run geographically distributed real-time simulations however, the lag will be an issue, and the protocol needs to be improved. 

Picture

Data Exchange Format

The data exchanged through UTNP consists of a header block and a data block. The header block consists of data fields totalling 16 bytes, which includes essential information about the communication (i.e. protocol version, command, number of DOFs, etc.). The data block is appended when target displacements or velocities are sent, or when the server responds to the client with a stiffness matrix or calculated (or measured) forces. The size of the data block is calculated based on the data in the header block. 
Picture
Picture
For example, if an experimental two-dimensional truss element is represented in a substructure module with the following parameters, 
  • Number of DOF parameter: 4 (total number of DOFs of the substructure)
  • Command parameter: 3 (sending target displacements to the substructure)
  • Precision: 2 (double precision, 8 bytes).
then, the size of the data block will be 32 bytes (4 DOFs  x 8 bytes).  

More details on the data exchange format are given below. ​

Open Library for Data Exchange

Any potential contributors or users can implement the UTNP. Yet, it takes time and effort to implement and to verify the code. In addition, the documentation about the UTNP may not be clear enough to implement the protocol from scratch. Thus, to facilitate the implementation of UTNP, the UT-SIM group developed a set of functions which are used to send and receive data packets using UTNP. A dynamic link library (DLL) is compiled with the functions, which can be used with difference languages such as Matlab, C++, LabView, and Fortran. Examples of the communication modules in each language will be distributed soon.
Proudly powered by Weebly
  • Home
  • Architecture
    • Communication
    • Integration Modules
    • Substructure Modules
  • Users
    • Get Started with UT-SIM >
      • OpenSees
      • Abaqus
      • S-Frame
      • VecTor Suite
      • NICON-NIO
      • NICON-AIO
    • Download
  • Developers
    • Source Code
    • Communication Examples >
      • C/C++
      • Fortran
      • Matlab
      • Python
    • Download
  • Hybrid Simulation
  • Numerical Simulation
  • Application Examples
  • Workshop
  • News
  • Collaborators
  • Contact
  • References