TclFedeasMaterialCommand.cpp

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** Developed by:                                                      **
00015 **   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
00016 **   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
00017 **   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
00018 **                                                                    **
00019 ** ****************************************************************** */
00020 
00021 // $Revision: 1.7 $
00022 // $Date: 2006/03/03 19:00:06 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/fedeas/TclFedeasMaterialCommand.cpp,v $
00024 
00025 // Written: MHS
00026 // Created: Aug 2001
00027 //
00028 // Description: This file contains the implementation of the
00029 // TclModelBuilder_addFedeasMaterial() function. 
00030 
00031 #include <FedeasHardeningMaterial.h>
00032 #include <FedeasBond1Material.h>
00033 #include <FedeasBond2Material.h>
00034 #include <FedeasConcr1Material.h>
00035 #include <FedeasConcr2Material.h>
00036 #include <FedeasConcr3Material.h>
00037 #include <FedeasHyster1Material.h>
00038 #include <FedeasHyster2Material.h>
00039 #include <FedeasSteel2Material.h>
00040 #include <FedeasSteel1Material.h>
00041 
00042 #include <TclModelBuilder.h>
00043 #include <Vector.h>
00044 #include <string.h>
00045 
00046 static void printCommand(int argc, TCL_Char **argv)
00047 {
00048     opserr << "Input command: ";
00049     for (int i=0; i<argc; i++)
00050         opserr << argv[i] << " ";
00051     opserr << endln;
00052 } 
00053 
00054 UniaxialMaterial *
00055 TclModelBuilder_addFedeasMaterial(ClientData clientData, Tcl_Interp *interp, int argc, 
00056                                   TCL_Char **argv, TclModelBuilder *theTclBuilder)
00057 {
00058         if (argc < 3) {
00059                 opserr << "WARNING insufficient number of arguments\n";
00060                 printCommand(argc, argv);
00061                 return 0;
00062         }
00063 
00064         int tag;
00065         if (Tcl_GetInt(interp, argv[2], &tag) != TCL_OK) {
00066             opserr << "WARNING invalid uniaxialMaterial tag\n";
00067                 printCommand(argc, argv);
00068             return 0;
00069         }
00070 
00071         UniaxialMaterial *theMaterial = 0;
00072 
00073         if (strcmp(argv[1],"Hardening1") == 0 || strcmp(argv[1],"Hardening01") == 0) {
00074                 if (argc < 7) {
00075                         opserr << "WARNING invalid number of arguments\n";
00076                         printCommand(argc,argv);
00077                         opserr << "Want: uniaxialMaterial Hardening01 tag? E? sigY? Hiso? Hkin?" << endln;
00078                         return 0;
00079                 }
00080                 
00081                 double E, sigY, Hiso, Hkin;
00082 
00083                 if (Tcl_GetDouble(interp, argv[3], &E) != TCL_OK) {
00084                         opserr << "WARNING invalid E\n";
00085                         printCommand(argc, argv);
00086                         return 0;       
00087                 }
00088                 if (Tcl_GetDouble(interp, argv[4], &sigY) != TCL_OK) {
00089                         opserr << "WARNING invalid sigY\n";
00090                         printCommand(argc, argv);
00091                         return 0;       
00092                 }
00093                 if (Tcl_GetDouble(interp, argv[5], &Hiso) != TCL_OK) {
00094                         opserr << "WARNING invalid Hiso\n";
00095                         printCommand(argc, argv);
00096                         return 0;       
00097                 }
00098                 if (Tcl_GetDouble(interp, argv[6], &Hkin) != TCL_OK) {
00099                         opserr << "WARNING invalid Hkin\n";
00100                         printCommand(argc, argv);
00101                         return 0;       
00102                 }
00103 
00104                 theMaterial = new FedeasHardeningMaterial(tag, E, sigY, Hiso, Hkin);
00105         }
00106 
00107         else if (strcmp(argv[1],"Bond1") == 0 || strcmp(argv[1],"Bond01") == 0) {
00108                 if (argc < 15) {
00109                         opserr << "WARNING invalid number of arguments\n";
00110                         printCommand(argc,argv);
00111                         opserr << "Want: uniaxialMaterial Bond01 tag? u1p? q1p? u2p? u3p? q3p? u1n? q1n? u2n? u3n? q3n? s0? bb?" << endln;
00112                         return 0;
00113                 }
00114 
00115                 double u1p, q1p, u2p, u3p, q3p;
00116                 double u1n, q1n, u2n, u3n, q3n;
00117                 double s0, bb;
00118 
00119                 if (Tcl_GetDouble(interp, argv[3], &u1p) != TCL_OK) {
00120                         opserr << "WARNING invalid u1p\n";
00121                         printCommand(argc, argv);
00122                         return 0;       
00123                 }
00124                 if (Tcl_GetDouble(interp, argv[4], &q1p) != TCL_OK) {
00125                         opserr << "WARNING invalid q1p\n";
00126                         printCommand(argc, argv);
00127                         return 0;       
00128                 }
00129                 if (Tcl_GetDouble(interp, argv[5], &u2p) != TCL_OK) {
00130                         opserr << "WARNING invalid u2p\n";
00131                         printCommand(argc, argv);
00132                         return 0;       
00133                 }
00134                 if (Tcl_GetDouble(interp, argv[6], &u3p) != TCL_OK) {
00135                         opserr << "WARNING invalid u3p\n";
00136                         printCommand(argc, argv);
00137                         return 0;       
00138                 }
00139                 if (Tcl_GetDouble(interp, argv[7], &q3p) != TCL_OK) {
00140                         opserr << "WARNING invalid q3p\n";
00141                         printCommand(argc, argv);
00142                         return 0;       
00143                 }
00144 
00145                 if (Tcl_GetDouble(interp, argv[8], &u1n) != TCL_OK) {
00146                         opserr << "WARNING invalid u1n\n";
00147                         printCommand(argc, argv);
00148                         return 0;       
00149                 }
00150                 if (Tcl_GetDouble(interp, argv[9], &q1n) != TCL_OK) {
00151                         opserr << "WARNING invalid q1n\n";
00152                         printCommand(argc, argv);
00153                         return 0;       
00154                 }
00155                 if (Tcl_GetDouble(interp, argv[10], &u2n) != TCL_OK) {
00156                         opserr << "WARNING invalid u2n\n";
00157                         printCommand(argc, argv);
00158                         return 0;       
00159                 }
00160                 if (Tcl_GetDouble(interp, argv[11], &u3n) != TCL_OK) {
00161                         opserr << "WARNING invalid u3n\n";
00162                         printCommand(argc, argv);
00163                         return 0;       
00164                 }
00165                 if (Tcl_GetDouble(interp, argv[12], &q3n) != TCL_OK) {
00166                         opserr << "WARNING invalid q3n\n";
00167                         printCommand(argc, argv);
00168                         return 0;       
00169                 }
00170 
00171                 if (Tcl_GetDouble(interp, argv[13], &s0) != TCL_OK) {
00172                         opserr << "WARNING invalid s0\n";
00173                         printCommand(argc, argv);
00174                         return 0;       
00175                 }
00176                 if (Tcl_GetDouble(interp, argv[14], &bb) != TCL_OK) {
00177                         opserr << "WARNING invalid bb\n";
00178                         printCommand(argc, argv);
00179                         return 0;       
00180                 }
00181 
00182                 theMaterial = new FedeasBond1Material(tag, u1p, q1p, u2p, u3p, q3p,     u1n, q1n, u2n, u3n, q3n, s0, bb);
00183         }
00184 
00185         else if (strcmp(argv[1],"Bond2") == 0 || strcmp(argv[1],"Bond02") == 0) {
00186                 if (argc < 17) {
00187                         opserr << "WARNING invalid number of arguments\n";
00188                         printCommand(argc,argv);
00189                         opserr << "Want: uniaxialMaterial Bond02 tag? u1p? q1p? u2p? u3p? q3p? u1n? q1n? u2n? u3n? q3n? s0? bb? alp? aln?" << endln;
00190                         return 0;
00191                 }
00192 
00193                 double u1p, q1p, u2p, u3p, q3p;
00194                 double u1n, q1n, u2n, u3n, q3n;
00195                 double s0, bb, alp, aln;
00196 
00197                 if (Tcl_GetDouble(interp, argv[3], &u1p) != TCL_OK) {
00198                         opserr << "WARNING invalid u1p\n";
00199                         printCommand(argc, argv);
00200                         return 0;       
00201                 }
00202                 if (Tcl_GetDouble(interp, argv[4], &q1p) != TCL_OK) {
00203                         opserr << "WARNING invalid q1p\n";
00204                         printCommand(argc, argv);
00205                         return 0;       
00206                 }
00207                 if (Tcl_GetDouble(interp, argv[5], &u2p) != TCL_OK) {
00208                         opserr << "WARNING invalid u2p\n";
00209                         printCommand(argc, argv);
00210                         return 0;       
00211                 }
00212                 if (Tcl_GetDouble(interp, argv[6], &u3p) != TCL_OK) {
00213                         opserr << "WARNING invalid u3p\n";
00214                         printCommand(argc, argv);
00215                         return 0;       
00216                 }
00217                 if (Tcl_GetDouble(interp, argv[7], &q3p) != TCL_OK) {
00218                         opserr << "WARNING invalid q3p\n";
00219                         printCommand(argc, argv);
00220                         return 0;       
00221                 }
00222 
00223                 if (Tcl_GetDouble(interp, argv[8], &u1n) != TCL_OK) {
00224                         opserr << "WARNING invalid u1n\n";
00225                         printCommand(argc, argv);
00226                         return 0;       
00227                 }
00228                 if (Tcl_GetDouble(interp, argv[9], &q1n) != TCL_OK) {
00229                         opserr << "WARNING invalid q1n\n";
00230                         printCommand(argc, argv);
00231                         return 0;       
00232                 }
00233                 if (Tcl_GetDouble(interp, argv[10], &u2n) != TCL_OK) {
00234                         opserr << "WARNING invalid u2n\n";
00235                         printCommand(argc, argv);
00236                         return 0;       
00237                 }
00238                 if (Tcl_GetDouble(interp, argv[11], &u3n) != TCL_OK) {
00239                         opserr << "WARNING invalid u3n\n";
00240                         printCommand(argc, argv);
00241                         return 0;       
00242                 }
00243                 if (Tcl_GetDouble(interp, argv[12], &q3n) != TCL_OK) {
00244                         opserr << "WARNING invalid q3n\n";
00245                         printCommand(argc, argv);
00246                         return 0;       
00247                 }
00248 
00249                 if (Tcl_GetDouble(interp, argv[13], &s0) != TCL_OK) {
00250                         opserr << "WARNING invalid s0\n";
00251                         printCommand(argc, argv);
00252                         return 0;       
00253                 }
00254                 if (Tcl_GetDouble(interp, argv[14], &bb) != TCL_OK) {
00255                         opserr << "WARNING invalid bb\n";
00256                         printCommand(argc, argv);
00257                         return 0;       
00258                 }
00259                 if (Tcl_GetDouble(interp, argv[15], &alp) != TCL_OK) {
00260                         opserr << "WARNING invalid alp\n";
00261                         printCommand(argc, argv);
00262                         return 0;       
00263                 }
00264                 if (Tcl_GetDouble(interp, argv[16], &aln) != TCL_OK) {
00265                         opserr << "WARNING invalid aln\n";
00266                         printCommand(argc, argv);
00267                         return 0;       
00268                 }
00269 
00270                 theMaterial = new FedeasBond2Material(tag, u1p, q1p, u2p, u3p, q3p,     u1n, q1n, u2n, u3n, q3n, s0, bb, alp, aln);
00271         }
00272 
00273         else if (strcmp(argv[1],"Concrete1") == 0 || strcmp(argv[1],"concrete01") == 0) {
00274                 if (argc < 7) {
00275                         opserr << "WARNING invalid number of arguments\n";
00276                         printCommand(argc,argv);
00277                         opserr << "Want: uniaxialMaterial Concrete01 tag? fpc? epsc0? fpcu? epscu?" << endln;
00278                         return 0;
00279                 }    
00280 
00281                 double fpc, epsc0, fpcu, epscu;
00282 
00283                 if (Tcl_GetDouble(interp, argv[3], &fpc) != TCL_OK) {
00284                         opserr << "WARNING invalid fpc\n";
00285                         printCommand(argc, argv);
00286                         return 0;       
00287                 }
00288                 if (Tcl_GetDouble(interp, argv[4], &epsc0) != TCL_OK) {
00289                         opserr << "WARNING invalid epsc0\n";
00290                         printCommand(argc, argv);
00291                         return 0;       
00292                 }
00293                 if (Tcl_GetDouble(interp, argv[5], &fpcu) != TCL_OK) {
00294                         opserr << "WARNING invalid fpcu\n";
00295                         printCommand(argc, argv);
00296                         return 0;       
00297                 }
00298                 if (Tcl_GetDouble(interp, argv[6], &epscu) != TCL_OK) {
00299                         opserr << "WARNING invalid epscu\n";
00300                         printCommand(argc, argv);
00301                         return 0;       
00302                 }
00303 
00304                 theMaterial = new FedeasConcr1Material(tag, fpc, epsc0, fpcu, epscu);
00305         }
00306 
00307         else if (strcmp(argv[1],"concr2") == 0) {
00308                 if (argc < 10) {
00309                         opserr << "WARNING invalid number of arguments\n";
00310                         printCommand(argc,argv);
00311                         opserr << "Want: uniaxialMaterial Concrete02 tag? fpc? epsc0? fpcu? epscu? rat? ft? Ets?" << endln;
00312                         return 0;
00313                 }    
00314 
00315                 double fpc, epsc0, fpcu, epscu;
00316                 double rat, ft, Ets;
00317 
00318                 if (Tcl_GetDouble(interp, argv[3], &fpc) != TCL_OK) {
00319                         opserr << "WARNING invalid fpc\n";
00320                         printCommand(argc, argv);
00321                         return 0;       
00322                 }
00323                 if (Tcl_GetDouble(interp, argv[4], &epsc0) != TCL_OK) {
00324                         opserr << "WARNING invalid epsc0\n";
00325                         printCommand(argc, argv);
00326                         return 0;       
00327                 }
00328                 if (Tcl_GetDouble(interp, argv[5], &fpcu) != TCL_OK) {
00329                         opserr << "WARNING invalid fpcu\n";
00330                         printCommand(argc, argv);
00331                         return 0;       
00332                 }
00333                 if (Tcl_GetDouble(interp, argv[6], &epscu) != TCL_OK) {
00334                         opserr << "WARNING invalid epscu\n";
00335                         printCommand(argc, argv);
00336                         return 0;       
00337                 }
00338                 if (Tcl_GetDouble(interp, argv[7], &rat) != TCL_OK) {
00339                         opserr << "WARNING invalid rat\n";
00340                         printCommand(argc, argv);
00341                         return 0;       
00342                 }
00343                 if (Tcl_GetDouble(interp, argv[8], &ft) != TCL_OK) {
00344                         opserr << "WARNING invalid ft\n";
00345                         printCommand(argc, argv);
00346                         return 0;       
00347                 }
00348                 if (Tcl_GetDouble(interp, argv[9], &Ets) != TCL_OK) {
00349                         opserr << "WARNING invalid Ets\n";
00350                         printCommand(argc, argv);
00351                         return 0;       
00352                 }
00353 
00354                 theMaterial = new FedeasConcr2Material(tag, fpc, epsc0, fpcu, epscu, rat, ft, Ets);
00355         }
00356 
00357         else if (strcmp(argv[1],"Concrete3") == 0 || strcmp(argv[1],"Concrete03") == 0) {
00358                 if (argc < 13) {
00359                         opserr << "WARNING invalid number of arguments\n";
00360                         printCommand(argc,argv);
00361                         opserr << "Want: uniaxialMaterial Concrete03 tag? fpc? epsc0? fpcu? epscu? rat? ft? epst0? ft0? beta? epstu?" << endln;
00362                         return 0;
00363                 }    
00364 
00365                 double fpc, epsc0, fpcu, epscu;
00366                 double rat, ft, epst0, ft0, beta, epstu;
00367 
00368                 if (Tcl_GetDouble(interp, argv[3], &fpc) != TCL_OK) {
00369                         opserr << "WARNING invalid fpc\n";
00370                         printCommand(argc, argv);
00371                         return 0;       
00372                 }
00373                 if (Tcl_GetDouble(interp, argv[4], &epsc0) != TCL_OK) {
00374                         opserr << "WARNING invalid epsc0\n";
00375                         printCommand(argc, argv);
00376                         return 0;       
00377                 }
00378                 if (Tcl_GetDouble(interp, argv[5], &fpcu) != TCL_OK) {
00379                         opserr << "WARNING invalid fpcu\n";
00380                         printCommand(argc, argv);
00381                         return 0;       
00382                 }
00383                 if (Tcl_GetDouble(interp, argv[6], &epscu) != TCL_OK) {
00384                         opserr << "WARNING invalid epscu\n";
00385                         printCommand(argc, argv);
00386                         return 0;       
00387                 }
00388                 if (Tcl_GetDouble(interp, argv[7], &rat) != TCL_OK) {
00389                         opserr << "WARNING invalid rat\n";
00390                         printCommand(argc, argv);
00391                         return 0;       
00392                 }
00393                 if (Tcl_GetDouble(interp, argv[8], &ft) != TCL_OK) {
00394                         opserr << "WARNING invalid ft\n";
00395                         printCommand(argc, argv);
00396                         return 0;       
00397                 }
00398                 if (Tcl_GetDouble(interp, argv[9], &epst0) != TCL_OK) {
00399                         opserr << "WARNING invalid epst0\n";
00400                         printCommand(argc, argv);
00401                         return 0;       
00402                 }
00403                 if (Tcl_GetDouble(interp, argv[10], &ft0) != TCL_OK) {
00404                         opserr << "WARNING invalid ft0\n";
00405                         printCommand(argc, argv);
00406                         return 0;       
00407                 }
00408                 if (Tcl_GetDouble(interp, argv[11], &beta) != TCL_OK) {
00409                         opserr << "WARNING invalid beta\n";
00410                         printCommand(argc, argv);
00411                         return 0;       
00412                 }
00413                 if (Tcl_GetDouble(interp, argv[12], &epstu) != TCL_OK) {
00414                         opserr << "WARNING invalid epstu\n";
00415                         printCommand(argc, argv);
00416                         return 0;       
00417                 }
00418 
00419                 theMaterial = new FedeasConcr3Material(tag, fpc, epsc0, fpcu, epscu, rat, ft, epst0, ft0, beta, epstu);
00420         }
00421 
00422         else if (strcmp(argv[1],"Hysteretic1") == 0 || strcmp(argv[1],"Hysteretic01") == 0) {
00423                 if (argc < 15) {
00424                         opserr << "WARNING invalid number of arguments\n";
00425                         printCommand(argc,argv);
00426                         opserr << "Want: uniaxialMaterial Hysteretic01 tag? s1p? e1p? s2p? e2p? s1n? e1n? s2n? e1n? px? py? d1? d2?" << endln;
00427                         return 0;
00428                 }    
00429 
00430                 double s1p, e1p, s2p, e2p;
00431                 double s1n, e1n, s2n, e2n;
00432                 double px, py, d1, d2;
00433 
00434                 if (Tcl_GetDouble(interp, argv[3], &s1p) != TCL_OK) {
00435                         opserr << "WARNING invalid s1p\n";
00436                         printCommand(argc, argv);
00437                         return 0;       
00438                 }
00439                 if (Tcl_GetDouble(interp, argv[4], &e1p) != TCL_OK) {
00440                         opserr << "WARNING invalid e1p\n";
00441                         printCommand(argc, argv);
00442                         return 0;       
00443                 }
00444                 if (Tcl_GetDouble(interp, argv[5], &s2p) != TCL_OK) {
00445                         opserr << "WARNING invalid s2p\n";
00446                         printCommand(argc, argv);
00447                         return 0;       
00448                 }
00449                 if (Tcl_GetDouble(interp, argv[6], &e2p) != TCL_OK) {
00450                         opserr << "WARNING invalid e2p\n";
00451                         printCommand(argc, argv);
00452                         return 0;       
00453                 }
00454                 if (Tcl_GetDouble(interp, argv[7], &s1n) != TCL_OK) {
00455                         opserr << "WARNING invalid s1n\n";
00456                         printCommand(argc, argv);
00457                         return 0;       
00458                 }
00459                 if (Tcl_GetDouble(interp, argv[8], &e1n) != TCL_OK) {
00460                         opserr << "WARNING invalid e1n\n";
00461                         printCommand(argc, argv);
00462                         return 0;       
00463                 }
00464                 if (Tcl_GetDouble(interp, argv[9], &s2n) != TCL_OK) {
00465                         opserr << "WARNING invalid s2n\n";
00466                         printCommand(argc, argv);
00467                         return 0;       
00468                 }
00469                 if (Tcl_GetDouble(interp, argv[10], &e2n) != TCL_OK) {
00470                         opserr << "WARNING invalid e2n\n";
00471                         printCommand(argc, argv);
00472                         return 0;       
00473                 }
00474                 if (Tcl_GetDouble(interp, argv[11], &px) != TCL_OK) {
00475                         opserr << "WARNING invalid px\n";
00476                         printCommand(argc, argv);
00477                         return 0;       
00478                 }
00479                 if (Tcl_GetDouble(interp, argv[12], &py) != TCL_OK) {
00480                         opserr << "WARNING invalid py\n";
00481                         printCommand(argc, argv);
00482                         return 0;       
00483                 }
00484                 if (Tcl_GetDouble(interp, argv[13], &d1) != TCL_OK) {
00485                         opserr << "WARNING invalid d1\n";
00486                         printCommand(argc, argv);
00487                         return 0;       
00488                 }
00489                 if (Tcl_GetDouble(interp, argv[14], &d2) != TCL_OK) {
00490                         opserr << "WARNING invalid d2\n";
00491                         printCommand(argc, argv);
00492                         return 0;       
00493                 }
00494 
00495                 theMaterial = new FedeasHyster1Material(tag, s1p, e1p, s2p, e2p, s1n, e1n, s2n, e2n, px, py, d1, d2);
00496         }
00497 
00498         else if (strcmp(argv[1],"Hysteretic2") == 0 || strcmp(argv[1],"Hysteretic02") == 0) {
00499                 if (argc < 19) {
00500                         opserr << "WARNING invalid number of arguments\n";
00501                         printCommand(argc,argv);
00502                         opserr << "Want: uniaxialMaterial Hysteretic02 tag? s1p? e1p? s2p? e2p? s3p? e3p? s1n? e1n? s2n? e1n? s3n? e3n? px? py? d1? d2?" << endln;
00503                         return 0;
00504                 }    
00505 
00506                 double s1p, e1p, s2p, e2p, s3p, e3p;
00507                 double s1n, e1n, s2n, e2n, s3n, e3n;
00508                 double px, py, d1, d2;
00509 
00510                 if (Tcl_GetDouble(interp, argv[3], &s1p) != TCL_OK) {
00511                         opserr << "WARNING invalid s1p\n";
00512                         printCommand(argc, argv);
00513                         return 0;       
00514                 }
00515                 if (Tcl_GetDouble(interp, argv[4], &e1p) != TCL_OK) {
00516                         opserr << "WARNING invalid e1p\n";
00517                         printCommand(argc, argv);
00518                         return 0;       
00519                 }
00520                 if (Tcl_GetDouble(interp, argv[5], &s2p) != TCL_OK) {
00521                         opserr << "WARNING invalid s2p\n";
00522                         printCommand(argc, argv);
00523                         return 0;       
00524                 }
00525                 if (Tcl_GetDouble(interp, argv[6], &e2p) != TCL_OK) {
00526                         opserr << "WARNING invalid e2p\n";
00527                         printCommand(argc, argv);
00528                         return 0;       
00529                 }
00530                 if (Tcl_GetDouble(interp, argv[7], &s3p) != TCL_OK) {
00531                         opserr << "WARNING invalid s2p\n";
00532                         printCommand(argc, argv);
00533                         return 0;       
00534                 }
00535                 if (Tcl_GetDouble(interp, argv[8], &e3p) != TCL_OK) {
00536                         opserr << "WARNING invalid e2p\n";
00537                         printCommand(argc, argv);
00538                         return 0;       
00539                 }
00540                 if (Tcl_GetDouble(interp, argv[9], &s1n) != TCL_OK) {
00541                         opserr << "WARNING invalid s1n\n";
00542                         printCommand(argc, argv);
00543                         return 0;       
00544                 }
00545                 if (Tcl_GetDouble(interp, argv[10], &e1n) != TCL_OK) {
00546                         opserr << "WARNING invalid e1n\n";
00547                         printCommand(argc, argv);
00548                         return 0;       
00549                 }
00550                 if (Tcl_GetDouble(interp, argv[11], &s2n) != TCL_OK) {
00551                         opserr << "WARNING invalid s2n\n";
00552                         printCommand(argc, argv);
00553                         return 0;       
00554                 }
00555                 if (Tcl_GetDouble(interp, argv[12], &e2n) != TCL_OK) {
00556                         opserr << "WARNING invalid e2n\n";
00557                         printCommand(argc, argv);
00558                         return 0;       
00559                 }
00560                 if (Tcl_GetDouble(interp, argv[13], &s3n) != TCL_OK) {
00561                         opserr << "WARNING invalid s2n\n";
00562                         printCommand(argc, argv);
00563                         return 0;       
00564                 }
00565                 if (Tcl_GetDouble(interp, argv[14], &e3n) != TCL_OK) {
00566                         opserr << "WARNING invalid e2n\n";
00567                         printCommand(argc, argv);
00568                         return 0;       
00569                 }
00570                 if (Tcl_GetDouble(interp, argv[15], &px) != TCL_OK) {
00571                         opserr << "WARNING invalid px\n";
00572                         printCommand(argc, argv);
00573                         return 0;       
00574                 }
00575                 if (Tcl_GetDouble(interp, argv[16], &py) != TCL_OK) {
00576                         opserr << "WARNING invalid py\n";
00577                         printCommand(argc, argv);
00578                         return 0;       
00579                 }
00580                 if (Tcl_GetDouble(interp, argv[17], &d1) != TCL_OK) {
00581                         opserr << "WARNING invalid d1\n";
00582                         printCommand(argc, argv);
00583                         return 0;       
00584                 }
00585                 if (Tcl_GetDouble(interp, argv[18], &d2) != TCL_OK) {
00586                         opserr << "WARNING invalid d2\n";
00587                         printCommand(argc, argv);
00588                         return 0;       
00589                 }
00590 
00591                 theMaterial = new FedeasHyster2Material(tag, s1p, e1p, s2p, e2p, s3p, e3p, s1n, e1n, s2n, e2n, s3n, e3n, px, py, d1, d2);
00592         }
00593 
00594         else if (strcmp(argv[1],"Steel1") == 0 || strcmp(argv[1],"Steel01") == 0) {
00595                 if (argc < 6) {
00596                         opserr << "WARNING invalid number of arguments\n";
00597                         printCommand(argc,argv);
00598                         opserr << "Want: uniaxialMaterial Steel01 tag? fy? E? b? <a1? a2? a3? a4?>" << endln;
00599                         return 0;
00600                 }
00601 
00602                 double fy, E, b;
00603                 double a1, a2, a3, a4;
00604 
00605                 if (Tcl_GetDouble(interp, argv[3], &fy) != TCL_OK) {
00606                         opserr << "WARNING invalid fy\n";
00607                         printCommand(argc, argv);
00608                         return 0;       
00609                 }
00610                 if (Tcl_GetDouble(interp, argv[4], &E) != TCL_OK) {
00611                         opserr << "WARNING invalid E\n";
00612                         printCommand(argc, argv);
00613                         return 0;       
00614                 }
00615                 if (Tcl_GetDouble(interp, argv[5], &b) != TCL_OK) {
00616                         opserr << "WARNING invalid b\n";
00617                         printCommand(argc, argv);
00618                         return 0;       
00619                 }
00620                 if (argc > 9) {
00621                         if (Tcl_GetDouble(interp, argv[6], &a1) != TCL_OK) {
00622                                 opserr << "WARNING invalid a1\n";
00623                                 printCommand(argc, argv);
00624                                 return 0;       
00625                         }
00626                         if (Tcl_GetDouble(interp, argv[7], &a2) != TCL_OK) {
00627                                 opserr << "WARNING invalid a2\n";
00628                                 printCommand(argc, argv);
00629                                 return 0;       
00630                         }
00631                         if (Tcl_GetDouble(interp, argv[8], &a3) != TCL_OK) {
00632                                 opserr << "WARNING invalid a3\n";
00633                                 printCommand(argc, argv);
00634                                 return 0;       
00635                         }
00636                         if (Tcl_GetDouble(interp, argv[9], &a4) != TCL_OK) {
00637                                 opserr << "WARNING invalid a4\n";
00638                                 printCommand(argc, argv);
00639                                 return 0;       
00640                         }
00641                         theMaterial = new FedeasSteel1Material(tag, fy, E, b, a1, a2, a3, a4);
00642                 }
00643                 else
00644                         theMaterial = new FedeasSteel1Material(tag, fy, E, b);
00645         }
00646 
00647         else if (strcmp(argv[1],"steel2") == 0) {
00648                 if (argc < 6) {
00649                         opserr << "WARNING invalid number of arguments\n";
00650                         printCommand(argc,argv);
00651                         opserr << "Want: uniaxialMaterial Steel02 tag? fy? E? b? <R0? cR1? cR2? <a1? a2? a3? a4?>>" << endln;
00652                         return 0;
00653                 }    
00654 
00655                 double fy, E, b;
00656                 double R0, cR1, cR2;
00657                 double a1, a2, a3, a4;
00658 
00659                 if (Tcl_GetDouble(interp, argv[3], &fy) != TCL_OK) {
00660                         opserr << "WARNING invalid fy\n";
00661                         printCommand(argc, argv);
00662                         return 0;       
00663                 }
00664                 if (Tcl_GetDouble(interp, argv[4], &E) != TCL_OK) {
00665                         opserr << "WARNING invalid E\n";
00666                         printCommand(argc, argv);
00667                         return 0;       
00668                 }
00669                 if (Tcl_GetDouble(interp, argv[5], &b) != TCL_OK) {
00670                         opserr << "WARNING invalid b\n";
00671                         printCommand(argc, argv);
00672                         return 0;       
00673                 }
00674                 if (argc > 8) {
00675                         if (Tcl_GetDouble(interp, argv[6], &R0) != TCL_OK) {
00676                                 opserr << "WARNING invalid R0\n";
00677                                 printCommand(argc, argv);
00678                                 return 0;       
00679                         }
00680                         if (Tcl_GetDouble(interp, argv[7], &cR1) != TCL_OK) {
00681                                 opserr << "WARNING invalid cR1\n";
00682                                 printCommand(argc, argv);
00683                                 return 0;       
00684                         }
00685                         if (Tcl_GetDouble(interp, argv[8], &cR2) != TCL_OK) {
00686                                 opserr << "WARNING invalid cR2\n";
00687                                 printCommand(argc, argv);
00688                                 return 0;       
00689                         }
00690                         if (argc > 12) {
00691                                 if (Tcl_GetDouble(interp, argv[9], &a1) != TCL_OK) {
00692                                         opserr << "WARNING invalid a1\n";
00693                                         printCommand(argc, argv);
00694                                         return 0;       
00695                                 }
00696                                 if (Tcl_GetDouble(interp, argv[10], &a2) != TCL_OK) {
00697                                         opserr << "WARNING invalid a2\n";
00698                                         printCommand(argc, argv);
00699                                         return 0;       
00700                                 }
00701                                 if (Tcl_GetDouble(interp, argv[11], &a3) != TCL_OK) {
00702                                         opserr << "WARNING invalid a3\n";
00703                                         printCommand(argc, argv);
00704                                         return 0;       
00705                                 }
00706                                 if (Tcl_GetDouble(interp, argv[12], &a4) != TCL_OK) {
00707                                         opserr << "WARNING invalid a4\n";
00708                                         printCommand(argc, argv);
00709                                         return 0;       
00710                                 }
00711                                 theMaterial = new FedeasSteel2Material(tag, fy, E, b, R0, cR1, cR2, a1, a2, a3, a4);
00712                         }
00713                         else
00714                                 theMaterial = new FedeasSteel2Material(tag, fy, E, b, R0, cR1, cR2);
00715                 }
00716                 else
00717                         theMaterial = new FedeasSteel2Material(tag, fy, E, b);
00718 
00719         }
00720 
00721         return theMaterial;
00722 }

Generated on Mon Oct 23 15:05:20 2006 for OpenSees by doxygen 1.5.0