xc
src
reliability
analysis
transformation
NatafProbabilityTransformation.h
1
// -*-c++-*-
2
//----------------------------------------------------------------------------
3
// XC program; finite element analysis code
4
// for structural analysis and design.
5
//
6
// Copyright (C) Luis C. Pérez Tato
7
//
8
// This program derives from OpenSees <http://opensees.berkeley.edu>
9
// developed by the «Pacific earthquake engineering research center».
10
//
11
// Except for the restrictions that may arise from the copyright
12
// of the original program (see copyright_opensees.txt)
13
// XC is free software: you can redistribute it and/or modify
14
// it under the terms of the GNU General Public License as published by
15
// the Free Software Foundation, either version 3 of the License, or
16
// (at your option) any later version.
17
//
18
// This software is distributed in the hope that it will be useful, but
19
// WITHOUT ANY WARRANTY; without even the implied warranty of
20
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
// GNU General Public License for more details.
22
//
23
//
24
// You should have received a copy of the GNU General Public License
25
// along with this program.
26
// If not, see <http://www.gnu.org/licenses/>.
27
//----------------------------------------------------------------------------
28
/* ****************************************************************** **
29
** OpenSees - Open System for Earthquake Engineering Simulation **
30
** Pacific Earthquake Engineering Research Center **
31
** **
32
** **
33
** (C) Copyright 2001, The Regents of the University of California **
34
** All Rights Reserved. **
35
** **
36
** Commercial use of this program without express permission of the **
37
** University of California, Berkeley, is strictly prohibited. See **
38
** file 'COPYRIGHT' in main directory for information on usage and **
39
** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
40
** **
41
** Developed by: **
42
** Frank McKenna (fmckenna@ce.berkeley.edu) **
43
** Gregory L. Fenves (fenves@ce.berkeley.edu) **
44
** Filip C. Filippou (filippou@ce.berkeley.edu) **
45
** **
46
** Reliability module developed by: **
47
** Terje Haukaas (haukaas@ce.berkeley.edu) **
48
** Armen Der Kiureghian (adk@ce.berkeley.edu) **
49
** **
50
** ****************************************************************** */
51
52
// $Revision: 1.2 $
53
// $Date: 2003/10/27 23:45:45 $
54
// $Source: /usr/local/cvs/OpenSees/SRC/reliability/analysis/transformation/NatafProbabilityTransformation.h,v $
55
56
57
//
58
// Written by Terje Haukaas (haukaas@ce.berkeley.edu)
59
//
60
61
#ifndef NatafProbabilityTransformation_h
62
#define NatafProbabilityTransformation_h
63
64
#include <utility/matrix/Vector.h>
65
#include <utility/matrix/Matrix.h>
66
#include <reliability/domain/components/ReliabilityDomain.h>
67
#include <reliability/analysis/misc/MatrixOperations.h>
68
69
namespace
XC
{
73
class
NatafProbabilityTransformation
:
public
ProbabilityTransformation
74
{
75
76
public
:
77
NatafProbabilityTransformation
(
ReliabilityDomain
*passedReliabilityDomain,
78
int
printFlag);
79
~
NatafProbabilityTransformation
();
80
81
int
set_x(
Vector
x);
82
int
set_u(
Vector
u);
83
84
int
transform_x_to_u();
85
int
transform_u_to_x();
86
int
transform_u_to_x_andComputeJacobian();
87
88
Vector
get_x();
89
Vector
get_u();
90
Matrix
getJacobian_x_u();
91
Matrix
getJacobian_u_x();
92
93
Vector
meanSensitivityOf_x_to_u(
Vector
&x,
int
gradNumber);
94
Vector
stdvSensitivityOf_x_to_u(
Vector
&x,
int
gradNumber);
95
96
protected
:
97
98
private
:
99
100
// Private data members
101
Vector
*x;
102
Vector
*u;
103
Matrix
*jacobian_x_u;
104
Matrix
*jacobian_u_x;
105
ReliabilityDomain
*theReliabilityDomain;
106
MatrixOperations
*theMatrixOperations;
107
int
nrv;
108
Matrix
*correlationMatrix;
109
Matrix
*lowerCholesky;
110
Matrix
*inverseLowerCholesky;
111
int
printFlag;
112
113
// Private member functions
114
void
setCorrelationMatrix(
int
pertMeanOfThisRV,
int
pertStdvOfThisRV,
double
h);
115
Matrix
getJacobian_z_x(
Vector
x,
Vector
z);
116
Vector
z_to_x(
Vector
z);
117
Vector
x_to_z(
Vector
x);
118
119
// Auxiliary member functions for manual evaluation of
120
// the integral equation to find Nataf correlation
121
double
phi2(
double
z_i,
122
double
z_j,
123
double
rho);
124
double
integrand(
int
rv_i,
125
double
z_i,
126
double
mean_i,
127
double
stdv_i,
128
int
rv_j,
129
double
z_j,
130
double
mean_j,
131
double
stdv_j,
132
double
rho);
133
double
doubleIntegral(
int
rv_i,
134
double
mean_i,
135
double
stdv_i,
136
int
rv_j,
137
double
mean_j,
138
double
stdv_j,
139
double
rho);
140
double
residualFunction(
double
rho_original,
141
double
rho,
142
double
rv_i,
143
double
mean_i,
144
double
stdv_i,
145
double
rv_j,
146
double
mean_j,
147
double
stdv_j);
148
double
solveForCorrelation(
int
rv_i,
int
rv_j,
double
rho_original);
149
};
150
}
// end of XC namespace
151
152
#endif
XC::Vector
Float vector abstraction.
Definition:
Vector.h:94
XC::ReliabilityDomain
Domain that keeps inside the sensitivity, reliability and optimization components are kept...
Definition:
ReliabilityDomain.h:86
XC::MatrixOperations
??
Definition:
MatrixOperations.h:72
XC::NatafProbabilityTransformation
??
Definition:
NatafProbabilityTransformation.h:73
XC::ProbabilityTransformation
??
Definition:
ProbabilityTransformation.h:72
XC
Open source finite element program for structural analysis.
Definition:
ContinuaReprComponent.h:35
XC::Matrix
Matrix of floats.
Definition:
Matrix.h:111
Generated by
1.8.13