Index: DamEngine/trunk/doc/Dam Engine - Technical Design/DAM Engine - Technical Design.tex =================================================================== diff -u -r3675 -r3687 --- DamEngine/trunk/doc/Dam Engine - Technical Design/DAM Engine - Technical Design.tex (.../DAM Engine - Technical Design.tex) (revision 3675) +++ DamEngine/trunk/doc/Dam Engine - Technical Design/DAM Engine - Technical Design.tex (.../DAM Engine - Technical Design.tex) (revision 3687) @@ -15,12 +15,20 @@ \newcommand{\kernel}{failuremechanism kernel\xspace} \newcommand{\MacrostabilityKernel}{Macrostability kernel\xspace} \newcommand{\DGeostability}{D-Geo Stability 18.1 kernel\xspace} +\newcommand{\DStability}{D-Stability\xspace} +\newcommand{\StixWriter}{Stix File Writer\xspace} \title{\ProgramName} \subtitle{Technical Design} \projectnumber{1210702-000} \client{Deltares - Geo engineering DKS} \reference{1210702-000-GEO-0004} \classification{-} +\author{Tom The, John Bokma} +\partner{-} +\contact{tom.the@deltares.nl, john.bokma@deltares.nl} +\documentid{-} +\organisationi{Deltares} +\publisheri{Deltares - DSC} \date{Jun. 2017} \version{0.4} @@ -37,7 +45,13 @@ \authori{Tom The} \revieweri{John Bokma \newline Andr\'e Grijze} \approvali{Maya Sule} +\status{draft} +\versioni{0.6} +\datei{July 2022} +\authori{John Bokma, Tom The} +\revieweri{Walter Austmann} +\approvali{Maya Sule} \status{draft} \disclaimer{This is a draft report, intended for discussion purposes only. No part of this report may be relied upon by either principals or third parties.} @@ -118,6 +132,12 @@ \item Added description of the implementation of the Macrostability kernel. \end{itemize} +\subsection{Revision 0.6} +\label{sec:Revision06} +\begin{itemize} + \item Updated for the options of the Macrostability kernel. +\end{itemize} + %------------------------------------------------------------------------------ \chapter{System Architecture} \label{chapterSystemArchitecture} @@ -182,22 +202,8 @@ For each sequence diagram a corresponding activity diagram is also shown \subsection{Dikes assessment} -\begin{figure}[H] - \begin{center} - \includegraphics[width=15cm]{pictures/DAMEngineSequenceAssessment.pdf} - \end{center} - \caption{\small \ProgramName Assessment sequence diagram.} - \label{fig-DAMEngineSequenceAssessment} -\end{figure} +The Dike assessment module is discontinued. -\begin{figure}[H] - \begin{center} - \includegraphics[width=8cm]{pictures/DAMEngineActivityAssessment.pdf} - \end{center} - \caption{\small \ProgramName Assessment activity diagram.} - \label{fig-DAMEngineActivityAssessment} -\end{figure} - \subsection{Dikes operational} \begin{figure}[H] \begin{center} @@ -259,7 +265,7 @@ \end{itemize} \section{Programming environment} \label{sec:ProgrammingEnvironment} -The \ProgramName will be developed in C\# with the .NET 4.5 framework. The development environment will be Visual Studio 2015. +The \ProgramName will be developed in C\# with the .NET 4.6.1 framework. The development environment will be Visual Studio 2019. \section{Error handling} \label{sec:ErrorHandling} Errors within the \ProgramName are handled through the standard exception handling of the .NET framework. Error messages must contain as much information as possible, so a user can trace back the error to the input data. \newline @@ -283,12 +289,16 @@ For now we foresee only the use of the following libraries: \begin{itemize} \item Failure mechanisms. - \item Math.NET. + \item Deltares.StixFileWriter (to be able to produce .stix files) + \item Deltares.StixFileReader (to be able to read .stix files to be able to use 2D profiles) \end{itemize} -Other libraries may be used under the condition that they are open source and free components, that are free to redistribute. \newline + +Other libraries may be used under the condition that they are open source and free components, that are free to redistribute. +A second demand is that a new library must be available in a 64 bit version too. +This to enable a possible switch to a full 64 bit version of the kernel.\newline All libraries should be listed in a manifest accompanying the release of \ProgramName. The list should also specify under which license each specific library is distributed. -Note: the current implementation of DAM uses the DSL (Delta Shell Light) library. This library will explicitly not be used for the \ProgramName, because this library is being made obsolete. +\Note: \ProgramName does no longer uses the DSL (Delta Shell Light) library. \subsection{Failure mechanisms} \label{sec:FailureMechanisms} @@ -303,12 +313,12 @@ \item Piping Sellmeijer 4 forces (not opensource). \item Piping Sellmeijer Revised (WBI). \item Macrostability inward + \item Macrostability outward (new). \end{itemize} -\subsection{Math.Net} \label{sec:MathNet} -Math.Net is a library that is distributed under the MIT/X11 license. Therefore it meets the conditions about open source and free redistribution. +\Note: Piping Sellmeijer VNK is a pure 32 bit program which can not be made available in 64 bit (bar a complete rewrite). +In case a 64 bit version is required, this failure mechanism should be discontinued. - %------------------------------------------------------------------------------ \chapter{Data Model} \label{chapterDataModel} This chapter contains diagrams describing the main data objects of the \ProgramName and their relation to each other. @@ -353,17 +363,15 @@ \begin{itemize} \item Macrostability inward. \item Macrostability outward. - \item Piping. - \item Horizontal Balance. + \item Piping. \end{itemize} \section{Scenarios} \label{sec:Scenarios} The verb Scenarios is widely (ab)used within DAM. It is good to define in which context scenarios are used and how they are to be called. Simply using the word scenario is not enough. -Within DAM we have 3 types of scenarios: +Within DAM we have 2 types of scenarios: \begin{itemize} \item Subsoil scenario. \item Design scenario. - \item Regional scenario. \end{itemize} \subsection{Subsoil scenario} @@ -376,23 +384,19 @@ Used for Design calculation. In a design calculation a new surfaceline is designed for a location, based on a target failure factor (e.g. due to new requirements), or load (e.g. a higher waterlevel). -\subsection{Regional scenario} -\label{sec:RegionalScenario} -For regional assessments there are certain scenarios that have to be evaluated, depending on the circumstances (e.g. drought, type of dike etc.). Part of the assessment is the determination which scenarios have to be evaluated and then calculating those scenarios. - \section{Main Data Model} \label{sec:MainDataModelDescription} \subsection{Input} \paragraph*{DamProjectType} The following Dam project types are supported \begin{itemize} - \item Assessment \item Operational \item Design \item NWO (not yet implemented) \end{itemize} + \paragraph*{DamProjectCalculationSpecification} -This class specifies which failuremechanism is to be calculated and it also contains the specific options for the selelected mechanism (e.g.\ which calculation model) +This class specifies which failuremechanism is to be calculated and it also contains the specific options for the selected mechanism (e.g.\ which calculation model) \paragraph*{Locations} This is a collection of locations, with each location containing the location specific data. \paragraph*{Soil Segments} @@ -828,11 +832,17 @@ \label{sec:WBIPipingSellmeijerRevised} TODO... -\section{Macrostability Inwards} +\section{Macrostability Inwards/Outwards} \label{sec:MacrostabilityInwards} -The macrostability kernel is used to support failure mechanism. -A Functional Design \citep{MacroStabilityReqAndFD22} and a Technical Design \citep{MacroStabilityKernel_TechnicalDesign} is available. -Currently this kernel only supports macrostability inwards for the model Uplift Van. +The macrostability kernel is used to support these failure mechanisms. +A Functional Design \citep{MacroStabilityReqAndFD22} and a Technical Design \citep{MacroStabilityKernel_TechnicalDesign} is available. \newline +Currently only a subset of this kernel will be supported from \ProgramName: +\begin{itemize} + \item macrostability inwards for the model Bishop (search method Brute Force). + \item macrostability inwards for the model Uplift Van (search methods Brute Force and BeeSwarm). + \item macrostability inwards for combi model Bishop-Uplift Van (search method for Bishop part Brute Force; for the Uplift Van part search methods Brute Force and BeeSwarm). + \item macrostability outwards for the model Bishop (search method Brute Force). +\end{itemize} The API of this kernel is based on an XML file that contains all the necessary data for the input of the kernel. The XML is defined with a set of XML schema's (XSD's). These XSD's can be found in chapter 2.3 of the Technical Design \citep{MacroStabilityKernel_TechnicalDesign}. @@ -846,7 +856,7 @@ \item MultiplicationFactorsCPhiForUplift \item SpencerSlipPlanes \item SlipPlaneConstraints - \item GeneticAlgorithmOptions + \item GeneticAlgorithmOptions (except for BeeSwarm) \item LevenbergMarquardtOptions \item Waternet creation options (defined in Location) \end{itemize} @@ -864,10 +874,10 @@ where:\\ \begin{itemize} - \item textit{current project folder} is the folder where your project resides. + \item \textit{current project folder} is the folder where your project resides. \item \textit{projectname} is the name of your project \item \textit{failuremechanisme} is the used failure mechanism such as Stabilty or Piping. - \item textit{model} is the used model such as UpliftVan or Bligh + \item \textit{model} is the used model such as UpliftVan or Bligh \end{itemize} To be able to tell what file belongs to which calculation, the following naming convention is used: @@ -878,7 +888,7 @@ \quad Loc(\textit{location name})Sce(\_\textit{scenario id})Pro(\_\textit{profile name})Ite(\_\textit{iteration index}).skx -\subsection{Generating input files for D-Stability} +\subsection{Generating input files for \DStability} Older versions of \ProgramName used \DGeostability directly as kernel by generating \DGeostability input files (*.sti). These files were also made available to the user as they were written to the calculation folder (see \autoref{subsec:DataCommunicationStabilityKernel}). @@ -892,16 +902,19 @@ However it still would be nice to be able to open, check and maybe even recalculate an individual calculation using such an UI. For this purpose, -DStability is the UI of choice as this is also uses the same kernel as \ProgramName does. +\DStability is the UI of choice as this is also uses the same kernel as \ProgramName does. -Therefore the \ProgramName must be able to write files in the format that is used by DStability which is the *.stix format. -The actual writing of a stix file itself is done using an external tool (MacroStability Six File Writer). -This tool takes the input as defined in the \ProgramName for the kernel (via the C\# wrapper interface for the \MacrostabilityKernel) -and writes the file at the specified place -(i.e. the calculation folder). +Therefore the \ProgramName is able to write files in the format that is used by \DStability which is the *.stix format. +The actual writing of a stix file itself is done using an external tool (\StixWriter). +This tool takes the input as defined in the \ProgramName for the kernel +(via the C\# wrapper interface for the \MacrostabilityKernel) +and writes the file at the specified place (i.e. the calculation folder). +Note that the resulting slip plane is added to the stix-file rather than just presenting the input. +Main reason for this is that \DStability does not support \textit{Uplift Van} with search method \textit{Brute Force}. +So it will never be able to reproduce the kernel results as found with \ProgramName. +By adding the resulting slip plane and changing the search method to \textit{Single Circle}, \DStability can reproduce the result. -The most logical place to implement this tool in the engine is there where the input for the \MacrostabilityKernel is generated. -That input is used for both the kernel (as input for the calculation) and for the stix file writer tool (to write the stix file). +For this reason, the \StixWriter is implemented in the post processing of the results. \subsection{Mapping of the \ProgramName data} \label{sec:MappingDamEngineDataMacrostability} @@ -928,7 +941,7 @@ SpencerSlipPlanes & DO-NOT-IMPLEMENT \\ \hline UpliftVanCalculationGrid & generated \\ \hline SlipPlaneConstraints & DO-NOT-IMPLEMENT (See \autoref{table-MappingDamEngineSlipPlaneConstraintsMacrostability}) \\ \hline - GeneticAlgorithmOptions & DO-NOT-IMPLEMENT \\ \hline + GeneticAlgorithmOptions & Only BeeSwarm for Uplift Van \\ \hline LevenbergMarquardtOptions & DO-NOT-IMPLEMENT \\ \hline \end{tabular} \caption{\small Mapping of the \MacrostabilityKernel data to the \ProgramName.} Index: DamEngine/trunk/doc/Dam Engine - Functional Design/FO.tex =================================================================== diff -u -r3674 -r3687 --- DamEngine/trunk/doc/Dam Engine - Functional Design/FO.tex (.../FO.tex) (revision 3674) +++ DamEngine/trunk/doc/Dam Engine - Functional Design/FO.tex (.../FO.tex) (revision 3687) @@ -54,8 +54,9 @@ Textual adaptations.\newline Assessment is removed from the requirements. {sec:TLDegOfCo} added. +\subsection{Revision 0.3} \label{sec:Revision03} +Textual and functional adaptations.\newline - \chapter{Functional requirements} Main purpose of the \ProgramName is to get data from DAM Clients, use this data as calculation input and make serially calculations demanded by the DAM Client with one or more kernels and generates output. This can be broken down to the next user stories:\newline Index: DamEngine/trunk/doc/Dam Engine - Functional Design/DAM Engine - Functional Design.tex =================================================================== diff -u -r3659 -r3687 --- DamEngine/trunk/doc/Dam Engine - Functional Design/DAM Engine - Functional Design.tex (.../DAM Engine - Functional Design.tex) (revision 3659) +++ DamEngine/trunk/doc/Dam Engine - Functional Design/DAM Engine - Functional Design.tex (.../DAM Engine - Functional Design.tex) (revision 3687) @@ -20,6 +20,12 @@ \client{Deltares - Geo engineering DKS} \reference{1210702-000-GEO-0003} \classification{-} +\author{Irene van der Zwan, John Bokma} +\partner{-} +\contact{john.bokma@deltares.nl} +\documentid{-} +\organisationi{Deltares} +\publisheri{Deltares - DSC} \date{Jun. 2018} \version{0.1} @@ -37,6 +43,12 @@ \revieweri{Kin Sun Lam \newline Andr\'e Grijze} \approvali{Leo Voogt} +\versioni{0.3} +\datei{July 2022} +\authori{John Bokma} +\revieweri{Kin Sun Lam \newline Walter Austmann} +\approvali{Leo Voogt} + \status{draft} \disclaimer{This is a draft report, intended for discussion purposes only. No part of this report may be relied upon by either principals or third parties.} Index: DamOverall/trunk/doc/DAM_references/dam_references.bib =================================================================== diff -u -r3673 -r3687 --- DamOverall/trunk/doc/DAM_references/dam_references.bib (.../dam_references.bib) (revision 3673) +++ DamOverall/trunk/doc/DAM_references/dam_references.bib (.../dam_references.bib) (revision 3687) @@ -97,15 +97,15 @@ } @TechReport{DAMEngine_TechnicalDesign, - author = {The, T.}, - title = {DAM Engine - Technical Design}, + author = {The, T. and Bokma, J.}, + date = {2022-07-05}, institution = {Deltares}, - year = {2017}, - date = {2017-01-31}, + title = {DAM Engine - Technical Design}, number = {1210702-000-GEO-0004, version 0.2, mar. 2017, concept}, - month = {May}, + month = {7}, owner = {trp}, timestamp = {2016.04.12}, + year = {2022}, } @TechReport{DAMUI_TestPlan, @@ -138,22 +138,22 @@ institution = {Deltares}, title = {DAM UI - Technical Design}, number = {1210702-000-GEO-0009, version 0.2, april 2022, concept}, - month = {May}, + month = {6}, owner = {trp}, timestamp = {2016.04.12}, - year = {2017}, + year = {2022}, } @TechReport{DAMEngine_FunctionalDesign, - author = {Zwan, I. vd}, - title = {DAM Engine - Functional Design}, + author = {Zwan, I. vd and Bokma, J.}, + date = {2022-07-04}, institution = {Deltares}, - year = {2017}, - date = {2017-01-31}, + title = {DAM Engine - Functional Design}, number = {1210702-000-GEO-0003, version 0.1, jan. 2017, concept}, - month = {September}, + month = {7}, owner = {trp}, timestamp = {2016.04.12}, + year = {2022}, } @TechReport{ArchitectureGuidelines,