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