/*****************************************************************************/
/*                 Functional Safety Suite Example                           */
/*              Copyright © Thomas Brunnengräber 2014                        */
/*                                                                           */
/* Project: Common Causes                                                    */
/* Version: 2014-05-30                                                       */
/*****************************************************************************/

The project "Common Causes" demonstrates the handling of common 
causes as implemented in Functional Safety Suite.

The fault tree "Complex" demonstrates
- how basic events with same generic basic event and same suffix are handled:
    X.1 under FKT_A_FAILS is identic to X.1 under FKT_B_FAILS
    => if FKT_A_FAILS is true (X.1 is true), FKT_B_FAILS is always also true
- how basic events with same generic basic event and different suffix are 
  handled:
    X.1 and X.2 are connect by the common cause factor beta
    => w and q of FKT_A_FAILS are bigger as if X.1 and X.2 were independent.
- how basic events with different generic basic event are handled:
    X.1 and Y under FKT_C_FAILS are independent, the beta factors have no 
    effect
- the effect of reduction of cut-sets to "minimal cut-sets":
    TE is true if and only if both X.1 and X.2 are true (either independently 
    or due to common cause)
    => the sub-tree "FKT_B_FAILS" obviously has no effect to the top event TE
    => the sub-tree "FKT_B_FAILS" is completely deleted (check the minimal 
       cut-set file created by "Export - Export minimal cut-sets")
- that only events contributing to the result are considered:
    Event Y is not even calculated, since it is not part of any cutset
       
The fault trees "SUB_UNIT", "TOP_TREE1" and "TOP_TREE2" demonstrate the
handling of common causes in combination with transfer-in gates:
- The fault tree "SUB_UNIT" represents a simple unit of type "SUB_UNIT".
  This unit consists of two different components, whose failures are 
  represented by events K1 and K2.
  The unit can be affected by an external event Z, resulting in the loss of
  all units of this kind.
  Multiple units of type "SUB_UNIT" might have some common cause failures
  since they consist of identic components (of type K1 and type K2).
- The fault tree "TOP_TREE1" represents a system consisting of two units of
  type "SUB_UNIT".
  As you can see in the values of the AND-gate above the transfer-in gates, the
  units are not identic anymore, since the '#' in the suffix of the unit's
  basic events are extended by the names of the transfer-in gates -- resulting
  in non-identic names and therefore non-identic events. You can check that
  also by exporting the list of minimal cut-sets (Export - Export minimal 
  cut-sets) and having a look in the file.
  The common-cause factors between the different K1's and K2's is considered 
  of course. 
  The event Z on the other hand remains unchanged because it's suffix doesn't 
  end with '#'. The two Z events of both units are therefore considered as the
  same event (as intended).
- The fault tree "TOP_TREE2" represents a system consisting of two parallel 
  subsystems "SUB_SYS_X" and "SUB_SYS_Y". Both subsystems fail if the "UNIT"
  described by the seperate tree "SUB_UNIT" fails.
  In contrary to "TOP_TREE1" both transfer-in gates is now given the same name 
  since they shall describe the same physical unit.
  Therefore also the extended suffixes have the same name and thus all 
  instances of "SUB_UNIT" refer to the same events.
  In effect the probability of the TE is determined by the "SUB_UNIT" only,
  even though the probabilities of BE1 and BE2 are much worse -- but BE1 and 
  BE2 are independent!
  