←
Documentation
ADS-IDAC Engine
5.0.0
InitiatingEventFTUnit.cpp
Go to the documentation of this file.
1
#include "
InitiatingEventFTUnit.h
"
2
#include "../Global/SimulationContext.h"
3
#include <boost/serialization/export.hpp>
4
#include <boost/archive/binary_oarchive.hpp>
5
#include <boost/archive/binary_iarchive.hpp>
6
BOOST_CLASS_EXPORT_IMPLEMENT(
InitiatingEventFTUnit
)
7
using namespace
std;
8
InitiatingEventFTUnit::InitiatingEventFTUnit
() {
9
initiating_event_name
=
"NONE"
;
10
system_ft_top_node_name
=
"NONE"
;
11
system_ft_basic_event_node_name
=
"NONE"
;
12
time_at_which_this_IE_activated
= -1.0;
13
probability_value_to_act_on_the_system_ft_node
= -1;
14
probability_of_this_initiating_event
= 1.0;
15
}
16
InitiatingEventFTUnit::~InitiatingEventFTUnit
() {
17
18
}
19
void
InitiatingEventFTUnit::readInfoFromFile
(ifstream &fin) {
20
double
failure_alpha_parameter, failure_beta_parameter;
21
double
recovery_alpha_parameter, recovery_beta_parameter;
22
HWReliabilityFTUnit
*crft_pt;
23
fin >>
initiating_event_name
24
>>
probability_value_to_act_on_the_system_ft_node
25
>>
time_at_which_this_IE_activated
26
>>
system_ft_top_node_name
27
>>
system_ft_basic_event_node_name
28
>> failure_alpha_parameter
29
>> failure_beta_parameter
30
>> recovery_alpha_parameter
31
>> recovery_beta_parameter;
32
Failure_Probability
.
setAlpha_Parameter
(failure_alpha_parameter);
33
Failure_Probability
.
setBeta_Parameter
(failure_beta_parameter);
34
probability_of_this_initiating_event
=
Failure_Probability
.
calculateProbability
();
35
//
36
crft_pt =
g_sim
.
System_reliability
.
getHWReliabilityFTUnit
(
system_ft_top_node_name
);
37
if
(crft_pt != 0) {
38
crft_pt->
setAlpha_Parameter
(recovery_alpha_parameter);
39
crft_pt->
setBeta_Parameter
(recovery_beta_parameter);
40
}
41
}
42
const
string
&
InitiatingEventFTUnit::getInitiatingEventFTName
()
const
{
43
return
initiating_event_name
;
44
}
45
const
string
&
InitiatingEventFTUnit::getSystemFTTopNodeName
()
const
{
46
return
system_ft_top_node_name
;
47
}
48
const
string
&
InitiatingEventFTUnit::getSystemFTBasicEventNodeName
()
const
{
49
return
system_ft_basic_event_node_name
;
50
}
51
double
InitiatingEventFTUnit::getTimeAtWhichThisIEActivated
()
const
{
52
return
time_at_which_this_IE_activated
;
53
}
54
double
InitiatingEventFTUnit::getProbabilityValueToActOnTheSystemFTNode
()
const
{
55
return
probability_value_to_act_on_the_system_ft_node
;
56
}
57
double
InitiatingEventFTUnit::getProbabilityOfThisInitiatingEvent
()
const
{
58
return
probability_of_this_initiating_event
;
59
}
60
int
InitiatingEventFTUnit::checkActivationState
() {
61
int
r_state =
sim::State::Done
;
62
if
(this->
getStateOfActivation
() ==
sim::None
) {
63
if
(
time_at_which_this_IE_activated
< 0.0) {
64
this->
setStateOfActivation
(
sim::State::Done
);
65
}
else
if
(
time_at_which_this_IE_activated
<=
r5pars_
.timesno) {
66
r_state =
sim::Action::Direct
;
67
this->
setStateOfActivation
(
sim::State::Done
);
68
}
else
{
69
r_state =
sim::None
;
70
}
71
}
72
return
r_state;
73
}
74
void
InitiatingEventFTUnit::copyInitiatingEventFTUnit
(
InitiatingEventFTUnit
&_ssieu) {
75
initiating_event_name
= _ssieu.
getInitiatingEventFTName
();
76
system_ft_top_node_name
= _ssieu.
getSystemFTTopNodeName
();
77
system_ft_basic_event_node_name
= _ssieu.
getSystemFTBasicEventNodeName
();
78
time_at_which_this_IE_activated
= _ssieu.
getTimeAtWhichThisIEActivated
();
79
probability_value_to_act_on_the_system_ft_node
= _ssieu.
getProbabilityValueToActOnTheSystemFTNode
();
80
probability_of_this_initiating_event
= _ssieu.
getProbabilityOfThisInitiatingEvent
();
81
this->
copyStateOfActivation
(_ssieu);
82
this->
Failure_Probability
.
copyProbability
(_ssieu.
Failure_Probability
);
83
}
84
void
InitiatingEventFTUnit::saveInitiatingEventFTUnitToFile
(ofstream &fout) {
85
fout <<
initiating_event_name
<<
' '
86
<<
system_ft_top_node_name
<<
' '
87
<<
system_ft_basic_event_node_name
<<
' '
88
<<
time_at_which_this_IE_activated
<<
' '
89
<<
probability_value_to_act_on_the_system_ft_node
<<
' '
90
<<
probability_of_this_initiating_event
<<
'\n'
;
91
this->
saveStateOfActivationToFile
(fout);
92
this->
Failure_Probability
.
saveProbabilityToFile
(fout);
93
}
94
void
InitiatingEventFTUnit::retrieveInitiatingEventFTUnitFromFile
(ifstream &fin) {
95
fin >>
initiating_event_name
96
>>
system_ft_top_node_name
97
>>
system_ft_basic_event_node_name
98
>>
time_at_which_this_IE_activated
99
>>
probability_value_to_act_on_the_system_ft_node
100
>>
probability_of_this_initiating_event
;
101
this->
retrieveStateOfActivationFromFile
(fin);
102
this->
Failure_Probability
.
retrieveProbabilityFromFile
(fin);
103
}
InitiatingEventFTUnit.h
g_sim
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
Definition:
SimulationContext.cpp:7
HWReliabilityFTUnit
Definition:
HWReliabilityFTUnit.h:20
HWReliabilityModule::getHWReliabilityFTUnit
HWReliabilityFTUnit * getHWReliabilityFTUnit(const std::string)
Finds the fault tree unit whose top node has the given name.
Definition:
HWReliabilityModule.cpp:593
InitiatingEventFTUnit
Definition:
InitiatingEventFTUnit.h:16
InitiatingEventFTUnit::time_at_which_this_IE_activated
double time_at_which_this_IE_activated
Definition:
InitiatingEventFTUnit.h:35
InitiatingEventFTUnit::readInfoFromFile
void readInfoFromFile(std::ifstream &)
Definition:
InitiatingEventFTUnit.cpp:19
InitiatingEventFTUnit::InitiatingEventFTUnit
InitiatingEventFTUnit()
Definition:
InitiatingEventFTUnit.cpp:8
InitiatingEventFTUnit::getTimeAtWhichThisIEActivated
double getTimeAtWhichThisIEActivated() const
Definition:
InitiatingEventFTUnit.cpp:51
InitiatingEventFTUnit::getSystemFTTopNodeName
const std::string & getSystemFTTopNodeName() const
Definition:
InitiatingEventFTUnit.cpp:45
InitiatingEventFTUnit::~InitiatingEventFTUnit
virtual ~InitiatingEventFTUnit()
Definition:
InitiatingEventFTUnit.cpp:16
InitiatingEventFTUnit::saveInitiatingEventFTUnitToFile
void saveInitiatingEventFTUnitToFile(std::ofstream &)
Definition:
InitiatingEventFTUnit.cpp:84
InitiatingEventFTUnit::getSystemFTBasicEventNodeName
const std::string & getSystemFTBasicEventNodeName() const
Definition:
InitiatingEventFTUnit.cpp:48
InitiatingEventFTUnit::probability_value_to_act_on_the_system_ft_node
double probability_value_to_act_on_the_system_ft_node
Definition:
InitiatingEventFTUnit.h:36
InitiatingEventFTUnit::copyInitiatingEventFTUnit
void copyInitiatingEventFTUnit(InitiatingEventFTUnit &)
Definition:
InitiatingEventFTUnit.cpp:74
InitiatingEventFTUnit::system_ft_top_node_name
std::string system_ft_top_node_name
Definition:
InitiatingEventFTUnit.h:34
InitiatingEventFTUnit::probability_of_this_initiating_event
double probability_of_this_initiating_event
Definition:
InitiatingEventFTUnit.h:37
InitiatingEventFTUnit::retrieveInitiatingEventFTUnitFromFile
void retrieveInitiatingEventFTUnitFromFile(std::ifstream &)
Definition:
InitiatingEventFTUnit.cpp:94
InitiatingEventFTUnit::system_ft_basic_event_node_name
std::string system_ft_basic_event_node_name
Definition:
InitiatingEventFTUnit.h:34
InitiatingEventFTUnit::Failure_Probability
Probability Failure_Probability
Definition:
InitiatingEventFTUnit.h:31
InitiatingEventFTUnit::getInitiatingEventFTName
const std::string & getInitiatingEventFTName() const
Definition:
InitiatingEventFTUnit.cpp:42
InitiatingEventFTUnit::getProbabilityValueToActOnTheSystemFTNode
double getProbabilityValueToActOnTheSystemFTNode() const
Definition:
InitiatingEventFTUnit.cpp:54
InitiatingEventFTUnit::checkActivationState
int checkActivationState()
Definition:
InitiatingEventFTUnit.cpp:60
InitiatingEventFTUnit::initiating_event_name
std::string initiating_event_name
Definition:
InitiatingEventFTUnit.h:34
InitiatingEventFTUnit::getProbabilityOfThisInitiatingEvent
double getProbabilityOfThisInitiatingEvent() const
Definition:
InitiatingEventFTUnit.cpp:57
Probability::copyProbability
void copyProbability(Probability &)
Definition:
Probability.cpp:28
Probability::setBeta_Parameter
void setBeta_Parameter(double)
Definition:
Probability.cpp:46
Probability::calculateProbability
double calculateProbability()
Definition:
Probability.cpp:702
Probability::saveProbabilityToFile
void saveProbabilityToFile(std::ofstream &)
Definition:
Probability.cpp:34
Probability::retrieveProbabilityFromFile
void retrieveProbabilityFromFile(std::ifstream &)
Definition:
Probability.cpp:39
Probability::setAlpha_Parameter
void setAlpha_Parameter(double)
Definition:
Probability.cpp:44
StateOfActivation::setStateOfActivation
void setStateOfActivation(int)
Definition:
StateOfActivation.cpp:26
StateOfActivation::saveStateOfActivationToFile
void saveStateOfActivationToFile(std::ofstream &)
Definition:
StateOfActivation.cpp:30
StateOfActivation::getStateOfActivation
int getStateOfActivation()
Definition:
StateOfActivation.cpp:25
StateOfActivation::retrieveStateOfActivationFromFile
void retrieveStateOfActivationFromFile(std::ifstream &)
Definition:
StateOfActivation.cpp:33
StateOfActivation::copyStateOfActivation
void copyStateOfActivation(StateOfActivation &)
Definition:
StateOfActivation.cpp:27
r5pars_
struct @0 r5pars_
sim::Action::Direct
constexpr int Direct
Definition:
SimConstants.h:202
sim::State::Done
constexpr int Done
Definition:
SimConstants.h:123
sim::None
constexpr int None
Definition:
SimConstants.h:75
SimulationContext::System_reliability
HWReliabilityModule System_reliability
Hardware fault trees.
Definition:
SimulationContext.h:53
src
ADSIDAC
Scheduler
InitiatingEventFTUnit.cpp
Generated by
1.9.4