diff --git a/Lectures/L05_ProgramFamilies/ProgramFamilies.pdf b/Lectures/L05_ProgramFamilies/ProgramFamilies.pdf index c5ece29f23d6627d2f180f0614239fcfdf5aa97b..6fc7c913ae2ba61968fb4cba7c42a2b2fa27fd39 100644 Binary files a/Lectures/L05_ProgramFamilies/ProgramFamilies.pdf and b/Lectures/L05_ProgramFamilies/ProgramFamilies.pdf differ diff --git a/Lectures/L05_ProgramFamilies/ProgramFamilies.tex b/Lectures/L05_ProgramFamilies/ProgramFamilies.tex index 5395b6053c9087422eb6019ca2be9009d6c8a6eb..700d305c30492bfea0d9d5c6b681011d118df21b 100755 --- a/Lectures/L05_ProgramFamilies/ProgramFamilies.tex +++ b/Lectures/L05_ProgramFamilies/ProgramFamilies.tex @@ -672,1154 +672,6 @@ leads to weak error bounds %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame} -\frametitle{Overview of Process} - -\begin{center} - \includegraphics[width=1.0\textwidth]{../Figures/Waterfall.pdf} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{CA to SRS to Design} - -\begin{center} -\includegraphics[width=1.0\textwidth]{../Figures/OverviewOfMethodology.pdf} -\end{center} - -% mention an overview of what goes in the boxes - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Proposed Methodology} - -\begin{enumerate} - -\item Identify family of interest -\begin{itemize} -\item Specific physical model? -\item Multipurpose tool? -\end{itemize} -\item Commonality Analysis (CA) -\begin{itemize} -\item Terminology -\item Commonalities -\item Variabilities -\item Parameters of variation -\item Binding time -\end{itemize} -\item Domain Specific Language (DSL) -\item Generation of family members - -\end{enumerate} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{CA Template From \cite{Smith2006}} - -\scalebox{1.0}{ -\begin{minipage}{0.94\columnwidth} -\begin{enumerate} - -\item{Reference Material:} -{a) Table of Contents} -{b) Table of Symbols} -{c) Abbreviations and Acronyms} - -\item{Introduction:} -{a) Purpose of the Document} -{b) Organization of the Document} - -\item{General System Description:} -{a) \structure{Potential} System Contexts} -{b) \structure{Potential} User Characteristics} -{c) \structure{Potential} System Constraints} - -\item Commonalities: -{a) Background Overview} -{b) Terminology Definition} -\structure{c) Goal Statements} -\structure{d) Theoretical Models} - -\item \structure{Variabilities: -{a) Input Assumptions} -{b) Calculation} -{c) Output}} - -\item{Traceability Matrix} - -\item{References} - -\end{enumerate} -\end{minipage} -} -% highlight parts to talk about -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Abstract Requirements} - -% explain how CAnal addresses this challenge -\begin{itemize} -\item Appropriate level of abstraction by refining from goal to theory to input assumptions -\item A goal is a functional objective the software should achieve: \newline -\structure{\textbf{G1:} Find the roots of an equation} -\item Goals are refined into theoretical models: \newline -% presented as they would be presented in a mathematics textbook -\structure{\textbf{T1:} Given a function $f(x)$ and an interval $ \{ x | x_{lower} \leq x_{upper} \} $, -return the points where $f(x) = 0$} -\item Introduce simplifying assumptions to allow theoretical model to be solved:\newline -\structure{\textbf{VA1,2:} $f(x)$ is continuous on the interval and/or $f(x)$ has at least one sign change on the -interval} -%traceability matrix? -\end{itemize} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Abstract Requirements (Continued)} - -\begin{itemize} -\item Each variability has an associated parameter of variation and a binding time -\begin{itemize} -\item Specification time -\item Compile time -\item Run time -\end{itemize} -\end{itemize} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Capture Existing Knowledge} - -\begin{itemize} -\item Systematic consideration from general to specific -\item Communication between experts -\item Standard template allows comparison -\item Convenient framework for summarizing existing literature -\item Eventually a library of requirements documentation -% \item Same goal may have different theoretical models -\item CA refined by a family of SRSs -\end{itemize} -\end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{System Requirements Specification (SRS)} - -\begin{itemize} - -\item Based on IEEE Standard 830 and Volere requirements specification template -\item Sections from CA are refined in SRS -\item ``Potential'' descriptions are made specific -\item Variabilities are set -\item Binding times are set - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{SRS Template} - -\scalebox{1.0}{ -\begin{minipage}{0.94\columnwidth} -\begin{enumerate} - -\item{Reference Material}%: -%{a) Table of Contents} -%{b) Table of Symbols} -%{c) Abbreviations and Acronyms} - -\item{Introduction}%: -%{a) Purpose of the Document} -%{b) Scope of the Software Product} -%{c) Organization of the Document} - -\item{General System Description}%: -%{a) System Context} -%{b) User Characteristics} -%{c) System Constraints} - -\item {Specific System Description:} -{a) Background Overview,} -{b) Terminology Definition,} -{c) Goal Statements} -{d) Theoretical Models,} -{e) Assumptions,} -{f) Data Constraints,} -{g) System Behaviour} - -\structure{\item Non-functional Requirements: -{a) Accuracy of Input Data,} -{b) Sensitivity of the Model,} -{c) Tolerance of Solution,} -{d) Performance,} -{...} -{i) Portability,}} - -\structure {\item {Solution Validation Strategies,}} - -\item{Other System Issues:} -%{ Open Issues} -%{ Off-the-Shelf Solutions} -%{ New Problems} -%{ Waiting Room} - -\item{Traceability Matrix} - -%\item List of Possible Changes in the Requirements - -%\item{Values of Auxiliary Constants} - -%\item{References} - -\end{enumerate} -\end{minipage} -} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{NFRs} - -\begin{itemize} - -\item Rather than absolute quantification of NFRs, use relative comparison between other program family members -\item Specify requirements in big O notation -% makes the requirement validatable -%\item Identify benchmark test problems %system test plan -%\item A posteriori description, rather than a priori specification -\item Relative importance between NFRs using Analytic Hierarchy Process (AHP) \cite{Saaty1980} -\begin{itemize} -\item Addresses challenge of comparing attributes that are measured in different (or hard to quantify) units -\item Series of pair-wise comparisons between attributes -\item 1 for equal importance, 3 for moderately strong importance, ..., 9 for extreme importance -\end{itemize} - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Validatable Requirements} - -\begin{itemize} - -%\item Rather than absolute quantification of NFRs, use relative comparison between other program family members -% makes the requirement validatable -\item Relative comparison between programs is a validatable requirement -\item Focus on a posteriori description, rather than a priori specification -% experiment with the software, as experiment with nature -\item Solution validation strategies -\begin{itemize} -\item Solve using different techniques -\item Identify benchmark test problems %system test plan -\item Test cases built starting from assumed solutions (Method of Manufactured Solutions) -\item Partially validate for a simpler subset where the solution is known -\end{itemize} - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Mesh Generating Software} -\begin{figure} -\begin{center} -\rotatebox{0} -{ - \includegraphics[width=0.9\textwidth]{../Figures/ExampleMesh.pdf} -} -%\caption{Example finite element mesh} -\end{center} -\end{figure} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Commonality Analysis for a Mesh Generator} - -From Chen's work \cite{Chen2003, SmithAndChen2004, SmithAndChen2004b}. -Alternate approach in \cite{BastarricaAndHitschfeld2006, RosselEtAl2014, - BastarricaAndHitschfeld-Kahler2004, - Bastarrica2002, BastarricaAndHitschfeld2004} - -\begin{itemize} - -\item Terminology -\begin{itemize} -\item requirement -\item structured mesh, ... -\end{itemize} - -\item Commonalities -\begin{itemize} -\item discretization -\item input from user is required, ... -\end{itemize} - -\item Variabilities -\begin{itemize} -\item shape of elements -\item coordinate system used, ... -\end{itemize} - -\item Parameters of variation -\begin{itemize} -\item line, triangle, quadrilateral, tetrahedral, hexahedral -\item Cartesian, polar, spherical, ... -\end{itemize} - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Definition of a Mesh} -Let $\Omega$ be a closed bounded domain in $\mathbb{R}$ or $\mathbb{R}^2$ or $\mathbb{R}^3$ -and let $K$ -be a simple shape, such as a line segment in 1D, a triangle or a quadrilateral in 2D, or a tetrahedron or hexahedron -in 3D. A mesh of $\Omega$, denoted by $\tau$, has the following properties: -\begin{enumerate} -\item $\Omega \approx \cup(K | K \epsilon \tau : K)$, where $\cup$ is first closed and then opened -\item the length of every element $K$, of dimension 1, in $\tau$ is greater than zero -\item the interior of every element $K$, of dimension 2 or greater, in $\tau$ is nonempty -\item the intersection of the interior of two elements is empty -\end{enumerate} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Example Commonality} - -\newcommand{\colACwidth}{0.25\textwidth} -\newcommand{\colBCwidth}{0.7\textwidth} - -\begin {tabular}{| p{\colACwidth} | p{\colBCwidth}|} -\hline -{\bf Item Number} & C1\\ -\hline -{\bf Description} & A mesh generator discretizes a given computational domain (closed boundary $\Omega$) into a covering -up of a finite number of simpler shapes.\\ -\hline -{\bf Related Variability} & V6, V8, V12, V14, V15, V16, V17, V18\\ -\hline -{\bf History} & Created - May 7, 2004\\ -\hline -\end {tabular} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame} - -\frametitle{Mesh Generator (MG) Goals} - -\begin{enumerate}[G1] - -\item Input spatial domain $\Omega$ output a mesh $M$ that covers this domain. - -\item Transform information on the materials, material properties and the -locations of the different materials - -\item Transform information on the boundary condition types, values and locations - -\item Transform system information, such as numerical algorithm parameters -%values needed by the subsequent -%processing step (for instance initial time, time step size, degree of implicitness, etc.) - -\end{enumerate} - -\end{frame} - -% TO DO - add a slide for the theoretical model? - no room -% TO DO - mention output file format variability via XSLT? - mention during talk, but no room on slides -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Element Variability} - -Location of nodes: sequence of LocationT \\ -Number of dof at nodes: sequence of $\mathbb{N}$ \\ -LocationT = tuple of ($L_1: \mbox{natT}$, $L_2: \mbox{natT}$, $L_3: \mbox{natT}$)\\ -natT = \{ $s: \mathbb{R} | 0 \leq s \leq 1 : s$ \}\\ - -\begin{center} -%\rotatebox{-90} -{ - \includegraphics[width=0.5\textwidth]{../Figures/TriangleElement.pdf} -} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Local Topology Variability} - -\begin{center} -{ -\includegraphics[width=0.65\textwidth]{../Figures/TopologyPatterns.pdf} -} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame}[fragile] - -\frametitle{DSL Using XML} - -\lstset{language=XML,linewidth=.9\textwidth,xleftmargin=0.5cm} -\begin{lstlisting}%[frame=single] - -<elementSet> - <geometrySpec> - <shape>triangle1</shape> - <nodeGeo count="3"> - <node id="1"> - <location>1,0,0</location> - </node> - <node id="2"> - <location>0,1,0</location> - </node> - ... - </nodeGeo> - </geometrySpec> -</elementSet> -\end{lstlisting} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Proof of Concept Implementation} - -From Cao's work \cite{Cao2006, SmithMcCutchanAndCao2007} -\begin{itemize} -\item XML document that customizes a Java object -\item The Java object customizes the general purpose MG as it is loaded -\item General purpose MG -\begin{itemize} -\item All variabilities bound at run-time -\item Corresponds to an empty XML specification -\end{itemize} -\end{itemize} - -\begin{center} -{ -\includegraphics[width=0.4\textwidth]{../Figures/elementdialog2.png} -} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Linear Systems of Equations} - -$$A x = b$$ - -Commonality analysis presented in \cite{Smith2006} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\begin{frame} - -%\frametitle{Terminology} - -%\begin{tabular}{ l p{5.5cm}} -%$n: \mathbb{N}$ & number of linear equations and the number of unknowns\\ -%$A: \mathbb{R}^{n \times n}$ & $n \times n$ real matrix\\ -%$x: \mathbb{R}^{n \times 1}$ & $n \times 1$ real column vector\\ -%$b: \mathbb{R}^{n \times 1}$ & $n \times 1$ real column vector\\ -%$I: \mathbb{R}^{n \times n}$ & an $n \times n$ matrix where all entries are $0$, except for the diagonal entries, which -%are $1$\\ -%$A^{-1}: \mathbb{R}^{n \times n}$ & the inverse matrix, with the property that $A^{-1} A = I$\\ -%$|| v || $ & the norm (estimate of magnitude) of vector $v$\\ -%residual & $|| b - A x ||$\\ -%singular & matrix $A$ is singular if $A^{-1}$ does not exist\\ -%\end{tabular} - -%\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Goal and Theoretical Model} - -\textbf{G1}: Given a system of $n$ -linear equations represented by matrix $A$ and column vector $b$, return $x$ such that $A x = b$, if possible - -\textbf{T1}: Given square matrix $A$ and column vector $b$, the possible -solutions for $x$ are as follows: - -\begin{enumerate} -\item A unique solution $x = A^{-1} b$, if $A$ is nonsingular -\item An infinite number of solutions if $A$ is singular and $b \in span(A)$ -\item No solution if $A$ is singular and $b \notin span(A)$ -\end{enumerate} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Variabilities for Input Assumptions} - -\begin{tabular}{| p{\colA} | p{\colB} | } -\hline -\textbf{Variability} & \textbf{Parameter of Variation} \\ -\hline -Allowed structure $A$ & Set of \{ full, sparse, banded, tridiagonal, block triangular, ..., -%block structured, diagonal, upper triangular, lower triangular, -Hessenberg \} \\ -\hline -Allowed definiteness $A$ & Set of \{ not definite, positive definite, ..., -%positive semi-definite, negative definite, -negative semi-definite \} \\ -\hline -Allowed class of $A$ & Set of \{ diagonally dominant, Toeplitz, Vandermonde \} \\ -\hline -Symmetry\newline assumed? & boolean \\ -\hline -Possible values for $n$ & set of $\mathbb{N}$ \\ -\hline -Possible entries in $A$ & set of $\mathbb{R}$ \\ -\hline -... & ... \\ -%Possible entries in $b$ & set of $\mathbb{R}$ \\ -%\hline -%Source\newline of input & Set of \{ from a file, through the user interface, passed in memory \} \\ -%\hline -%Encoding of input & Set of \{binary, text \} \\ -%\hline -%Format\newline of input $A$ & Set of \{arbitrary, by row, by column, by diagonal \} \\ -%\hline -%Format\newline of input $b$ & Set of \{arbitrary, ordered \} \\\hline -\end{tabular} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Variabilities for Calculation} - -\begin{tabular}{| p{\colA} | p{\colB} | } -\hline -\textbf{Variability} & \textbf{Parameter of Variation} \\ -\hline -Check input? & boolean (false if the input is assumed to satisfy the input assumptions)\\ -\hline -Exceptions generated? & boolean (false if the goal is non-stop arithmetic)\\ -\hline -Norm used for residual & Set of \{1-norm, 2-norm, $\infty$-norm \} \\ -\hline -\end{tabular} - -% mention turning off input checking helps with problem of theoretical model refined by assumpts - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Variabilities for Output} - -\begin{tabular}{| p{\colA} | p{\colB} | } -\hline -\textbf{Variability} & \textbf{Parameter of Variation} \\ -\hline -Destination for output $x$ & Set of \{ to file, to screen, to memory \} \\ -\hline -Encoding of output $x$ & Set of \{binary, text \} \\ -\hline -Format of output $x$ & Set of \{arbitrary, ordered \} \\ -\hline -Output residual & boolean (true if the program returns the residual) \\ -\hline -Possible entries in $x$ & set of $\mathbb{R} \cup \{- \infty, \infty, undef \}$ \\ -\hline -\end{tabular} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Analytic Hierarchy Process} - -\begin{itemize} -\item Example 1 -\begin{itemize} -\item Embedded real-time system for digital signal processing -\item $n = 10$ -\item $A$ is assumed to be Toeplitz -\end{itemize} -\end{itemize} - -\begin{tabular}{| l | l | l | l | l |} -\hline -~ & \textbf{Speed} & \textbf{Accuracy} & \textbf{Portability} & \textbf{Priority}\\ -\hline -\textbf{Speed} & 1 & 3 & 5 & 0.64\\ -\textbf{Accuracy} & 1/3 & 1 & 3 & 0.26\\ -\textbf{Portability} & 1/5 & 1/3 & 1 & 0.11\\ -\hline -\end{tabular} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\begin{frame} - -%\frametitle{AHP Continued} - -%\begin{itemize} -%\item Example 2 -%\begin{itemize} -%\item Structural mechanics software for education -%\item $10 \leq n \leq 1000$ -%\item $A$ is assumed to be positive definite -%\item Would have different relative priorities -%\end{itemize} -%\end{itemize} - -%\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Solution Validation Strategies} - -\begin{itemize} -\item Create test cases with known solutions -\begin{itemize} -\item Assume $A$ and $x$, calculate $b$ -\item Given $A$ and $b$ calculate $x^*$ and compare to the assumed $x$ -\end{itemize} -\item Comparison with Matlab -\item Comparison with NAG library -\item Where possible compare solution to interval arithmetic solution -\item Experiments to describe how accuracy changes with increasing condition number -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Connection to Design} - -\begin{itemize} - -\item Abstract requirements to concrete design decisions -%\item Software packages likely already exist within the program family -\item Reuse existing packages within the program family -\item Summarize existing software by the parameters of variation and binding time -%\item Run time binding can often be changed to specification time binding -\item If functional requirements match, then use NFRs -\begin{itemize} -\item AHP to compare each design against each of the NFRs %as done in SRS -%cols and rows are des alternatives, compared against a given NFR -%repeat for each NFR -\item Contribution of each NFR for each design alternative is found by multiplying the contribution of -each alternative to the given NFR with the corresponding priority of that NFR -\item Sum the contributions -\item The highest overall score is the ``winning'' alternative -\end{itemize} - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{A Family of Material Models} - -From McCutchan's work \cite{CaretteEtAl2008, SmithMcCutchanAndCao2007, - SmithEtAl2008, CaretteEtAl2007_TR, SmithMcCutchanAndCarette2017, McCutchan2007} - -\begin{center} -{ -\includegraphics[width=0.5\textwidth]{../Figures/TestSpecimenUniaxial.pdf} -} -\end{center} - -\begin{center} -\begin{tabular}{cc} -\includegraphics[width=0.45\textwidth]{../Figures/Plastic.pdf} & -\includegraphics[width=0.45\textwidth]{../Figures/Viscoplastic.pdf}\\ -\end{tabular} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Terminology Definitions} - -\begin{minipage}{\textwidth} -\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} -\hline -\rowcolor[gray]{0.9} -Label: & D\_YieldFunction\\ \hline -Symbol: & $F = F(\bm{\sigma}, \kappa)$\\ \hline -Type: & $(\mbox{tensor2DT} \times \mathbb{R}) \rightarrow \mathbb{R}$\\ \hline -%Units: & --\\ \hline -Related: & {D\_Stress}, {D\_HardeningParameter}\\ \hline %originally related items, shorted for space -Sources: & ...\\ -\hline Descrip: & The yield function defines a surface $F = 0$ in the six dimensional stress space ...\\ -%\hline History: & Created -- June 15, 2007\\ -\hline -\end{tabular} -\end{minipage} - -\begin{center} -{ -\includegraphics[width=0.35\textwidth]{../Figures/YieldHardeningAndPlastPotential.pdf} -} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Goal Statement} - -\noindent -\begin{minipage}{\textwidth} -\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} -\hline -\rowcolor[gray]{0.9} -Label: & G\_StressDetermination\\ \hline -Descrip: & Given the initial stress and the deformation history of a material particle, determine the stress -within the material particle.\\ -\hline -Refine: & {T\_ConstitEquation}\\ \hline -%History: & Created -- June 8, 2007\\ \hline -\end{tabular} -\end{minipage} - -\begin{center} -{ -\includegraphics[width=0.5\textwidth]{../Figures/StressTensor.pdf} -} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Assumptions} - -\begin{minipage}{\textwidth} -\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} -\hline -\rowcolor[gray]{0.9} -Label: & A\_AdditivityPostulate\\ \hline -Related: & {D\_StrainRate}\\ \hline -Equation: & $\dot{\bm{\epsilon}} = \dot{\bm{\epsilon}}^e + \dot{\bm{\epsilon}}^{\mathit{vp}}$\newline -with the following types and units\newline -$\dot{\bm{\epsilon}}: \mbox{tensor2DT}$ (1/t) (1/s)\newline -$\dot{\bm{\epsilon}}^e: \mbox{tensor2DT}$ (1/t) (1/s)\newline -$\dot{\bm{\epsilon}}^{\mathit{vp}}: \mbox{tensor2DT}$ (1/t) (1/s)\\ \hline -Descrip: & The total strain rate ($\dot{\bm{\epsilon}}$) is assumed to decompose into elastic -($\dot{\bm{\epsilon}}^e$) and viscoplastic ($\dot{\bm{\epsilon}}^{\mathit{vp}}$) -strain rates.\\ \hline -Rationale & This is a standard assumption for elastoplastic and elastoviscoplastic materials. The -appropriateness of this assumption is born out by the success of theories built upon it.\\ \hline -Source: & [6, page 339]; [7, page 181]\\ \hline %references hard-coded -%History: & Created -- June 11, 2007\\ \hline -\end{tabular} -\end{minipage} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Theoretical Model} - -\begin{minipage}{\textwidth} -\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} -\hline -\rowcolor[gray]{0.9} -Label: & T\_ConstitEquation\\ -\hline -Related: & {A\_CauchyStress}, {A\_DeformationHistory}, {A\_PerzynaConstit}, {A\_AdditivityPostulate}, -{A\_ElasticConstit}, {A\_DescriptionOfMotion}, {V\_MaterialProperties}\\ -\hline -Input: & $\bm{\sigma}_0: \mbox{tensor2DT}$ (StressU) (Pa)\newline -$t_{\mathit{begin}}: \mathbb{R}$ (t) (s) \newline -$t_{\mathit{end}}: \mathbb{R} $ (t) (s) \newline -$\dot{\bm{\epsilon}}(t) : \{ t: \mathbb{R} | t_{\mathit{begin}} \leq t \leq t_{\mathit{end}} : t \} \rightarrow -\mbox{ } \mbox{ } \mbox{ tensor2DT}$ (1/t) (1/s)\newline -$\mathit{mat\_prop\_val}: \mbox{string} \rightarrow \mathbb{R}$\newline -$E: \mathbb{R}^{+}$ (StressU) (Pa)\newline -$\nu: \mbox{poissonT}$ (dimensionless) -\\ -\hline -\end{tabular} -\end{minipage} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Theoretical Model Continued} - -\begin{minipage}{\textwidth} -\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} -\hline -\rowcolor[gray]{0.9} -Label: & T\_ConstitEquation\\ -\hline -Output: & $\bm{\sigma}(t): \{ t: \mathbb{R} | t_{\mathit{begin}} \leq t \leq t_{\mathit{end}} : t \} \rightarrow -\mbox{tensor2DT}$ such that -$$\dot{\bm{\sigma}} = \mathbf{D} \left ( \dot{\bm{\epsilon}} - \gamma < \phi (F(\bm{\sigma},\kappa) ) > -\frac { -\partial Q (\bm{\sigma})}{ -\partial \bm{\sigma}} \right ) -$$ -and $\bm{\sigma}(t_{\mathit{begin}}) = \bm{\sigma}_0$, -the components of $\bm{\sigma}$ have the units of StressU (Pa)\\ -\hline -Derive: & The governing differential equation is found by first solving for $\dot{\bm{\epsilon}}^e$ -in {A\_AdditivityPostulate} and then ...\\ -\hline -Descrip: & The theoretical model is only completely defined once the associated -variabilities~({V\_MaterialProperties}) that define the -material have been set. ...\\ -\hline History: & Created -- June 14, 2007\\ -\hline -\end{tabular} -\end{minipage} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Variabilities} - -\begin{itemize} -\item $F = F(\bm{\sigma}, \kappa): \mathbb{R}^6 \times \mathbb{R} \rightarrow \mathbb{R}$ -\item $Q = Q(\bm{\sigma}): \mathbb{R}^6 \rightarrow \mathbb{R}$ -\item $\kappa = \kappa(\bm{\epsilon}^{\mathit{vp}}): \mathbb{R}^6 \rightarrow \mathbb{R}$ -\item $\phi = \phi(F): \mathbb{R} \rightarrow \mathbb{R}$ -\item $\gamma: \mathbb{R}$ -\item $\mathit{mat\_prop\_names}: \mbox{set of string}$ -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Dependency Graph} %between commonalities - -\begin{center} -{ -\includegraphics[width=1\textwidth]{../Figures/DependenceGraph.pdf} -} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Dependency Graph Between Commonalities and Variabilities} - -\begin{center} -{ -\includegraphics[width=1\textwidth]{../Figures/DependenceOfVariabilities.pdf} -} -\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Example} - -\begin{minipage}{\textwidth} -\begin{tabular}{| p{0.24\textwidth} | p{0.65\textwidth}|} -\hline -\rowcolor[gray]{0.9} -Label: & E\_StrainHardening\\ \hline -{V\_MatName} & $\mathit{name = }$``Strain-Hardening Viscoelastic''\\ -\hline -{V\_YieldFunct} & $F = q \kappa^{\frac{n-1}{m}}$ (StressU) (Pa)\\ \hline -{V\_PlasticPot} & $Q = q$ (StressU) (Pa)\\ \hline -{V\_HardParam} & $\kappa = \epsilon_q^{\mathit{vp}}$ (L/L) (m/m)\\ -\hline -{V\_Phi} & $\phi = F^{\frac{m}{n}}$ ($\mbox{StressU}^{\frac{m}{n}}$) ($\mbox{Pa}^{\frac{m}{n}}$)\\ -\hline -{V\_FluParam} & $\gamma = n A^{\frac{1}{n}}$ ($\mbox{StressU}^{-m} \mbox{t}^{-1}$) ($\mbox{Pa}^{-m} \mbox{s}^{-1}$)\\ \hline -{V\_MatProps} & $\mathit{mat\_prop\_names} = $ \{``$A$'', ``$m$'', ``$n$'' \}, where the type of the -material properties are ...\\ -%There is likely an upper limit on the values for $m$ and $n$, but at this time the value of these limits is unclear. -%With respect to units, $m$ and $n$ do not have units and $A$ has units of $\mbox{StressU}^{-m} \mbox{t}^{-1}$ ($\mbox{Pa}^{-m}%% -%\mbox{s}^{-1}$) -\hline -{V\_Description} & $\mathit{descript =}$ ``This constitutive equation combines a power-law viscoelastic -material with a strain hardening (softening) material. ...'' -\\ \hline -%Source & \cite{Smith2001} -%\\ \hline -%History & Created -- Sept 21, 2007\\ \hline -\end{tabular} -\end{minipage} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Code Generation} - -\begin{itemize} -\item Specify variabilities -\item Symbolically calculate terms needed by numerical algorithm, including $\frac{ \partial Q}{ \partial -\bm{\sigma}}$, $\frac{\partial F}{\partial \bm{\sigma}}$, etc. -\item Symbolic processing avoids tedious and error-prone hand calculations -\begin{itemize} -\item Reduces workload -\item Allows non-experts to deal with new problems -\item Increases reliability -\end{itemize} -\item Use Maple Computer Algebra System for model manipulation -\item Convert math expressions into C expressions using ``CodeGeneration'' -\item Inline into a C++ class defining the material model -\item A finite element program can this interface to realize the numerical algorithm -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame}[fragile] - -\frametitle{BNF of DSL for $F$} - -\begin{grammar} -[(colon){$\rightarrow$}] -[(semicolon){$|$}] -[(comma){}] -[(period){\\}] -[(quote){\begin{bf}}{\end{bf}}] -[(nonterminal){$\langle$}{$\rangle$}] -<expression>:<number>;\\ -(<expression>);\\ -<expression>,\^{ },<expression>;\\ -<expression>,$*$,<expression>;\\ -\end{grammar} -~~~~~~~... -\begin{grammar} -[(colon){$\rightarrow$}] -[(semicolon){$|$}] -[(comma){}] -[(period){\\}] -[(quote){\begin{bf}}{\end{bf}}] -[(nonterminal){$\langle$}{$\rangle$}] -<simulation-variable-F>;<user-defined-constants>. -<simulation-variable-F>:"Kappa";<simulation-variable-stress>;<simulation-variable-stress-macros>. -<simulation-variable-stress>:"SigmaXX";"SigmaYY";"SigmaZZ";"SigmaXY";\\ -"SigmaYZ";"SigmaXZ". -<simulation-variable-stress-macros>:"Sxx";"Syy";"Szz";"Sxy";"Syz";"Sxz";"Sm";"J2";"J3";"q". -<user-defined-constants>:<string>. -\end{grammar} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Concluding Remarks} -\begin{itemize} -\item Case studies of applying software engineering methodologies to mesh generating systems and linear solvers -\item Appropriate and advantageous to apply program family strategy -\item Challenges for software engineers -\item General purpose scientific software is best studied as a program family -\begin{itemize} -\item Variabilities are assumptions about problems that can be handled -\item Derive requirements from commonality analysis -\end{itemize} -\item Eventually hope for automatic code generation -\end{itemize} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Concluding Remarks (Continued)} - -A new methodology for documenting requirements for general purpose scientific computing software - -\setcounter{temp}{0} - -\begin{enumerate} -\setcounter{enumi}{\value{temp}} - -\item Validatable requirements -\begin{itemize} -\item Relative comparison between program family members -\item Focus on description rather than specification -\item Solution validation strategy -\end{itemize} -\item Abstract -\begin{itemize} -\item Refine goal statement to theoretical model to input assumptions -\item In some cases one may want to turn off input checking -\item Connection to design -\end{itemize} - -\setcounter{temp}{\value{enumi}} -\end{enumerate} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Concluding Remarks (Continued)} - -\begin{enumerate} -\setcounter{enumi}{\value{temp}} - -\item NFRs -\begin{itemize} -\item Relative comparison -\item AHP -\end{itemize} -\item Capture and reuse -\begin{itemize} -\item Systematic consideration from general to specific -\item CA refined by a family of SRSs -\item CA and SRS summarize existing knowledge and currently available software -\item Standard template allows comparison -\item Convenient framework for summarizing existing literature -\end{itemize} - -\setcounter{temp}{\value{enumi}} -\end{enumerate} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle<presentation>{Concluding Remarks} - -\begin{itemize} -\item A new template for a family of models of physical phenomena -\item Refinement of \structure{Goals} to \structure{Theoretical Models} using \structure{Data Definitions} and -\structure{Assumptions} -\item \structure{Variabilities} are identified in the Theoretical Model -\item A constitutive equation can be written using a (declarative) DSL and the code can be generated -\item A DSL has been built, using Maple, for a virtual material testing laboratory -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle<presentation>{Concluding Remarks} - -\begin{itemize} -\item SC software is a great candidate for development as a program family -\item Produce programs that are as special or general purpose as needed % run time bindings -\item Improve reusability, usability and reliability -\item Potential to improve performance -\item A commonality analysis facilitates the design of a DSL -\item Symbolic processing and code generation are very useful techniques -\item \structure{We will return to code generation later} -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \begin{frame}[allowframebreaks] \frametitle{References} diff --git a/Lectures/L06_ProgFamContinued/ProgFamContinued.pdf b/Lectures/L06_ProgFamContinued/ProgFamContinued.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d557e3cbdda08131e07724a8557197113c0e4a21 Binary files /dev/null and b/Lectures/L06_ProgFamContinued/ProgFamContinued.pdf differ diff --git a/Lectures/L06_ProgFamContinued/ProgFamContinued.tex b/Lectures/L06_ProgFamContinued/ProgFamContinued.tex index 13d873576c58eac92c88c4dd703563c167378d89..6730495f091cfc5bbd49325bdd23755d1135d520 100755 --- a/Lectures/L06_ProgFamContinued/ProgFamContinued.tex +++ b/Lectures/L06_ProgFamContinued/ProgFamContinued.tex @@ -62,8 +62,6 @@ \bi \item Administrative details \item Questions? -\item License and copyright -\item Motivation \item Proposed Family Methods \item Family of Mesh Generators \item Family of Linear Solvers @@ -77,19 +75,8 @@ \frametitle{Administrative Details} \bi -\item Add me to your GitHub repos, my GitHub id is \texttt{smiths} -\item Assign me an issue to review your problem statements -\bi -\item Clearly state that you would like me to review your problem statement -\item Include a link to your problem statement -\ei -\item Updates to SRS template -\item Commonality analysis should start from SRS template -\item Presentations -\bi -\item VGA by default, ask if need adapter -\item Can you my laptop -\ei +\item Marking scheme for SRS +\item Grade columns in Avenue \ei \end{frame} @@ -117,11 +104,1210 @@ Final Documentation & Week 13 & Dec 6\\ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame} +\frametitle{Administrative Details: Presentation Schedule} + +\bi +\item{SRS Present} +\bi +\item Tuesday: Paul, Isobel, Keshav +\item Friday: Devi, Shushen, Xiaoye +\ei +\item V\&V Present +\bi +\item Tuesday: Steven, Alexandre P., Alexander S. +\item Friday: Geneva, Jason, Yuzhi +\ei +\item MG Present +\bi +\item Tuesday: Xiaoye, Shushen, Devi, Keshav, Alex P, Paul +\item Friday: Yuzhi, Jason, Geneva, Alex S, Isobel, Steven +\ei +\item MIS Present +\bi +\item Tuesday: Isobel, Keshav, Paul +\item Friday: Shushen, Xiaoye, Devi +\ei +\item Impl.\ Present +\bi +\item Tuesday: Alexander S., Steven, Alexandre P. +\item Friday: Jason, Geneva, Yuzhi +\ei + +\ei + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{frame} \frametitle{Questions?} \begin{itemize} -\item Questions about ... +\item Questions about +\bi +\item SRS presentations? +\item SRS documents? +\item LaTeX? +\ei +\end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Overview of Process} + +\begin{center} + \includegraphics[width=1.0\textwidth]{../Figures/Waterfall.pdf} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{CA to SRS to Design} + +\begin{center} +\includegraphics[width=1.0\textwidth]{../Figures/OverviewOfMethodology.pdf} +\end{center} + +% mention an overview of what goes in the boxes + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Proposed Methodology} + +\begin{enumerate} + +\item Identify family of interest +\begin{itemize} +\item Specific physical model? +\item Multipurpose tool? +\end{itemize} +\item Commonality Analysis (CA) +\begin{itemize} +\item Terminology +\item Commonalities +\item Variabilities +\item Parameters of variation +\item Binding time +\end{itemize} +\item Domain Specific Language (DSL) +\item Generation of family members + +\end{enumerate} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{CA Template From \cite{Smith2006}} + +\scalebox{1.0}{ +\begin{minipage}{0.94\columnwidth} +\begin{enumerate} + +\item{Reference Material:} +{a) Table of Contents} +{b) Table of Symbols} +{c) Abbreviations and Acronyms} + +\item{Introduction:} +{a) Purpose of the Document} +{b) Organization of the Document} + +\item{General System Description:} +{a) \structure{Potential} System Contexts} +{b) \structure{Potential} User Characteristics} +{c) \structure{Potential} System Constraints} + +\item Commonalities: +{a) Background Overview} +{b) Terminology Definition} +\structure{c) Goal Statements} +\structure{d) Theoretical Models} + +\item \structure{Variabilities: +{a) Input Assumptions} +{b) Calculation} +{c) Output}} + +\item{Traceability Matrix} + +\item{References} + +\end{enumerate} +\end{minipage} +} +% highlight parts to talk about +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Abstract Requirements} + +% explain how CAnal addresses this challenge +\begin{itemize} +\item Appropriate level of abstraction by refining from goal to theory to input assumptions +\item A goal is a functional objective the software should achieve: \newline +\structure{\textbf{G1:} Find the roots of an equation} +\item Goals are refined into theoretical models: \newline +% presented as they would be presented in a mathematics textbook +\structure{\textbf{T1:} Given a function $f(x)$ and an interval $ \{ x | x_{lower} \leq x_{upper} \} $, +return the points where $f(x) = 0$} +\item Introduce simplifying assumptions to allow theoretical model to be solved:\newline +\structure{\textbf{VA1,2:} $f(x)$ is continuous on the interval and/or $f(x)$ has at least one sign change on the +interval} +%traceability matrix? +\end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Abstract Requirements (Continued)} + +\begin{itemize} +\item Each variability has an associated parameter of variation and a binding time +\begin{itemize} +\item Specification time +\item Compile time +\item Run time +\end{itemize} +\end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Capture Existing Knowledge} + +\begin{itemize} +\item Systematic consideration from general to specific +\item Communication between experts +\item Standard template allows comparison +\item Convenient framework for summarizing existing literature +\item Eventually a library of requirements documentation +% \item Same goal may have different theoretical models +\item CA refined by a family of SRSs +\end{itemize} +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{System Requirements Specification (SRS)} + +\begin{itemize} + +\item Based on IEEE Standard 830 and Volere requirements specification template +\item Sections from CA are refined in SRS +\item ``Potential'' descriptions are made specific +\item Variabilities are set +\item Binding times are set + +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{SRS Template} + +\scalebox{1.0}{ +\begin{minipage}{0.94\columnwidth} +\begin{enumerate} + +\item{Reference Material}%: +%{a) Table of Contents} +%{b) Table of Symbols} +%{c) Abbreviations and Acronyms} + +\item{Introduction}%: +%{a) Purpose of the Document} +%{b) Scope of the Software Product} +%{c) Organization of the Document} + +\item{General System Description}%: +%{a) System Context} +%{b) User Characteristics} +%{c) System Constraints} + +\item {Specific System Description:} +{a) Background Overview,} +{b) Terminology Definition,} +{c) Goal Statements} +{d) Theoretical Models,} +{e) Assumptions,} +{f) Data Constraints,} +{g) System Behaviour} + +\structure{\item Non-functional Requirements: +{a) Accuracy of Input Data,} +{b) Sensitivity of the Model,} +{c) Tolerance of Solution,} +{d) Performance,} +{...} +{i) Portability,}} + +\structure {\item {Solution Validation Strategies,}} + +\item{Other System Issues:} +%{ Open Issues} +%{ Off-the-Shelf Solutions} +%{ New Problems} +%{ Waiting Room} + +\item{Traceability Matrix} + +%\item List of Possible Changes in the Requirements + +%\item{Values of Auxiliary Constants} + +%\item{References} + +\end{enumerate} +\end{minipage} +} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{NFRs} + +\begin{itemize} + +\item Rather than absolute quantification of NFRs, use relative comparison between other program family members +\item Specify requirements in big O notation +% makes the requirement validatable +%\item Identify benchmark test problems %system test plan +%\item A posteriori description, rather than a priori specification +\item Relative importance between NFRs using Analytic Hierarchy Process (AHP) \cite{Saaty1980} +\begin{itemize} +\item Addresses challenge of comparing attributes that are measured in different (or hard to quantify) units +\item Series of pair-wise comparisons between attributes +\item 1 for equal importance, 3 for moderately strong importance, ..., 9 for extreme importance +\end{itemize} + +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Validatable Requirements} + +\begin{itemize} + +%\item Rather than absolute quantification of NFRs, use relative comparison between other program family members +% makes the requirement validatable +\item Relative comparison between programs is a validatable requirement +\item Focus on a posteriori description, rather than a priori specification +% experiment with the software, as experiment with nature +\item Solution validation strategies +\begin{itemize} +\item Solve using different techniques +\item Identify benchmark test problems %system test plan +\item Test cases built starting from assumed solutions (Method of Manufactured Solutions) +\item Partially validate for a simpler subset where the solution is known +\end{itemize} + +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Mesh Generating Software} +\begin{figure} +\begin{center} +\rotatebox{0} +{ + \includegraphics[width=0.9\textwidth]{../Figures/ExampleMesh.pdf} +} +%\caption{Example finite element mesh} +\end{center} +\end{figure} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Commonality Analysis for a Mesh Generator} + +From Chen's work \cite{Chen2003, SmithAndChen2004, SmithAndChen2004b}. +Alternate approach in \cite{BastarricaAndHitschfeld2006, RosselEtAl2014, + BastarricaAndHitschfeld-Kahler2004, + Bastarrica2002, BastarricaAndHitschfeld2004} + +\begin{itemize} + +\item Terminology +\begin{itemize} +\item requirement +\item structured mesh, ... +\end{itemize} + +\item Commonalities +\begin{itemize} +\item discretization +\item input from user is required, ... +\end{itemize} + +\item Variabilities +\begin{itemize} +\item shape of elements +\item coordinate system used, ... +\end{itemize} + +\item Parameters of variation +\begin{itemize} +\item line, triangle, quadrilateral, tetrahedral, hexahedral +\item Cartesian, polar, spherical, ... +\end{itemize} + +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Definition of a Mesh} +Let $\Omega$ be a closed bounded domain in $\mathbb{R}$ or $\mathbb{R}^2$ or $\mathbb{R}^3$ +and let $K$ +be a simple shape, such as a line segment in 1D, a triangle or a quadrilateral in 2D, or a tetrahedron or hexahedron +in 3D. A mesh of $\Omega$, denoted by $\tau$, has the following properties: +\begin{enumerate} +\item $\Omega \approx \cup(K | K \epsilon \tau : K)$, where $\cup$ is first closed and then opened +\item the length of every element $K$, of dimension 1, in $\tau$ is greater than zero +\item the interior of every element $K$, of dimension 2 or greater, in $\tau$ is nonempty +\item the intersection of the interior of two elements is empty +\end{enumerate} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Example Commonality} + +\newcommand{\colACwidth}{0.25\textwidth} +\newcommand{\colBCwidth}{0.7\textwidth} + +\begin {tabular}{| p{\colACwidth} | p{\colBCwidth}|} +\hline +{\bf Item Number} & C1\\ +\hline +{\bf Description} & A mesh generator discretizes a given computational domain (closed boundary $\Omega$) into a covering +up of a finite number of simpler shapes.\\ +\hline +{\bf Related Variability} & V6, V8, V12, V14, V15, V16, V17, V18\\ +\hline +{\bf History} & Created - May 7, 2004\\ +\hline +\end {tabular} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame} + +\frametitle{Mesh Generator (MG) Goals} + +\begin{enumerate}[G1] + +\item Input spatial domain $\Omega$ output a mesh $M$ that covers this domain. + +\item Transform information on the materials, material properties and the +locations of the different materials + +\item Transform information on the boundary condition types, values and locations + +\item Transform system information, such as numerical algorithm parameters +%values needed by the subsequent +%processing step (for instance initial time, time step size, degree of implicitness, etc.) + +\end{enumerate} + +\end{frame} + +% TO DO - add a slide for the theoretical model? - no room +% TO DO - mention output file format variability via XSLT? - mention during talk, but no room on slides +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Element Variability} + +Location of nodes: sequence of LocationT \\ +Number of dof at nodes: sequence of $\mathbb{N}$ \\ +LocationT = tuple of ($L_1: \mbox{natT}$, $L_2: \mbox{natT}$, $L_3: \mbox{natT}$)\\ +natT = \{ $s: \mathbb{R} | 0 \leq s \leq 1 : s$ \}\\ + +\begin{center} +%\rotatebox{-90} +{ + \includegraphics[width=0.5\textwidth]{../Figures/TriangleElement.pdf} +} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Local Topology Variability} + +\begin{center} +{ +\includegraphics[width=0.65\textwidth]{../Figures/TopologyPatterns.pdf} +} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame}[fragile] + +\frametitle{DSL Using XML} + +\lstset{language=XML,linewidth=.9\textwidth,xleftmargin=0.5cm} +\begin{lstlisting}%[frame=single] + +<elementSet> + <geometrySpec> + <shape>triangle1</shape> + <nodeGeo count="3"> + <node id="1"> + <location>1,0,0</location> + </node> + <node id="2"> + <location>0,1,0</location> + </node> + ... + </nodeGeo> + </geometrySpec> +</elementSet> +\end{lstlisting} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Proof of Concept Implementation} + +From Cao's work \cite{Cao2006, SmithMcCutchanAndCao2007} +\begin{itemize} +\item XML document that customizes a Java object +\item The Java object customizes the general purpose MG as it is loaded +\item General purpose MG +\begin{itemize} +\item All variabilities bound at run-time +\item Corresponds to an empty XML specification +\end{itemize} \end{itemize} + +\begin{center} +{ +\includegraphics[width=0.4\textwidth]{../Figures/elementdialog2.png} +} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Linear Systems of Equations} + +$$A x = b$$ + +Commonality analysis presented in \cite{Smith2006} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\begin{frame} + +%\frametitle{Terminology} + +%\begin{tabular}{ l p{5.5cm}} +%$n: \mathbb{N}$ & number of linear equations and the number of unknowns\\ +%$A: \mathbb{R}^{n \times n}$ & $n \times n$ real matrix\\ +%$x: \mathbb{R}^{n \times 1}$ & $n \times 1$ real column vector\\ +%$b: \mathbb{R}^{n \times 1}$ & $n \times 1$ real column vector\\ +%$I: \mathbb{R}^{n \times n}$ & an $n \times n$ matrix where all entries are $0$, except for the diagonal entries, which +%are $1$\\ +%$A^{-1}: \mathbb{R}^{n \times n}$ & the inverse matrix, with the property that $A^{-1} A = I$\\ +%$|| v || $ & the norm (estimate of magnitude) of vector $v$\\ +%residual & $|| b - A x ||$\\ +%singular & matrix $A$ is singular if $A^{-1}$ does not exist\\ +%\end{tabular} + +%\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Goal and Theoretical Model} + +\textbf{G1}: Given a system of $n$ +linear equations represented by matrix $A$ and column vector $b$, return $x$ such that $A x = b$, if possible + +\textbf{T1}: Given square matrix $A$ and column vector $b$, the possible +solutions for $x$ are as follows: + +\begin{enumerate} +\item A unique solution $x = A^{-1} b$, if $A$ is nonsingular +\item An infinite number of solutions if $A$ is singular and $b \in span(A)$ +\item No solution if $A$ is singular and $b \notin span(A)$ +\end{enumerate} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Variabilities for Input Assumptions} + +\begin{tabular}{| p{\colA} | p{\colB} | } +\hline +\textbf{Variability} & \textbf{Parameter of Variation} \\ +\hline +Allowed structure $A$ & Set of \{ full, sparse, banded, tridiagonal, block triangular, ..., +%block structured, diagonal, upper triangular, lower triangular, +Hessenberg \} \\ +\hline +Allowed definiteness $A$ & Set of \{ not definite, positive definite, ..., +%positive semi-definite, negative definite, +negative semi-definite \} \\ +\hline +Allowed class of $A$ & Set of \{ diagonally dominant, Toeplitz, Vandermonde \} \\ +\hline +Symmetry\newline assumed? & boolean \\ +\hline +Possible values for $n$ & set of $\mathbb{N}$ \\ +\hline +Possible entries in $A$ & set of $\mathbb{R}$ \\ +\hline +... & ... \\ +%Possible entries in $b$ & set of $\mathbb{R}$ \\ +%\hline +%Source\newline of input & Set of \{ from a file, through the user interface, passed in memory \} \\ +%\hline +%Encoding of input & Set of \{binary, text \} \\ +%\hline +%Format\newline of input $A$ & Set of \{arbitrary, by row, by column, by diagonal \} \\ +%\hline +%Format\newline of input $b$ & Set of \{arbitrary, ordered \} \\\hline +\end{tabular} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Variabilities for Calculation} + +\begin{tabular}{| p{\colA} | p{\colB} | } +\hline +\textbf{Variability} & \textbf{Parameter of Variation} \\ +\hline +Check input? & boolean (false if the input is assumed to satisfy the input assumptions)\\ +\hline +Exceptions generated? & boolean (false if the goal is non-stop arithmetic)\\ +\hline +Norm used for residual & Set of \{1-norm, 2-norm, $\infty$-norm \} \\ +\hline +\end{tabular} + +% mention turning off input checking helps with problem of theoretical model refined by assumpts + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Variabilities for Output} + +\begin{tabular}{| p{\colA} | p{\colB} | } +\hline +\textbf{Variability} & \textbf{Parameter of Variation} \\ +\hline +Destination for output $x$ & Set of \{ to file, to screen, to memory \} \\ +\hline +Encoding of output $x$ & Set of \{binary, text \} \\ +\hline +Format of output $x$ & Set of \{arbitrary, ordered \} \\ +\hline +Output residual & boolean (true if the program returns the residual) \\ +\hline +Possible entries in $x$ & set of $\mathbb{R} \cup \{- \infty, \infty, undef \}$ \\ +\hline +\end{tabular} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Analytic Hierarchy Process} + +\begin{itemize} +\item Example 1 +\begin{itemize} +\item Embedded real-time system for digital signal processing +\item $n = 10$ +\item $A$ is assumed to be Toeplitz +\end{itemize} +\end{itemize} + +\begin{tabular}{| l | l | l | l | l |} +\hline +~ & \textbf{Speed} & \textbf{Accuracy} & \textbf{Portability} & \textbf{Priority}\\ +\hline +\textbf{Speed} & 1 & 3 & 5 & 0.64\\ +\textbf{Accuracy} & 1/3 & 1 & 3 & 0.26\\ +\textbf{Portability} & 1/5 & 1/3 & 1 & 0.11\\ +\hline +\end{tabular} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\begin{frame} + +%\frametitle{AHP Continued} + +%\begin{itemize} +%\item Example 2 +%\begin{itemize} +%\item Structural mechanics software for education +%\item $10 \leq n \leq 1000$ +%\item $A$ is assumed to be positive definite +%\item Would have different relative priorities +%\end{itemize} +%\end{itemize} + +%\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Solution Validation Strategies} + +\begin{itemize} +\item Create test cases with known solutions +\begin{itemize} +\item Assume $A$ and $x$, calculate $b$ +\item Given $A$ and $b$ calculate $x^*$ and compare to the assumed $x$ +\end{itemize} +\item Comparison with Matlab +\item Comparison with NAG library +\item Where possible compare solution to interval arithmetic solution +\item Experiments to describe how accuracy changes with increasing condition number +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Connection to Design} + +\begin{itemize} + +\item Abstract requirements to concrete design decisions +%\item Software packages likely already exist within the program family +\item Reuse existing packages within the program family +\item Summarize existing software by the parameters of variation and binding time +%\item Run time binding can often be changed to specification time binding +\item If functional requirements match, then use NFRs +\begin{itemize} +\item AHP to compare each design against each of the NFRs %as done in SRS +%cols and rows are des alternatives, compared against a given NFR +%repeat for each NFR +\item Contribution of each NFR for each design alternative is found by multiplying the contribution of +each alternative to the given NFR with the corresponding priority of that NFR +\item Sum the contributions +\item The highest overall score is the ``winning'' alternative +\end{itemize} + +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{A Family of Material Models} + +From McCutchan's work \cite{CaretteEtAl2008, SmithMcCutchanAndCao2007, + SmithEtAl2008, CaretteEtAl2007_TR, SmithMcCutchanAndCarette2017, McCutchan2007} + +\begin{center} +{ +\includegraphics[width=0.5\textwidth]{../Figures/TestSpecimenUniaxial.pdf} +} +\end{center} + +\begin{center} +\begin{tabular}{cc} +\includegraphics[width=0.45\textwidth]{../Figures/Plastic.pdf} & +\includegraphics[width=0.45\textwidth]{../Figures/Viscoplastic.pdf}\\ +\end{tabular} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Terminology Definitions} + +\begin{minipage}{\textwidth} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} +\hline +\rowcolor[gray]{0.9} +Label: & D\_YieldFunction\\ \hline +Symbol: & $F = F(\bm{\sigma}, \kappa)$\\ \hline +Type: & $(\mbox{tensor2DT} \times \mathbb{R}) \rightarrow \mathbb{R}$\\ \hline +%Units: & --\\ \hline +Related: & {D\_Stress}, {D\_HardeningParameter}\\ \hline %originally related items, shorted for space +Sources: & ...\\ +\hline Descrip: & The yield function defines a surface $F = 0$ in the six dimensional stress space ...\\ +%\hline History: & Created -- June 15, 2007\\ +\hline +\end{tabular} +\end{minipage} + +\begin{center} +{ +\includegraphics[width=0.35\textwidth]{../Figures/YieldHardeningAndPlastPotential.pdf} +} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Goal Statement} + +\noindent +\begin{minipage}{\textwidth} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} +\hline +\rowcolor[gray]{0.9} +Label: & G\_StressDetermination\\ \hline +Descrip: & Given the initial stress and the deformation history of a material particle, determine the stress +within the material particle.\\ +\hline +Refine: & {T\_ConstitEquation}\\ \hline +%History: & Created -- June 8, 2007\\ \hline +\end{tabular} +\end{minipage} + +\begin{center} +{ +\includegraphics[width=0.5\textwidth]{../Figures/StressTensor.pdf} +} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Assumptions} + +\begin{minipage}{\textwidth} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} +\hline +\rowcolor[gray]{0.9} +Label: & A\_AdditivityPostulate\\ \hline +Related: & {D\_StrainRate}\\ \hline +Equation: & $\dot{\bm{\epsilon}} = \dot{\bm{\epsilon}}^e + \dot{\bm{\epsilon}}^{\mathit{vp}}$\newline +with the following types and units\newline +$\dot{\bm{\epsilon}}: \mbox{tensor2DT}$ (1/t) (1/s)\newline +$\dot{\bm{\epsilon}}^e: \mbox{tensor2DT}$ (1/t) (1/s)\newline +$\dot{\bm{\epsilon}}^{\mathit{vp}}: \mbox{tensor2DT}$ (1/t) (1/s)\\ \hline +Descrip: & The total strain rate ($\dot{\bm{\epsilon}}$) is assumed to decompose into elastic +($\dot{\bm{\epsilon}}^e$) and viscoplastic ($\dot{\bm{\epsilon}}^{\mathit{vp}}$) +strain rates.\\ \hline +Rationale & This is a standard assumption for elastoplastic and elastoviscoplastic materials. The +appropriateness of this assumption is born out by the success of theories built upon it.\\ \hline +Source: & [6, page 339]; [7, page 181]\\ \hline %references hard-coded +%History: & Created -- June 11, 2007\\ \hline +\end{tabular} +\end{minipage} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Theoretical Model} + +\begin{minipage}{\textwidth} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} +\hline +\rowcolor[gray]{0.9} +Label: & T\_ConstitEquation\\ +\hline +Related: & {A\_CauchyStress}, {A\_DeformationHistory}, {A\_PerzynaConstit}, {A\_AdditivityPostulate}, +{A\_ElasticConstit}, {A\_DescriptionOfMotion}, {V\_MaterialProperties}\\ +\hline +Input: & $\bm{\sigma}_0: \mbox{tensor2DT}$ (StressU) (Pa)\newline +$t_{\mathit{begin}}: \mathbb{R}$ (t) (s) \newline +$t_{\mathit{end}}: \mathbb{R} $ (t) (s) \newline +$\dot{\bm{\epsilon}}(t) : \{ t: \mathbb{R} | t_{\mathit{begin}} \leq t \leq t_{\mathit{end}} : t \} \rightarrow +\mbox{ } \mbox{ } \mbox{ tensor2DT}$ (1/t) (1/s)\newline +$\mathit{mat\_prop\_val}: \mbox{string} \rightarrow \mathbb{R}$\newline +$E: \mathbb{R}^{+}$ (StressU) (Pa)\newline +$\nu: \mbox{poissonT}$ (dimensionless) +\\ +\hline +\end{tabular} +\end{minipage} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Theoretical Model Continued} + +\begin{minipage}{\textwidth} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} +\hline +\rowcolor[gray]{0.9} +Label: & T\_ConstitEquation\\ +\hline +Output: & $\bm{\sigma}(t): \{ t: \mathbb{R} | t_{\mathit{begin}} \leq t \leq t_{\mathit{end}} : t \} \rightarrow +\mbox{tensor2DT}$ such that +$$\dot{\bm{\sigma}} = \mathbf{D} \left ( \dot{\bm{\epsilon}} - \gamma < \phi (F(\bm{\sigma},\kappa) ) > +\frac { +\partial Q (\bm{\sigma})}{ +\partial \bm{\sigma}} \right ) +$$ +and $\bm{\sigma}(t_{\mathit{begin}}) = \bm{\sigma}_0$, +the components of $\bm{\sigma}$ have the units of StressU (Pa)\\ +\hline +Derive: & The governing differential equation is found by first solving for $\dot{\bm{\epsilon}}^e$ +in {A\_AdditivityPostulate} and then ...\\ +\hline +Descrip: & The theoretical model is only completely defined once the associated +variabilities~({V\_MaterialProperties}) that define the +material have been set. ...\\ +\hline History: & Created -- June 14, 2007\\ +\hline +\end{tabular} +\end{minipage} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Variabilities} + +\begin{itemize} +\item $F = F(\bm{\sigma}, \kappa): \mathbb{R}^6 \times \mathbb{R} \rightarrow \mathbb{R}$ +\item $Q = Q(\bm{\sigma}): \mathbb{R}^6 \rightarrow \mathbb{R}$ +\item $\kappa = \kappa(\bm{\epsilon}^{\mathit{vp}}): \mathbb{R}^6 \rightarrow \mathbb{R}$ +\item $\phi = \phi(F): \mathbb{R} \rightarrow \mathbb{R}$ +\item $\gamma: \mathbb{R}$ +\item $\mathit{mat\_prop\_names}: \mbox{set of string}$ +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Dependency Graph} %between commonalities + +\begin{center} +{ +\includegraphics[width=1\textwidth]{../Figures/DependenceGraph.pdf} +} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Dependency Graph Between Commonalities and Variabilities} + +\begin{center} +{ +\includegraphics[width=1\textwidth]{../Figures/DependenceOfVariabilities.pdf} +} +\end{center} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Example} + +\begin{minipage}{\textwidth} +\begin{tabular}{| p{0.24\textwidth} | p{0.65\textwidth}|} +\hline +\rowcolor[gray]{0.9} +Label: & E\_StrainHardening\\ \hline +{V\_MatName} & $\mathit{name = }$``Strain-Hardening Viscoelastic''\\ +\hline +{V\_YieldFunct} & $F = q \kappa^{\frac{n-1}{m}}$ (StressU) (Pa)\\ \hline +{V\_PlasticPot} & $Q = q$ (StressU) (Pa)\\ \hline +{V\_HardParam} & $\kappa = \epsilon_q^{\mathit{vp}}$ (L/L) (m/m)\\ +\hline +{V\_Phi} & $\phi = F^{\frac{m}{n}}$ ($\mbox{StressU}^{\frac{m}{n}}$) ($\mbox{Pa}^{\frac{m}{n}}$)\\ +\hline +{V\_FluParam} & $\gamma = n A^{\frac{1}{n}}$ ($\mbox{StressU}^{-m} \mbox{t}^{-1}$) ($\mbox{Pa}^{-m} \mbox{s}^{-1}$)\\ \hline +{V\_MatProps} & $\mathit{mat\_prop\_names} = $ \{``$A$'', ``$m$'', ``$n$'' \}, where the type of the +material properties are ...\\ +%There is likely an upper limit on the values for $m$ and $n$, but at this time the value of these limits is unclear. +%With respect to units, $m$ and $n$ do not have units and $A$ has units of $\mbox{StressU}^{-m} \mbox{t}^{-1}$ ($\mbox{Pa}^{-m}%% +%\mbox{s}^{-1}$) +\hline +{V\_Description} & $\mathit{descript =}$ ``This constitutive equation combines a power-law viscoelastic +material with a strain hardening (softening) material. ...'' +\\ \hline +%Source & \cite{Smith2001} +%\\ \hline +%History & Created -- Sept 21, 2007\\ \hline +\end{tabular} +\end{minipage} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Code Generation} + +\begin{itemize} +\item Specify variabilities +\item Symbolically calculate terms needed by numerical algorithm, including $\frac{ \partial Q}{ \partial +\bm{\sigma}}$, $\frac{\partial F}{\partial \bm{\sigma}}$, etc. +\item Symbolic processing avoids tedious and error-prone hand calculations +\begin{itemize} +\item Reduces workload +\item Allows non-experts to deal with new problems +\item Increases reliability +\end{itemize} +\item Use Maple Computer Algebra System for model manipulation +\item Convert math expressions into C expressions using ``CodeGeneration'' +\item Inline into a C++ class defining the material model +\item A finite element program can this interface to realize the numerical algorithm +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame}[fragile] + +\frametitle{BNF of DSL for $F$} + +\begin{grammar} +[(colon){$\rightarrow$}] +[(semicolon){$|$}] +[(comma){}] +[(period){\\}] +[(quote){\begin{bf}}{\end{bf}}] +[(nonterminal){$\langle$}{$\rangle$}] +<expression>:<number>;\\ +(<expression>);\\ +<expression>,\^{ },<expression>;\\ +<expression>,$*$,<expression>;\\ +\end{grammar} +~~~~~~~... +\begin{grammar} +[(colon){$\rightarrow$}] +[(semicolon){$|$}] +[(comma){}] +[(period){\\}] +[(quote){\begin{bf}}{\end{bf}}] +[(nonterminal){$\langle$}{$\rangle$}] +<simulation-variable-F>;<user-defined-constants>. +<simulation-variable-F>:"Kappa";<simulation-variable-stress>;<simulation-variable-stress-macros>. +<simulation-variable-stress>:"SigmaXX";"SigmaYY";"SigmaZZ";"SigmaXY";\\ +"SigmaYZ";"SigmaXZ". +<simulation-variable-stress-macros>:"Sxx";"Syy";"Szz";"Sxy";"Syz";"Sxz";"Sm";"J2";"J3";"q". +<user-defined-constants>:<string>. +\end{grammar} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Concluding Remarks} +\begin{itemize} +\item Case studies of applying software engineering methodologies to mesh generating systems and linear solvers +\item Appropriate and advantageous to apply program family strategy +\item Challenges for software engineers +\item General purpose scientific software is best studied as a program family +\begin{itemize} +\item Variabilities are assumptions about problems that can be handled +\item Derive requirements from commonality analysis +\end{itemize} +\item Eventually hope for automatic code generation +\end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Concluding Remarks (Continued)} + +A new methodology for documenting requirements for general purpose scientific computing software + +\setcounter{temp}{0} + +\begin{enumerate} +\setcounter{enumi}{\value{temp}} + +\item Validatable requirements +\begin{itemize} +\item Relative comparison between program family members +\item Focus on description rather than specification +\item Solution validation strategy +\end{itemize} +\item Abstract +\begin{itemize} +\item Refine goal statement to theoretical model to input assumptions +\item In some cases one may want to turn off input checking +\item Connection to design +\end{itemize} + +\setcounter{temp}{\value{enumi}} +\end{enumerate} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle{Concluding Remarks (Continued)} + +\begin{enumerate} +\setcounter{enumi}{\value{temp}} + +\item NFRs +\begin{itemize} +\item Relative comparison +\item AHP +\end{itemize} +\item Capture and reuse +\begin{itemize} +\item Systematic consideration from general to specific +\item CA refined by a family of SRSs +\item CA and SRS summarize existing knowledge and currently available software +\item Standard template allows comparison +\item Convenient framework for summarizing existing literature +\end{itemize} + +\setcounter{temp}{\value{enumi}} +\end{enumerate} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle<presentation>{Concluding Remarks} + +\begin{itemize} +\item A new template for a family of models of physical phenomena +\item Refinement of \structure{Goals} to \structure{Theoretical Models} using \structure{Data Definitions} and +\structure{Assumptions} +\item \structure{Variabilities} are identified in the Theoretical Model +\item A constitutive equation can be written using a (declarative) DSL and the code can be generated +\item A DSL has been built, using Maple, for a virtual material testing laboratory +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} + +\frametitle<presentation>{Concluding Remarks} + +\begin{itemize} +\item SC software is a great candidate for development as a program family +\item Produce programs that are as special or general purpose as needed % run time bindings +\item Improve reusability, usability and reliability +\item Potential to improve performance +\item A commonality analysis facilitates the design of a DSL +\item Symbolic processing and code generation are very useful techniques +\item \structure{We will return to code generation later} +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\begin{frame}[allowframebreaks] +\frametitle{References} + +\bibliography{../../ReferenceMaterial/References} + \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Lectures/L09_VerificationAndValidation/VerificAndValid.pdf b/Lectures/L09_VerificationAndValidation/VerificAndValid.pdf new file mode 100644 index 0000000000000000000000000000000000000000..20cf1b5b423d00e509cf1d2345eadc22e6a47ef0 Binary files /dev/null and b/Lectures/L09_VerificationAndValidation/VerificAndValid.pdf differ diff --git a/Lectures/L09_VerificationAndValidation/VerificAndValid.tex b/Lectures/L09_VerificationAndValidation/VerificAndValid.tex new file mode 100755 index 0000000000000000000000000000000000000000..f0fac85f7aaa6057c2c3b42163708ac34da90e4f --- /dev/null +++ b/Lectures/L09_VerificationAndValidation/VerificAndValid.tex @@ -0,0 +1,132 @@ +%\documentclass[handout]{beamer} +\documentclass[t,12pt,numbers,fleqn]{beamer} +%\documentclass[ignorenonframetext]{beamer} + +\newif\ifquestions +%\questionstrue +\questionsfalse + +\usepackage{pgfpages} +\usepackage{hyperref} +\hypersetup{colorlinks=true, + linkcolor=blue, + citecolor=blue, + filecolor=blue, + urlcolor=blue, + unicode=false} +\urlstyle{same} + +\bibliographystyle{plain} + +%\usetheme{Iimenau} + +\useoutertheme{split} %so the footline can be seen, without needing pgfpages + +%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape] %if this is uncommented, the hyperref links do not work + +\mode<presentation>{} + +\input{../def-beamer} + +\newcommand{\topic}{09 Verification and Validation} + +\input{../titlepage} + +\begin{document} + +\input{../footline} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Verification and Validation} + +\bi +\item Administrative details +\item Questions? +\item License and copyright +\ei +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Administrative Details} + +\bi +\item GitHub issues for colleagues +\ei + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Administrative Details: Deadlines} +~\newline +\begin{tabular}{l l l} +\textbf{SRS} & Week 05 & Oct 4\\ +\textbf{V\&V Present} & Week 06 & Week of Oct 16\\ +\textbf{V\&V Plan} & Week 07 & Oct 25\\ +MG Present & Week 08 & Week of Oct 30\\ +MG & Week 09 & Nov 8\\ +MIS Present & Week 10 & Week of Nov 13\\ +MIS & Week 11 & Nov 22\\ +Impl.\ Present & Week 12 & Week of Nov 27\\ +Final Documentation & Week 13 & Dec 6\\ +\end {tabular} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Administrative Details: Presentation Schedule} + +\bi +\item V\&V Present +\bi +\item Tuesday: Steven, Alexandre P., Alexander S. +\item Friday: Geneva, Jason, Yuzhi +\ei +\item MG Present +\bi +\item Tuesday: Xiaoye, Shushen, Devi, Keshav, Alex P, Paul +\item Friday: Yuzhi, Jason, Geneva, Alex S, Isobel, Steven +\ei +\item MIS Present +\bi +\item Tuesday: Isobel, Keshav, Paul +\item Friday: Shushen, Xiaoye, Devi +\ei +\item Impl.\ Present +\bi +\item Tuesday: Alexander S., Steven, Alexandre P. +\item Friday: Jason, Geneva, Yuzhi +\ei + +\ei + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Questions?} +\begin{itemize} +\item Questions about ... +\end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame}[allowframebreaks] +\frametitle{References} + +\bibliography{../../ReferenceMaterial/References} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\end{document} \ No newline at end of file