00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef OpenSeesGFunEvaluator_h
00035 #define OpenSeesGFunEvaluator_h
00036
00037 #include <GFunEvaluator.h>
00038 #include <Vector.h>
00039 #include <ReliabilityDomain.h>
00040 #include <tcl.h>
00041
00042 #include <fstream>
00043 using std::ofstream;
00044
00045
00046 class OpenSeesGFunEvaluator : public GFunEvaluator
00047 {
00048
00049 public:
00050 OpenSeesGFunEvaluator(Tcl_Interp *passedTclInterp,
00051 ReliabilityDomain *passedReliabilityDomain,
00052 TCL_Char *fileName);
00053 OpenSeesGFunEvaluator(Tcl_Interp *passedTclInterp,
00054 ReliabilityDomain *passedReliabilityDomain,
00055 int nsteps, double dt);
00056 ~OpenSeesGFunEvaluator();
00057
00058 int runGFunAnalysis(Vector x);
00059 int tokenizeSpecials(TCL_Char *theExpression);
00060
00061 void setNsteps(int nsteps);
00062 double getDt();
00063
00064 protected:
00065
00066 private:
00067 int createRecorders();
00068 int removeRecorders();
00069 char *rec_node_occurrence(char tempchar[100], bool createRecorders, int &line, int &column);
00070 char *rec_element_occurrence(char tempchar[100], bool createRecorders, int &line, int &column);
00071 char *fileName;
00072 int nsteps;
00073 double dt;
00074
00075 };
00076
00077 #endif