MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / analyze

Method analyze

SRC/reliability/analysis/analysis/OutCrossingAnalysis.cpp:93–510  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

91}
92
93int
94OutCrossingAnalysis::analyze(void)
95{
96
97 // Alert the user that the analysis has started
98 opserr << "Out-Crossing Analysis is running ... " << endln;
99
100 // Declare variables used in this method
101 int numRV = theReliabilityDomain->getNumberOfRandomVariables();
102 static NormalRV aStdNormRV(1,0.0,1.0);
103 int numVel, i, j, k, kk, nodeNumber, dofNumber;
104 double dgduValue, accuSum;
105 Vector uStar2(numRV);
106 Vector alpha(numRV), alpha2(numRV), alpha_k(numRV), alpha_kk(numRV);
107 double beta1, beta2;
108 double pf1, pf2;
109// int n_2;
110// double a, b, integral, h, fa, fb, sum_fx2j, sum_fx2j_1, Pmn1;
111// double a, b, c, integral, fa, fb, fc;
112 double a, Pmn1;
113 char string[500];
114
115
116 // Determine number of points
117 double nsteps = stepsToEnd-stepsToStart; //total integration steps
118 int numPoints = (int)floor(nsteps/sampleFreq); // how many time points of computation of outcrossingRate
119 numPoints++;
120 double dt = theGFunEvaluator->getDt(); // integration time step
121 double Dt = dt*impulseFreq; // time between impuses.
122 double T = dt*sampleFreq*numPoints; // total time of last analysis
123
124
125 // Allocate reult vectors
126 Vector nu(numPoints);
127 Vector ED(numPoints);
128 Vector pf(numPoints);
129 Vector beta(numPoints);
130 Matrix Pmn2(numPoints,numPoints);
131 Matrix allAlphas(numRV,numPoints);
132
133
134 // Open output file and start writing to it
135 ofstream outputFile( fileName, ios::out );
136
137
138 // Loop over number of limit-state functions and perform analysis
139 LimitStateFunctionIter lsfIter = theReliabilityDomain->getLimitStateFunctions();
140 LimitStateFunction *theLimitStateFunction;
141 //for (lsf=1; lsf<=numLsf; lsf++ ) {
142 while ((theLimitStateFunction = lsfIter()) != 0) {
143
144 int lsf = theLimitStateFunction->getTag();
145
146 // Inform the user which limit-state function is being evaluated
147 opserr << "Limit-state function number: " << lsf << endln;
148
149
150 // Start printing results to the output file

Callers

nothing calls this directly

Calls 15

findDesignPointMethod · 0.80
setCorrelationMethod · 0.80
getCDFMethod · 0.80
getDtMethod · 0.45
getTagMethod · 0.45
setNstepsMethod · 0.45
getExpressionMethod · 0.45
flushMethod · 0.45
SizeMethod · 0.45
getCDFvalueMethod · 0.45

Tested by

no test coverage detected