UnityMol  0.9.6-875
UnityMol viewer / In developement
ArtemisWrapper.cs
Go to the documentation of this file.
1 using UnityEngine;
2 using System.Collections;
3 using System.Runtime.InteropServices;
4 
5 using ArtemisClientPointer = System.IntPtr;
6 
7 public class ArtemisWrapper {
8 
9  // Header types
10  public enum artemis_imd_type_e {
11  IMD_DISCONNECT = 0, //Client disconnect from server
12  IMD_ENERGIES = 1, // Energies structures
13  IMD_FCOORDS = 2, // Atoms coordinates as floating point numbers
14  IMD_GO = 3, // Client wants the simulation to run
15  IMD_HANDSHAKE = 4, // Handshake for endian consistency
16  IMD_KILL = 5, // Client wants to shutdown the simulation
17  IMD_MDCOMM = 6, // Client sends forces to the simulation
18  IMD_PAUSE = 7, // Client wants to pause the simulation for a while
19  IMD_TRATE = 8, // Client sets the IMD transmission rate
20  IMD_IOERROR = 9 // An I/O error occured
21  };
22 
23  public struct ArtemisHeader
24  {
26  public int length;
27  };
28 
29  public struct ArtemisImdEnergies
30  {
31  public int tstep;
32  public float T;
33  public float Etot;
34  public float Epot;
35  public float Evdw;
36  public float Eelec;
37  public float Ebond;
38  public float Eangle;
39  public float Edihe;
40  public float Eimpr;
41  };
42 
43  [DllImport ("artemis")]
44  public static extern ArtemisClientPointer artemis_client_create(int nb_atoms);
45 
46  [DllImport ("artemis")]
47  public static extern int artemis_client_destroy(ArtemisClientPointer client);
48 
49  [DllImport ("artemis")]
50  public static extern int artemis_client_connect(ArtemisClientPointer client, [In] string hostname, [In] int port);
51 
52  [DllImport ("artemis")]
53  public static extern int artemis_client_disconnect(ArtemisClientPointer client);
54 
55  [DllImport ("artemis")]
56  public static extern int artemis_client_receive(ArtemisClientPointer client);
57 
58  [DllImport ("artemis")]
59  public static extern int artemis_client_read_header(ArtemisClientPointer client, ref ArtemisHeader header);
60 
61  [DllImport ("artemis")]
62  public static extern int artemis_client_read_energies(ArtemisClientPointer client, ref ArtemisImdEnergies energies);
63 
64  [DllImport ("artemis")]
65  public static extern int artemis_client_read_coords(ArtemisClientPointer client, [In, Out] float[] coords, int nb_atoms);
66 
67  [DllImport ("artemis")]
68  public static extern int artemis_client_send_forces(ArtemisClientPointer client, int nb_forces, [In] int[] indexes, [In] float[] forces);
69 
70  [DllImport ("artemis")]
71  public static extern int artemis_client_send_go(ArtemisClientPointer client);
72 
73  [DllImport ("artemis")]
74  public static extern int artemis_client_send_kill(ArtemisClientPointer client);
75 
76  [DllImport ("artemis")]
77  public static extern int artemis_client_send_pause(ArtemisClientPointer client);
78 
79  [DllImport ("artemis")]
80  public static extern int artemis_client_send_trate(ArtemisClientPointer client, int rate);
81 }
static int artemis_client_send_trate(ArtemisClientPointer client, int rate)
int tstep
integer timestep index
float Edihe
Dihedral energy, Kcal/mol.
static int artemis_client_destroy(ArtemisClientPointer client)
float Evdw
Van der Waals energy, in Kcal/mol.
static ArtemisClientPointer artemis_client_create(int nb_atoms)
static int artemis_client_connect(ArtemisClientPointer client, [In] string hostname, [In] int port)
float Ebond
Bond energy, Kcal/mol.
float Epot
Potential energy, in Kcal/mol.
float Etot
Total energy, in Kcal/mol.
static int artemis_client_send_go(ArtemisClientPointer client)
static int artemis_client_send_forces(ArtemisClientPointer client, int nb_forces, [In] int[] indexes, [In] float[] forces)
static int artemis_client_disconnect(ArtemisClientPointer client)
static int artemis_client_read_energies(ArtemisClientPointer client, ref ArtemisImdEnergies energies)
float T
Temperature in degrees Kelvin.
float Eelec
Electrostatic energy, in Kcal/mol.
static int artemis_client_read_header(ArtemisClientPointer client, ref ArtemisHeader header)
float Eangle
Angle energy, Kcal/mol.
static int artemis_client_read_coords(ArtemisClientPointer client, [In, Out] float[] coords, int nb_atoms)
static int artemis_client_receive(ArtemisClientPointer client)
static int artemis_client_send_kill(ArtemisClientPointer client)
static int artemis_client_send_pause(ArtemisClientPointer client)