
\label{chap:dag}


\ifthenelse {\boolean{paper}}
{
\abstract{ 

%% What I have done
%%
This paper presents a simple two level Failure Mode Modular De-Composition (FMMD)
model of a theoretical system.
Firstly a UML model is presented and the class relationships described.
Secondly the theoretical model is developed and analysed.
This model is then represented as a Directed Acyclic Graph (DAG), 
showing the data relationships between the {\fg}s
components and failure modes.

% What I have found
%%
From traversing the DAG, minimal cut sets (component level combinations
that cause system level failures) are revealed.
Common mode failure modes and same component dependencies
can also be automatically determined.

%% Sell it
%%
By having an FMMD data model, we can derive failure mode models 
for the traditional methodologies (such as FMEA, FMECA, FMEDA and FTA).
Also, with statistical data, we can use the minimal cut set results
to determine the likelihood of particular system failures, even
if they have multiple causes.
%
} % abstract
} % ifthenelse
{
 %%% CHAPTER INTO NEARLT THE SAME AS ABSTRACT
\section{Introduction}

This chapter 
presents a simple two stage FMMD % Failure Mode Modular De-Composition (FMMD)
model of a theoretical system.
The Analysis model is then represented as a Directed Acyclic Graph (DAG), of the {\fg}s
components and failure modes  represented in it.

% What I have found
%%
From traversing the DAG, minimal cut sets (component level combinations
that cause system level failures) are revealed.
Common mode failure modes and same component dependencies
can also be automatically determined.

%% Sell it
%%
By having an FMMD data model, we can derive failure mode models 
for the traditional methodologies (such as FMEA, FMECA, FMEDA and FTA).
Also, with statistical data, we can use the minimal cut set results
to determine the likelihood of particular system failures, even
if they have multiple causes.
}

%{ \huge This might become a chapter in its own right after fmmdset }
%\[ \xrightarrow{\hspace*{3cm}} \]

%\[ \xrightarrow{\hspace*{8cm}} \]

%\[ \xrightarrow{\hspace*{10cm}} \]

\section{From UML Model to Object Model}

Let us consider a theoretical FMMD model. For the sake of simplicity
consider that all base~components have %only 
two failure modes that
we will label $a$ and $b$.
We can start with some base components, of types C and K  say, $\{ C_1, C_2, C_3, K_4, C_5, C_6, K_7 \}$.

\input{./shortfg}
\input{./shortfm}


\paragraph{Determining Failure Mode collections.}
Thus applying the function $fm$ to any of the components
gives error modes identified by a or b.

As each component has two failure
modes $a$ and $b$. So the function $fm$ applied to
$C_1$ yields $C_{1 a}$ and $C_{1 b}$:
i.e. $fm(C_1) = \{ C_{1 a}, C_{1 b} \}$.

%HOW UML OBJECT MODEL OF COMPONENT AND ITS ERROR MODES

\ifthenelse {\boolean{paper}}
{
We can organise these into functional groups (where the superscript
represents the FMMD hierarchy level, or $\alpha$ value, thus:
}
{
We can organise these into functional groups (where the superscript 
represents the $\alpha$ value, or FMMD hierarchy level, see section \ref{alpha}), thus:
}

$$ FG^0_1 = \{C_1, C_2\},$$
$$ FG^0_2 = \{C_1, C_3, K_4\},$$
$$ FG^0_3 = \{C_5, C_6, K_7\}.$$

Note that in this model the base~component $C_1$ has been used in two separate functional groups. 
This could be a component that they 
both commonly use. A real world example of a component included in
more than one {\fg} could
be a power-supply or DCDC\footnote{A DCDC (direct current to direct current)
converter, is a common feature in modern PCBs, used to provide isolation
and/or voltage supplies at a different EMF from the source of power.} 
converter shared  to power
the functional groups $FG^0_1$ and $FG^1_1$.

Also note that the component type $K$ has been used by 
two different functional groups.

For the sake of example, let our temperature environment 
for the SYSTEM be ${{0}\oc}$ to ${{125}\oc}$, but let the component
type `K' have a de-graded performance
\footnote{A real world example of
degraded performance with temperature is the isolating opto coupler.
These can typically only cope with lower baud rate ranges
at high temperatures \cite{tlp181}.}
 failure mode between
${{80}\oc}$ and ${{125}\oc}$.
We can term this
degraded performance of component `K' as failure mode `d'.


\paragraph{Symptom Extraction.}
A process of symptom extraction is now applied to the functional groups.
Again for the sake of example, let us say that each functional
group has one or two symptoms again subscripted by $a$ and $b$.

%Applying symptom abstraction to $FG^0_1$ i.e. $\bowtie fm ( FG^0_1 ) = \{ FG^0_{1 a}, FG^0_{1 b}  \} $ 
%We can now create a new derived component, $C^1_1$, whose failure
%modes are the symptoms of $FG^0_1 $ thus $ fm ( {C}^1_1 )  = \{ FG^0_{1 a}, FG^0_{1 b}  \} $.

\paragraph{Building the Object Model}

Using the  UML model in figure \ref{fig:cfg2fmmd_data}, we  apply FMMD analysis stages
to build a hierarchy representing the whole system. 
We shall begin  with the $FG^0$ level functional groups $ FG^0_1, FG^0_2 $ and $FG^0_3$ defined above.

\begin{figure}[h]
 \centering
 \includegraphics[width=400pt,bb=0 0 702 464,keepaspectratio=true]{./fmmd_data_model/cfg2.jpg}
 % cfg2.jpg: 702x464 pixel, 72dpi, 24.76x16.37 cm, bb=0 0 702 464
 \caption{UML Class model for FMMD}
 \label{fig:cfg2fmmd_data}
\end{figure}

The UML model shows the relationships between data types (or classes) that
are used in the FMMD process.
The purpose of failure mode analysis, is to tie SYSTEM level failures
to their possible causes in the base components.
By doing this, accurate statistics can be obtained for SYSTEM level
failures, and an insight into how we can make the system safer
can be determined.
In order to do this, we need to be able to trace the component 
failure modes from the functional groups, to the symptoms
they cause, and to the failure modes in the {\dcs}.
We can use graph theory to represent this.
As it would make no sense for a derived component to
derive failure modes from itself, we can apply an acyclic constraint
to the graph. This means the graph must be a Directed Acylic 
Graph (DAG).

% %\begin{figure}[h]
%  \centering
%  \includegraphics[width=400pt,keepaspectratio=true]{./fmmd_data_model/cfg2.jpg}
%  % cfg2.jpg: 702x464 pixel, 72dpi, 24.76x16.37 cm, bb=0 0 702 464
%  \caption{Complete UML diagram}
%  \label{fig:cfg2fmmd_data}
% \end{figure}

%\pagebreak[4]
\subsection{Find Failure Modes}

Consider the SYSTEM environment with its temperature range of ${{0}\oc}$ to ${{125}\oc}$.
We must check this against all components used.
For our example, component `K' which has an extra 
failure mode for degraded performance `d'. Thus applying the function $fm$ 
to component type `K' under these temperature range conditions
gives the following failure modes, $fm(K) =\{ K^0_a, K^0_b, K^0_d \}$.
Were our system specified for a ${{0}\oc}$ to ${{80}\oc}$  range
we could say $fm(K) =\{ K^0_a, K^0_b \}$.

%\pagebreak[3]
\paragraph{Get the failure modes from the functional groups.}
Applying the function $fm$ to our functional groups, with the SYSTEM environmental
constraint applied to component type `K',  yields

%%//$$ FG^0_1 = \{C_1, C_2\},$$
%%$$ FG^0_2 = \{C_1, C_3, K_4\},$$
%%$$ FG^0_3 = \{C_5, C_6, K_7\}.$$

$$ fm(FG^0_1) = \{C^0_{1 a}, C^0_{1 b}, C^0_{2 a}, C^0_{2 b}\},$$
$$ fm(FG^0_2) = \{C^0_{1 a}, C^0_{1 b}, C^0_{3 a}, C^0_{3 b}, K^0_{4 a}, K^0_{4 b}, K^0_{4 d}\},$$
$$ fm(FG^0_3) = \{C^0_{5 a}, C^0_{5 b}, C^0_{6 a}, C^0_{6 b}, K^0_{7 a}, K^0_{7 b}, K^0_{7 d}\}.$$

The next stage is to look at the failure modes from the perspective of
the functional groups, rather than the components.
We can call these failures modes `symptoms'.
As this is a theoretical example, we shall have to skip this step\footnote{
In a real analysis this would involve evaluating the effect of each components failure mode, (or combinations of)
on the performance of the {\fg}.}.
The next stage is to collect the common symptoms, or the symptoms that
are the same {\em from the perspective of a user of the {\fg}}.
We can define this stage as the function $\bowtie$ which has a set of failure modes as 
its range and {\dc} as its domain.

For the sake of example let us determine some arbitary collections
into symptoms. Let us group the symptoms from $ FG^0_1 $ as the following
$ s1 = \{ C^0_{1 a}, C^0_{2 b} \}$ and $ s2  = \{ C^0_{1 b}, C^0_{2 a} \}$.
We can represent the relationships between the failure modes, and desired failure modes or symptoms
as a DAG (see figure \ref{fig:dag0}).


\def\layersep{2.5cm}


 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
 
     % Draw the input layer nodes
     %\foreach \name / \y in {1,...,4}
     % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4}
     %    \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {};
 
     \node[component] (C-1) at (0,-1) {$C^0_1$};
     \node[component] (C-2) at (0,-3) {$C^0_2$};
     %\node[component] (C-3) at (0,-5) {$C^0_3$};
     %\node[component] (K-4) at (0,-8) {$K^0_4$};
     %\node[component] (C-5) at (0,-10) {$C^0_5$};
     %\node[component] (C-6) at (0,-12) {$C^0_6$};
     %\node[component] (K-7) at (0,-15) {$K^0_7$};
 
     % Draw the hidden layer nodes
     %\foreach \name / \y in {1,...,5}
     %    \path[yshift=0.5cm]
             \node[failure] (C-1a) at (\layersep,-1) {a};
             \node[failure] (C-1b) at (\layersep,-2) {b};
             \node[failure] (C-2a) at (\layersep,-3) {a};
             \node[failure] (C-2b) at (\layersep,-4) {b};
 
     % Draw the output layer node
 
     % Connect every node in the input layer with every node in the
     % hidden layer.
     %\foreach \source in {1,...,4}
     %    \foreach \dest in {1,...,5}
     \path (C-1) edge (C-1a);
     \path (C-1) edge (C-1b);
     \path (C-2) edge (C-2a);
     \path (C-2) edge (C-2b);
 
     %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {};
     \node[symptom, right of=C-1a] (s1) {s1};
     \node[symptom, right of=C-2a] (s2) {s2};
 
 
 
     \path (C-2b) edge (s1);
     \path (C-1a) edge (s1);
 
     \path (C-2a) edge (s2);
     \path (C-1b) edge (s2);
 
     %\node[component, right of=s1] (DC) {$C^1_1$};
 
     %\path (s1) edge (DC);
     %\path (s2) edge (DC);
     
 
 
     % Connect every node in the hidden layer with the output layer
     %\foreach \source in {1,...,5}
     %    \path (H-\source) edge (O);
 
     % Annotate the layers
     \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes};
     \node[annot,left of=hl] {Base Components};
     \node[annot,right of=hl](s) {Symptoms};
     %\node[annot,right of=s](dcl) {Derived Component};
 \end{tikzpicture}
 % End of code
 \caption{DAG representing failure modes and symptoms of $FG^0_1$}
 \label{fig:dag0}
 \end{figure}


%%%\begin{figure}[h]
%%% \centering
%%% \includegraphics[width=300pt,bb=0 0 466 270,keepaspectratio=true]{./fmmd_data_model/dag0.jpg}
%%% % dag0.jpg: 466x270 pixel, 72dpi, 16.44x9.52 cm, bb=0 0 466 270
%%% \caption{DAG reprsenting the failure modes from $FG^0_1$.}
%%% \label{fig:dag0}
%%%\end{figure}


We can now create a new {\dc}. This will have an $\alpha$ value higher
than the any of the components in the {\fg} that it was derived from.
In this case all components were base components and therefore have an $\alpha$ value of zero.
Our derived component can thus take an $\alpha$ value of one.

Our newly derived component can be 
$$ C^1_1 = \bowtie fm(FG^0_1) .$$

Applying $fm$ to our new derived component will give us our symptoms from functional group $ FG^0_1 $
thus

$$ fm(C^1_1) = \{s1, s2 \}.$$

We can represent $ C^1_1 $ as an addition to the DAG (see figure \ref{fig:dag1}).



%%%\begin{figure}[h]
%%% \centering
%%% \includegraphics[width=300pt,bb=0 0 466 270,keepaspectratio=true]{./fmmd_data_model/dag1.jpg}
%%% % dag0.jpg: 466x270 pixel, 72dpi, 16.44x9.52 cm, bb=0 0 466 270
%%% \caption{DAG reprsenting the failure modes from $FG^0_1$ and $ DC^1_0 $.}
%%% \label{fig:dag1}
%%%\end{figure}


 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
 
     % Draw the input layer nodes
     %\foreach \name / \y in {1,...,4}
     % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4}
     %    \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {};
 
     \node[component] (C-1) at (0,-1) {$C^0_1$};
     \node[component] (C-2) at (0,-3) {$C^0_2$};
     %\node[component] (C-3) at (0,-5) {$C^0_3$};
     %\node[component] (K-4) at (0,-8) {$K^0_4$};
     %\node[component] (C-5) at (0,-10) {$C^0_5$};
     %\node[component] (C-6) at (0,-12) {$C^0_6$};
     %\node[component] (K-7) at (0,-15) {$K^0_7$};
 
     % Draw the hidden layer nodes
     %\foreach \name / \y in {1,...,5}
     %    \path[yshift=0.5cm]
             \node[failure] (C-1a) at (\layersep,-1) {a};
             \node[failure] (C-1b) at (\layersep,-2) {b};
             \node[failure] (C-2a) at (\layersep,-3) {a};
             \node[failure] (C-2b) at (\layersep,-4) {b};
 
     % Draw the output layer node
 
     % Connect every node in the input layer with every node in the
     % hidden layer.
     %\foreach \source in {1,...,4}
     %    \foreach \dest in {1,...,5}
     \path (C-1) edge (C-1a);
     \path (C-1) edge (C-1b);
     \path (C-2) edge (C-2a);
     \path (C-2) edge (C-2b);
 
     %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {};
     \node[symptom, right of=C-1a] (s1) {s1};
     \node[symptom, right of=C-2a] (s2) {s2};
 
 
 
     \path (C-2b) edge (s1);
     \path (C-1a) edge (s1);
 
     \path (C-2a) edge (s2);
     \path (C-1b) edge (s2);
 
     \node[component, right of=s1] (DC) {$C^1_1$};

     \path (s1) edge (DC);
     \path (s2) edge (DC);
     
 
 
     % Connect every node in the hidden layer with the output layer
     %\foreach \source in {1,...,5}
     %    \path (H-\source) edge (O);
 
     % Annotate the layers
     \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes};
     \node[annot,left of=hl] {Base Components};
     \node[annot,right of=hl](s) {Symptoms};
     \node[annot,right of=s](dcl) {Derived Component};
 \end{tikzpicture}
 % End of code
 \caption{DAG representing failure modes and symptoms $FG^0_1 \rightarrow C^1_1$}
 \label{fig:dag1}
 \end{figure}

%n\clearpage
\subsection{ Creating Derived components from $FG^0_2$ and $FG^0_3$ }

Applying the FMMD process for $FG^0_2$ and $FG^0_3$.

\paragraph{Applying FMMD $ \bowtie fm(FG^0_2) $:}

The failure modes $fm(FG^0_2) =  \{C^0_{1 a}, C^0_{1 b}, C^0_{3 a}, C^0_{3 b}, K^0_{4 a}, K^0_{4 b}, K^0_{4 d}\}.$
Let us say new symptom s3 can be caused by failure modes $\{C^0_{1 a},  C^0_{3 b}, K^0_{4 b} \}$
, let us say new symptom s4 can be caused by failure modes $\{C^0_{1 b},  C^0_{3 a}, K^0_{4 d} \}$
and let us say new symptom s5 can be caused by failure mode $\{K^0_{4 a} \}$.

We can create a derived component $C^1_2$ using
$\bowtie fm(FG^0_2) = C^1_2$.
Applying $fm$ to our {\dcs} gives $fm(C^1_2) = \{ s3,s4,s5 \}$.
We can respresent this in the DAG in figure \ref{fig:dag2}.


%
% DAG INCLUDING DC^1_2
%



 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
 
     % Draw the input layer nodes
     %\foreach \name / \y in {1,...,4}
     % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4}
     %    \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {};
 
     \node[component] (C-1) at (0,-1) {$C^0_1$};
     \node[component] (C-2) at (0,-3) {$C^0_2$};
     \node[component] (C-3) at (0,-5) {$C^0_3$};
     \node[component] (K-4) at (0,-8) {$K^0_4$};
     %\node[component] (C-5) at (0,-10) {$C^0_5$};
     %\node[component] (C-6) at (0,-12) {$C^0_6$};
     %\node[component] (K-7) at (0,-15) {$K^0_7$};
 
     % Draw the hidden layer nodes
     %\foreach \name / \y in {1,...,5}
     %    \path[yshift=0.5cm]
             \node[failure] (C-1a) at (\layersep,-1) {a};
             \node[failure] (C-1b) at (\layersep,-2) {b};
             \node[failure] (C-2a) at (\layersep,-3) {a};
             \node[failure] (C-2b) at (\layersep,-4) {b};
             \node[failure] (C-3a) at (\layersep,-5) {a};
             \node[failure] (C-3b) at (\layersep,-6) {b};
             \node[failure] (K-4a) at (\layersep,-7) {a};
             \node[failure] (K-4b) at (\layersep,-8) {b};
             \node[failure] (K-4d) at (\layersep,-9) {d};
 
     % Draw the output layer node
 
     % Connect every node in the input layer with every node in the
     % hidden layer.
     %\foreach \source in {1,...,4}
     %    \foreach \dest in {1,...,5}
     \path (C-1) edge (C-1a);
     \path (C-1) edge (C-1b);
     \path (C-2) edge (C-2a);
     \path (C-2) edge (C-2b);
     \path (C-3) edge (C-3a);
     \path (C-3) edge (C-3b);
     \path (K-4) edge (K-4a);
     \path (K-4) edge (K-4b);
     \path (K-4) edge (K-4d);
 
     %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {};
     \node[symptom, right of=C-1a] (s1) {s1};
     \node[symptom, right of=C-2a] (s2) {s2};
     \node[symptom, right of=C-3a] (s3) {s3};
     \node[symptom, right of=C-3b] (s4) {s4};
     \node[symptom, right of=K-4b] (s5) {s5};
 
 
 
     \path (C-2b) edge (s1);
     \path (C-1a) edge (s1);
 
     \path (C-2a) edge (s2);
     \path (C-1b) edge (s2);

     \path (C-1a) edge (s3);
     \path (C-3b) edge (s3);
     \path (K-4b) edge (s3);

     \path (C-1b) edge (s4);
     \path (C-3a) edge (s4);
     \path (K-4d) edge (s4);

     \path (K-4a) edge (s5);
 
     \node[component, right of=s1] (DC-1) {$C^1_1$};
     \node[component, right of=s4] (DC-2) {$C^1_2$};

     \path (s1) edge (DC-1);
     \path (s2) edge (DC-1);

     \path (s3) edge (DC-2);
     \path (s4) edge (DC-2);
     \path (s5) edge (DC-2);

 
     % Annotate the layers
     \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes};
     \node[annot,left of=hl] {Base Components};
     \node[annot,right of=hl](s) {Symptoms};
     \node[annot,right of=s](dcl) {Derived Component};
 \end{tikzpicture}
 % End of code
 \caption{DAG representing failure modes and symptoms $FG^0_1 \rightarrow C^1_1$ and $FG^0_2 \rightarrow C^1_2$}
 \label{fig:dag2}
 \end{figure}





%/\clearpage

\paragraph{Applying FMMD $\bowtie fm(FG^0_3) $ :}
Let us say new symptom s6 can be caused by failure modes $\{C_{5 a},  C_{6 b}, K_{4 b} \}$
, let us say new symptom s7 can be caused by failure modes $\{C_{5 b},  C_{6 a}, K_{7 d} \}$
and let us say new symptom s8 can be caused by failure mode $\{K_{7 a} \}$.

%xrightarrow{\hspace*{3cm}} 
We can represent this using a relationship $\stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}}$, thus:

$$ \{  C_{5 a},  C_{6 b}, K_{4 b} \} \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S6, $$
$$ \{  C_{5 b},  C_{6 a}, K_{7 d} \} \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S7, $$
$$ \{  K_{7 a}  \} \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S8. $$

We can create a derived component $C^1_3$ using
$\bowtie fm(FG^0_3) = C^1_3$
where $fm(C^1_3) = \{ s6,s7,s8 \}$.

We can now represent the first stage of FMMD, all base component
failure modes analysed and our first set of derived components determined.
This is shown in the DAG in figure \ref{fig:dag3}.


 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
 
     % Draw the input layer nodes
     %\foreach \name / \y in {1,...,4}
     % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4}
     %    \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {};
 
     \node[component] (C-1) at (0,-1) {$C^0_1$};
     \node[component] (C-2) at (0,-3) {$C^0_2$};
     \node[component] (C-3) at (0,-5) {$C^0_3$};
     \node[component] (K-4) at (0,-8) {$K^0_4$};
     \node[component] (C-5) at (0,-10) {$C^0_5$};
     \node[component] (C-6) at (0,-12) {$C^0_6$};
     \node[component] (K-7) at (0,-15) {$K^0_7$};
 
     % Draw the hidden layer nodes
     %\foreach \name / \y in {1,...,5}
     %    \path[yshift=0.5cm]
             \node[failure] (C-1a) at (\layersep,-1) {a};
             \node[failure] (C-1b) at (\layersep,-2) {b};
             \node[failure] (C-2a) at (\layersep,-3) {a};
             \node[failure] (C-2b) at (\layersep,-4) {b};
             \node[failure] (C-3a) at (\layersep,-5) {a};
             \node[failure] (C-3b) at (\layersep,-6) {b};
             \node[failure] (K-4a) at (\layersep,-7) {a};
             \node[failure] (K-4b) at (\layersep,-8) {b};
             \node[failure] (K-4d) at (\layersep,-9) {d};


             \node[failure] (C-5a) at (\layersep,-10) {a};
             \node[failure] (C-5b) at (\layersep,-11) {b};
             \node[failure] (C-6a) at (\layersep,-12) {a};
             \node[failure] (C-6b) at (\layersep,-13) {b};
             \node[failure] (K-7a) at (\layersep,-14) {a};
             \node[failure] (K-7b) at (\layersep,-15) {b};
             \node[failure] (K-7d) at (\layersep,-16) {d};
               
     % Draw the output layer node
 
     % Connect every node in the input layer with every node in the
     % hidden layer.
     %\foreach \source in {1,...,4}
     %    \foreach \dest in {1,...,5}
     \path (C-1) edge (C-1a);
     \path (C-1) edge (C-1b);
     \path (C-2) edge (C-2a);
     \path (C-2) edge (C-2b);
     \path (C-3) edge (C-3a);
     \path (C-3) edge (C-3b);
     \path (K-4) edge (K-4a);
     \path (K-4) edge (K-4b);
     \path (K-4) edge (K-4d);

     \path (C-5) edge (C-5a);
     \path (C-5) edge (C-5b);
     \path (C-6) edge (C-6a);
     \path (C-6) edge (C-6b);
     \path (K-7) edge (K-7a);
     \path (K-7) edge (K-7b);
     \path (K-7) edge (K-7d);
 
     %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {};
     \node[symptom, right of=C-1a] (s1) {s1};
     \node[symptom, right of=C-2a] (s2) {s2};

     \node[symptom, right of=C-3a] (s3) {s3};
     \node[symptom, right of=C-3b] (s4) {s4};
     \node[symptom, right of=K-4b] (s5) {s5};
 
 
     \node[symptom, right of=C-5a] (s6) {s6};
     \node[symptom, right of=C-6b] (s7) {s7};
     \node[symptom, right of=K-7b] (s8) {s8};
 
     \path (C-2b) edge (s1);
     \path (C-1a) edge (s1);
 
     \path (C-2a) edge (s2);
     \path (C-1b) edge (s2);

     \path (C-1a) edge (s3);
     \path (C-3b) edge (s3);
     \path (K-4b) edge (s3);

     \path (C-1b) edge (s4);
     \path (C-3a) edge (s4);
     \path (K-4d) edge (s4);

     \path (K-4a) edge (s5);



     \path (C-5a) edge (s6);
     \path (C-6b) edge (s6);
     \path (K-7b) edge (s6);

     \path (C-5b) edge (s7);
     \path (C-6a) edge (s7);
     \path (K-7d) edge (s7);

     \path (K-7a) edge (s8);

 
     \node[component, right of=s1] (DC-1) {$C^1_1$};
     \node[component, right of=s4] (DC-2) {$C^1_2$};
     \node[component, right of=s7] (DC-3) {$C^1_3$};

     \path (s1) edge (DC-1);
     \path (s2) edge (DC-1);

     \path (s3) edge (DC-2);
     \path (s4) edge (DC-2);
     \path (s5) edge (DC-2);

     \path (s6) edge (DC-3);
     \path (s7) edge (DC-3);
     \path (s8) edge (DC-3);
 
 
     % Connect every node in the hidden layer with the output layer
     %\foreach \source in {1,...,5}
     %    \path (H-\source) edge (O);
 
     % Annotate the layers
     \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes};
     \node[annot,left of=hl] {Base Components};
     \node[annot,right of=hl](s) {Symptoms};
     \node[annot,right of=s](dcl) {Derived Component};
 \end{tikzpicture}
 % End of code
 \caption{DAG representing failure modes and symptoms $FG^0_1 \rightarrow C^1_1$, $FG^0_2 \rightarrow C^1_2$ and $FG^0_3 \rightarrow C^1_3$}
 \label{fig:dag3}
 \end{figure}




%\clearpage
%\pagebreak[4]
\subsection{Using Derived Components in Functional Groups}
\label{dagexample}
The DAG we have in figure \ref{fig:dag3} does not yet give us SYSTEM or `top~level'
failure modes.
We can apply $fm$ to the derived components and 
this returns the failure modes. We can notate
these with $a$ and $b$ etc as before, but can give them
a subscript representing the symptom they were sourced from thus:
%$$ fm(C^1_1) = \{ a^0_{s1}, b^0_{s2} \}, $$
%$$ fm(C^1_2) = \{ a^0_{s3}, b^0_{s4}, c^0_{s5} \}, $$
%$$ fm(C^1_3) = \{ a^0_{s6}, b^0_{s7}, c^0_{s8} \}. $$
$$ fm(C^1_1) = \{ a_{s1}, b_{s2} \}, $$
$$ fm(C^1_2) = \{ a_{s3}, b_{s4}, c_{s5} \}, $$
$$ fm(C^1_3) = \{ a_{s6}, b_{s7}, c_{s8} \}. $$

In order to determine SYSTEM level symptoms, we need to
use the derived components to form a higher level functional
group and analyse that.

%\clearpage
For the sake of example, let us assume that we
can use all three derived components to
create a top~level functional group.

Let
$ FG^1_1 = \{ C^1_1, C^1_2, C^1_3 \} $.

Applying $fm(FG_1) = \{ a_{s1}, b_{s2}, a_{s3}, b_{s4}, c_{s5}, a_{s6}, b_{s7}, c_{s8} \}$.
%Applying $fm(FG^1_1) = \{ a^1_{s1}, b^1_{s2}, a^1_{s3}, b^1_{s4}, c^1_{s5}, a^1_{s6}, b^1_{s7}, c^1_{s8} \}$.

Again for the sake of example let us determine `arbitary' common symptoms s9,s10 and s11 from
$fm(FG^1_1)$.

$$ \{ b_{s2} \} \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S9$$
%$$ \{ b^1_{s2} \} \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S9$$
$$ \{ a_{s3}, b_{s4}, a_{s6}, b_{s7} \}  \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S10  $$
%$$ \{ a^1_{s3}, b^1_{s4}, a^1_{s6}, b^1_{s7} \}  \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S10  $$
$$ \{ c_{s5}, c_{s8} \} \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S11 $$
%$$ \{ c^1_{s5}, c^1_{s8} \} \stackrel{Collect Symptoms}{\xrightarrow{\hspace*{2cm}}} S11 $$
To get our system level derived component we can apply $ \bowtie fm(FG^1_1) = C^2_1 $.
Thus applying $fm$ to our newly derived component $ C^2_1 $
gives its derived failure modes thus:
%$$ fm(C^2_1) = \{ a^1_{s9},b^1_{s10},c^1_{s11} \} .$$
$$ fm(C^2_1) = \{ a_{s9},b_{s10},c_{s11} \} .$$
We now have all the SYSTEM level failures.
This are represented on the r.h.s. of the DAG in figure \ref{fig:dag4}.

NOW THINK ABOUT THIS

NEED INTERESTING FAULTS

TO RACE BACK DOWN THE DAG



\def\layersep{2.0cm}


 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
 
     % Draw the input layer nodes
     %\foreach \name / \y in {1,...,4}
     % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4}
     %    \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {};
 
     \node[component] (C-1) at (0,-1) {$C^0_1$};
     \node[component] (C-2) at (0,-3) {$C^0_2$};
     \node[component] (C-3) at (0,-5) {$C^0_3$};
     \node[component] (K-4) at (0,-8) {$K^0_4$};
     \node[component] (C-5) at (0,-10) {$C^0_5$};
     \node[component] (C-6) at (0,-12) {$C^0_6$};
     \node[component] (K-7) at (0,-15) {$K^0_7$};
 
     % Draw the hidden layer nodes
     %\foreach \name / \y in {1,...,5}
     %    \path[yshift=0.5cm]
             \node[failure] (C-1a) at (\layersep,-1) {a};
             \node[failure] (C-1b) at (\layersep,-2) {b};
             \node[failure] (C-2a) at (\layersep,-3) {a};
             \node[failure] (C-2b) at (\layersep,-4) {b};
             \node[failure] (C-3a) at (\layersep,-5) {a};
             \node[failure] (C-3b) at (\layersep,-6) {b};
             \node[failure] (K-4a) at (\layersep,-7) {a};
             \node[failure] (K-4b) at (\layersep,-8) {b};
             \node[failure] (K-4d) at (\layersep,-9) {d};


             \node[failure] (C-5a) at (\layersep,-10) {a};
             \node[failure] (C-5b) at (\layersep,-11) {b};
             \node[failure] (C-6a) at (\layersep,-12) {a};
             \node[failure] (C-6b) at (\layersep,-13) {b};
             \node[failure] (K-7a) at (\layersep,-14) {a};
             \node[failure] (K-7b) at (\layersep,-15) {b};
             \node[failure] (K-7d) at (\layersep,-16) {d};
               
     % Draw the output layer node
 
     % Connect every node in the input layer with every node in the
     % hidden layer.
     %\foreach \source in {1,...,4}
     %    \foreach \dest in {1,...,5}
     \path (C-1) edge (C-1a);
     \path (C-1) edge (C-1b);
     \path (C-2) edge (C-2a);
     \path (C-2) edge (C-2b);
     \path (C-3) edge (C-3a);
     \path (C-3) edge (C-3b);
     \path (K-4) edge (K-4a);
     \path (K-4) edge (K-4b);
     \path (K-4) edge (K-4d);

     \path (C-5) edge (C-5a);
     \path (C-5) edge (C-5b);
     \path (C-6) edge (C-6a);
     \path (C-6) edge (C-6b);
     \path (K-7) edge (K-7a);
     \path (K-7) edge (K-7b);
     \path (K-7) edge (K-7d);
 
     %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {};
     \node[symptom, right of=C-1a] (s1) {s1};
     \node[symptom, right of=C-2a] (s2) {s2};

     \node[symptom, right of=C-3a] (s3) {s3};
     \node[symptom, right of=C-3b] (s4) {s4};
     \node[symptom, right of=K-4b] (s5) {s5};
 
 
     \node[symptom, right of=C-5a] (s6) {s6};
     \node[symptom, right of=C-6b] (s7) {s7};
     \node[symptom, right of=K-7b] (s8) {s8};
 
     \path (C-2b) edge (s1);
     \path (C-1a) edge (s1);
 
     \path (C-2a) edge (s2);
     \path (C-1b) edge (s2);

     \path (C-1a) edge (s3);
     \path (C-3b) edge (s3);
     \path (K-4b) edge (s3);

     \path (C-1b) edge (s4);
     \path (C-3a) edge (s4);
     \path (K-4d) edge (s4);

     \path (K-4a) edge (s5);



     \path (C-5a) edge (s6);
     \path (C-6b) edge (s6);
     \path (K-7b) edge (s6);

     \path (C-5b) edge (s7);
     \path (C-6a) edge (s7);
     \path (K-7d) edge (s7);

     \path (K-7a) edge (s8);

 
     \node[component, right of=s1] (DC-1) {$C^1_1$};
     \node[component, right of=s4] (DC-2) {$C^1_2$};
     \node[component, right of=s7] (DC-3) {$C^1_3$};

     \path (s1) edge (DC-1);
     \path (s2) edge (DC-1);

     \path (s3) edge (DC-2);
     \path (s4) edge (DC-2);
     \path (s5) edge (DC-2);

     \path (s6) edge (DC-3);
     \path (s7) edge (DC-3);
     \path (s8) edge (DC-3);
 

     \node[failure] (as1) at (\layersep*4,-2) {$a_{s1}$};
     \node[failure] (bs2) at (\layersep*4,-3) {$b_{s2}$}; 
     \path (DC-1) edge (as1);
     \path (DC-1) edge (bs2);
 
     \node[failure] (as3) at (\layersep*4,-5)  {$a_{s3}$};
     \node[failure] (bs4) at (\layersep*4,-6)  {$b_{s3}$};
     \node[failure] (cs5) at (\layersep*4,-7)  {$c_{s3}$};
     \path (DC-2) edge (as3);
     \path (DC-2) edge (bs4);
     \path (DC-2) edge (cs5);

     \node[failure] (as6) at (\layersep*4,-12)  {$a_{s6}$};
     \node[failure] (bs7) at (\layersep*4,-13)  {$b_{s7}$};
     \node[failure] (cs8) at (\layersep*4,-14)  {$c_{s8}$};
     \path (DC-3) edge (as6);
     \path (DC-3) edge (bs7);
     \path (DC-3) edge (cs8);


     \node[symptom] (s9) at (\layersep*5,-5) {s9};
     \node[symptom] (s10) at (\layersep*5,-10)  {s10};
     \node[symptom] (s11)  at (\layersep*5,-13) {s11};

     \path (bs2) edge (s9);


     \path (as1) edge (s10);
     \path (as3) edge (s10);
     \path (bs4) edge (s10);
     \path (as6) edge (s10);
     \path (bs7) edge (s10);

     % Single component failures causing same error in tree
     \path (cs5) edge (s11);
     \path (cs8) edge (s11);

     \node[component,right of=s10] (DC2-1) {$C^2_1$};
     \path (s9) edge (DC2-1);
     \path (s10) edge (DC2-1);
     \path (s11) edge (DC2-1);

     \node[failure] (as9) at (\layersep*7,-9)  {$a_{s9}$};
     \node[failure] (as10) at (\layersep*7,-10)  {$b_{s12}$};
     \node[failure] (as11) at (\layersep*7,-11)  {$c_{s11}$};

     \path (DC2-1) edge (as9);
     \path (DC2-1) edge (as10);
     \path (DC2-1) edge (as11);

     % Connect every node in the hidden layer with the output layer
     %\foreach \source in {1,...,5}
     %    \path (H-\source) edge (O);
 
     % Annotate the layers
     \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes};
     \node[annot,left of=hl] {Base Components};
     \node[annot,right of=hl](s) {Symptoms};
     \node[annot,right of=s](dcl) {Derived Components};
     \node[annot,right of=dcl](dcf) {Derived Component Failure Modes};
     \node[annot,right of=dcf](S2s) {Symptoms};
     \node[annot,right of=S2s](DC2) {Derived Components};
     \node[annot,right of=DC2](dc2f) {Derived Component Failure Modes};

 \end{tikzpicture}
 % End of code
 \caption{DAG representing failure modes and symptoms $FG^1_1 \rightarrow C^2_1$}
 \label{fig:dag4}
 \end{figure}



\section{Failure inhibition and conjunction}

\subsection{Inhibition}
Failure inhibition is where a failure can only become active given a pre-condition.
A component suseptible to a given temperature range 
making a failure mode a possibility is an inhibit condition.
for instance in electronics, a semi-conductor may begin to
fail at an eleveted temperature range.
Or in mechanical engineering a rubber seal may become brittle and leak
at low temperatures.

What we have is an inhibit condition, in this case the temperature 
being in range makes the particular failure mode impossible.

%[regular polygon,regular polygon sides=9]

 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{fmmdi}=[regular polygon,regular polygon sides=6,fill=black!25,minimum size=17pt,inner sep=0pt]
     %\tikzstyle{fmmdi}=[rectangle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{inhibit}=[fmmdi, fill=black!20];
     \tikzstyle{conjunction}=[fmmde, fill=red!20];
     \tikzstyle{annot} = [text width=4em, text centered]

 	\node[component] (C-1) at (0,-2) {$C^0_1$};
 	\node[inhibit] (I-1) at (\layersep,-2) {$ > 80\oc$};
        \path (C-1) edge (I-1);
        \node[failure] (f) at (\layersep*2,-2)  {$a$}; 
        \path (I-1) edge (f);

 \end{tikzpicture}
 % End of code
 \caption{DAG representing inhibit condition ($ > 80\oc$) on failure mode $a$}
 \label{fig:daginhibit}
\end{figure}

\subsection{Conjunction}

Failure conjunction is simply considering, at the {\fg} analysis stage
the possibility of two components failing within the same timeframe.
We could for instance, looking at a fuel train to a burner/chemical~reactor;
consider both shutoff valves failing at the same time.

For high levels of safety or reliability, in critical sub-systems, all possible double
simultaneous failures may have to be considered \cite{en298}. 


 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{fmmdi}=[rectangle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{inhibit}=[fmmdi, fill=grey!20];
     \tikzstyle{conjunction}=[fmmde, fill=red!20];
     \tikzstyle{annot} = [text width=4em, text centered]

 	\node[component] (C-1) at (0,-2) {$C^0_1$};

        \node[failure] (C-1a) at (\layersep,-1) {a}; 	
        \node[failure] (C-1b) at (\layersep,-2) {b}; 	
        \node[failure] (C-1c) at (\layersep,-3) {c}; 	
	
     \path (C-1) edge (C-1a);
     \path (C-1) edge (C-1b);
     \path (C-1) edge (C-1c);

	\node[conjunction, right of=C-1b]  (CJ) {$\&$};

     \path (C-1a) edge (CJ);
     \path (C-1b) edge (CJ);
     \path (C-1c) edge (CJ);

 \end{tikzpicture}
 % End of code
 \caption{DAG representing conjunction condition on failure modes $a \wedge b \wedge c$}
 \label{fig:dagconjunction}
\end{figure}

\subsection{Failure Mode Conjuction Conditions represented in the DAG}

White filled node with an \& in it.

\subsection{Inhibit Conditions represented in the DAG}

Inhibit node type. Octagon (to follow example from FTA).

a -> OCT

inhibitcond--


\section{Traversing the datamodel: Extracting Information from the Directed Acyclic Graph}


\section{Determining the causes of SYSTEM level Failure modes}

Show how we can find multiple causes for a SYSTEM level error.
Constrast this to the bottom-up approaches of FMEA, FMECA and FMEDA where
without necessarily knowing complex interactions between
functionally adjacent components, we must take each component failure
mode and tie to to a SYSTEM level failure. 




\subsubsection{Common mode failure detection}

Describe what a common mode failure is.

show how common mode failures can be detected by using the parts list (same components can all have their
error modes turned on, and the effect can be seen on the system, automatically tracing
common mode failures.


\subsubsection{Common dependency detection}

The same component can be relied on by different functional groups within a system
For instance a power supply spur (i.e. supplying a particular isolated voltage say)
could have many functional groups depending or linked to its failure modes.

Show how FMMD makes this tracable


% clear the page if its a paper to keep the diagram out of the references
\ifthenelse {\boolean{paper}}
{
%\clearpage
}
{
}

 
\pagebreak[3]
\section{Failure inhibition and conjunction}

\subsection{Inhibition}
Failure inhibition is where a failure can only become active given a pre-condition.
A component suseptible to a given temperature range 
making a failure mode a possibility is an inhibit condition.

For instance in electronics, a semi-conductor may begin to
fail at an eleveted temperature range.
Or in mechanical engineering a rubber seal may become brittle and leak
at low temperatures.

What we have is an inhibit condition, in this case the temperature 
being in range makes the particular failure mode impossible.

The component $K$ in the DAG example (see section \ref{dagexample}), has 
a failure mode $d$ that is only present at an elevated temperature 
range, and has been considered as a static failure possibility in that model.

Where dynamic modelling of environmental conditions is required, inhibit gates
need be used in the model.


Inhibit conditions are part of the FTA methodology.%\cite{nucfta}[IV-9].
To ensure that FMMD can produce FTA models, support for inhibit gates has been included.
Both the NASA \cite{nasafta} and the U.S. Nuclear regulatory commission\cite{nucfta}[IV-9]  use
a hexagon as a symbol for an inhibit gate in thier FTA documentation. That notation has been carried forward into FMMD.
%[regular polygon,regular polygon sides=7]

% \begin{figure}
% \centering
% \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
%     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
%     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
%     %\tikzstyle{fmmdi}=[rectangle,fill=black!25,minimum size=17pt,inner sep=0pt]
%     \tikzstyle{fmmdi}=[regular polygon,regular polygon sides=6],fill=black!25,minimum size=17pt,inner sep=0pt]
%     \tikzstyle{component}=[fmmde, fill=green!50];
%     \tikzstyle{failure}=[fmmde, fill=red!50];
%     \tikzstyle{symptom}=[fmmde, fill=blue!50];
%     \tikzstyle{inhibit}=[fmmdi, fill=black!20];
%     \tikzstyle{conjunction}=[fmmde, fill=red!20];
%     \tikzstyle{annot} = [text width=4em, text centered]
%
% 	\node[component] (C-1) at (0,-2) {$C^0_1$};
% 	\node[fmmdi] (I-1) at (\layersep,-2) {$ > 80\oc$};
%        \path (C-1) edge (I-1);
%        \node[failure] (f) at (\layersep*2,-2)  {$a$}; 
%        \path (I-1) edge (f);
%
% \end{tikzpicture}
% % End of code
% \caption{DAG representing inhibit condition ($ > 80\oc$) on failure mode $a$}
% \label{fig:daginhibit}
%\end{figure}

We can also use a failure mode as an inhibit condition.
For instance if we have a failure mode $C^0_{1a}$ that when active 
makes failure mode $C^0_{1b}$ possible we can link 
them using an inhibit gate as shown in figure \ref{fig:inhibitf2}.



 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     %\tikzstyle{fmmdi}=[rectangle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{fmmdi}=[regular polygon,regular polygon sides=6],fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{inhibit}=[fmmdi, fill=blue!20];
     \tikzstyle{conjunction}=[fmmde, fill=red!20];
     \tikzstyle{annot} = [text width=4em, text centered]

 	\node[component] (C-1) at (0,-2) {$C^0_1$};
 	\node[component] (C-2) at (0,-5) {$C^0_1$};

        \node[failure] (c1a) at (\layersep*2,-2)  {$a$}; 

        \node[failure] (c2a) at (\layersep*2,-5)  {$b$}; 
        \node[failure] (c2b) at (\layersep*2,-4)  {$a$}; 

	\path (C-2) edge (c2a);
        \path (C-2) edge (c2b);

 	\node[inhibit] (I-1) at (\layersep,-2) {Inhibit};
	\path (C-1) edge (I-1);
        \path (c2b) edge (I-1);

        \path (I-1) edge (c1a);


 \end{tikzpicture}
 % End of code
 \caption{DAG representing inhibit of failure mode $C_{2b}$ on another failure mode $C_{1a}$}
 \label{fig:daginhibit2}
\end{figure}





\subsection{Conjunction}

Failure conjunction is simply considering, at the {\fg} analysis stage
the possibility of two components failing within the same timeframe.
We could for instance, looking at a fuel train to a burner/chemical~reactor;
consider both shutoff valves failing at the same time.

For high levels of safety or reliability, in critical sub-systems, all possible double
simultaneous failures may have to be considered \cite{en298}. 


 \begin{figure}
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
     %\tikzstyle{fmmdi}=[rectangle,fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{fmmdi}=[regular polygon,regular polygon sides=6],fill=black!25,minimum size=17pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{inhibit}=[fmmdi, fill=grey!40];
     \tikzstyle{conjunction}=[fmmde, fill=red!40];
     \tikzstyle{annot} = [text width=4em, text centered]

 	\node[component] (C-1) at (0,-2) {$C^0_1$};

        \node[failure] (C-1a) at (\layersep,-1) {a}; 	
        \node[failure] (C-1b) at (\layersep,-2) {b}; 	
        \node[failure] (C-1c) at (\layersep,-3) {c}; 	
	
     \path (C-1) edge (C-1a);
     \path (C-1) edge (C-1b);
     \path (C-1) edge (C-1c);

	\node[conjunction, right of=C-1b]  (CJ) {$\&$};

     \path (C-1a) edge (CJ);
     \path (C-1b) edge (CJ);
     \path (C-1c) edge (CJ);

 \end{tikzpicture}
 % End of code
 \caption{DAG representing conjunction condition on failure modes $a \wedge b \wedge c$}
 \label{fig:dagconjunction}
\end{figure}

\subsection{Failure Mode Conjuction Conditions represented in the DAG}

White filled node with an \& in it.

\subsection{Inhibit Conditions represented in the DAG}

Inhibit node type. Octagon (to follow example from FTA).

a -> OCT

inhibitcond--


%\section{Current Static Failure Mode Methodologies}
%\ifthenelse {\boolean{paper}}
%{
%paper
%}
%{
%chapter
%}



\vspace{60pt}
\today
