xc
src
reliability
analysis
gFunction
GFunEvaluator.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.4 $
53
// $Date: 2003/10/27 23:45:43 $
54
// $Source: /usr/local/cvs/OpenSees/SRC/reliability/analysis/gFunction/GFunEvaluator.h,v $
55
56
57
//
58
// Written by Terje Haukaas (haukaas@ce.berkeley.edu)
59
//
60
61
#ifndef GFunEvaluator_h
62
#define GFunEvaluator_h
63
64
#include <utility/matrix/Vector.h>
65
#include <reliability/domain/components/ReliabilityDomain.h>
66
#include <tcl.h>
67
68
#include <fstream>
69
using
std::ofstream;
70
71
namespace
XC
{
72
74
//
76
class
GFunEvaluator
77
{
78
protected
:
79
Tcl_Interp *theTclInterp;
80
ReliabilityDomain
*theReliabilityDomain;
81
double
g;
82
int
numberOfEvaluations;
83
84
public
:
85
GFunEvaluator
(Tcl_Interp *theTclInterp,
ReliabilityDomain
*theReliabilityDomain);
86
87
// Methods provided by base class
88
int
evaluateG(
Vector
x);
89
double
getG(
void
);
90
int
initializeNumberOfEvaluations();
91
int
getNumberOfEvaluations();
92
93
// Methods to be implemented by specific classes
94
virtual
int
runGFunAnalysis(
const
Vector
&x)= 0;
95
virtual
int
tokenizeSpecials(
const
std::string &theExpression) =0;
96
97
// Methods implemented by SOME specific classes (random vibrations stuff)
98
virtual
void
setNsteps(
int
nsteps);
99
virtual
double
getDt(
void
);
100
};
101
}
// end of XC namespace
102
103
#endif
104
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::GFunEvaluator
Performance function evaluator.
Definition:
GFunEvaluator.h:76
XC
Open source finite element program for structural analysis.
Definition:
ContinuaReprComponent.h:35
Generated by
1.8.13