Index: dam engine/trunk/doc/Dam Engine - Technical Design/DAM Engine - Technical Design.tex
===================================================================
diff -u -r338 -r347
--- dam engine/trunk/doc/Dam Engine - Technical Design/DAM Engine - Technical Design.tex	(.../DAM Engine - Technical Design.tex)	(revision 338)
+++ dam engine/trunk/doc/Dam Engine - Technical Design/DAM Engine - Technical Design.tex	(.../DAM Engine - Technical Design.tex)	(revision 347)
@@ -614,9 +614,76 @@
 \chapter{Programming Interface}  \label{chapterProgrammingInterface}
 This is the definition of the programming interface. 
 The only way to communicate to the \ProgramName is through this interface.
+In the assembly Deltares.DamEngine.Interface.dll a class hass been defined: \texttt{Interface}, which provides the properties and methods which can be used to interact with the \ProgramName.
 
-\textbf{TO DO: Add interface description}
+\section{Initialization}
+\label{sec:Initializion}
 
+\texttt{
+\newline
+        /// <summary> \newline
+        /// Initializes a new instance of the <see cref="Interface"/> class. \newline
+        /// </summary> \newline
+        /// <param name="modelInput">The model input.</param> \newline
+        public Interface(string modelInput) \newline
+				}
+\newline
+The class has to be instantiated with an (XML) string which adheres to the XSD definition of the inputfile for the \ProgramName.
+
+\section{Validation}
+\label{sec:Validation}
+\texttt{
+\newline
+        /// <summary> \newline
+        /// Validates the model. \newline
+        /// </summary> \newline
+        /// <returns>Valdiation messages in an XML string</returns> \newline
+        public string Validate() \newline
+				}
+\newline
+This will validate the model and returns the messages in an XML string which adheres to XSD definition of a message list.
+\section{Calculation}
+\label{sec:Calculation}
+\texttt{
+\newline
+        /// <summary> \newline
+        /// Performs the calculation. \newline
+        /// </summary> \newline
+        /// <returns>Errors and warnings in an XML string</returns> \newline
+        public string Run() \newline
+				}
+\newline
+This will perform the calculation of the model and returns the messages in an XML string which adheres to XSD definition of a message list.\section{Interaction}
+\label{sec:Interaction}
+
+The \ProgramName interacts with the calling application through delegates. The following delegates are used by the \ProgramName: \newline
+\texttt{  
+\newline   
+		/// <summary> \newline
+    /// Sends the current progress status  \newline
+    /// </summary> \newline
+    /// <param name="progress">The progress; this is a number between 0 and 1.</param> \newline
+    public delegate void ProgressDelegate(double progress); \newline
+ \newline
+    /// <summary> \newline
+    /// Sends  log message \newline 
+    /// </summary> \newline
+    /// <param name="logMessage">The log message.</param> \newline
+    public delegate void SendMessageDelegate(LogMessage logMessage); \newline
+\newline
+    /// <summary> \newline
+    /// Check if an user abort is requested \newline
+    /// </summary> \newline
+    /// <returns>true if user requested an abort; else false</returns> \newline
+    public delegate bool UserAbortDelegate(); \newline
+}
+\newline
+These delegates can be assigned to the properties of Interface: \newline
+\texttt{
+        public ProgressDelegate ProgressDelegate \newline
+        public SendMessageDelegate SendMessageDelegate \newline
+        public UserAbortDelegate UserAbortDelegate \newline
+}
 %------------------------------------------------------------------------------
 \chapter{Literature}  \label{chapterLiterature}
 
