TclJoint2dCommand.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 
00022 // $Revision: 1.8 $
00023 // $Date: 2004/09/01 04:01:27 $
00024 // $Source: /usr/local/cvs/OpenSees/SRC/element/joint/TclJoint2dCommand.cpp,v $
00025 
00026 // Written: Arash Altoontash, Gregory Deierlein Created: 04/01
00027 // Revision: 
00028 //                              AA              02/03
00029 //
00030 // Description: This file contains the implementation of the TclModelBuilder_addJoint2D()
00031 // command. 
00032 //
00033 // What: "@(#) TclModelBuilder.C, revA"
00034 
00035 #include <stdlib.h>
00036 #include <string.h>
00037 #include <Domain.h>
00038 
00039 #include <Joint2D.h>
00040 #include <TclModelBuilder.h>
00041 #include <DamageModel.h>
00042 
00043 extern void printCommand(int argc, char **argv);
00044 
00045 int
00046 TclModelBuilder_addJoint2D(ClientData clientData, Tcl_Interp *interp,  
00047                                 int argc, 
00048                                 TCL_Char **argv, 
00049                                 Domain *theTclDomain,
00050                                 TclModelBuilder *theTclBuilder)
00051 {
00052         // ensure the destructor has not been called
00053         if (theTclBuilder == 0) {
00054                 opserr << "WARNING builder has been destroyed\n";
00055                 return TCL_ERROR;
00056         }
00057         
00058         if (theTclBuilder->getNDM() != 2 || theTclBuilder->getNDF() != 3) {
00059                 opserr << "WARNING -- model dimensions and/or nodal DOF not compatible with BCconnect element\n";
00060                 return TCL_ERROR;
00061         }
00062         
00063         // check the number of arguments is correct
00064         int argStart = 2;
00065         
00066         if ( (argc-argStart) != 8 && (argc-argStart) != 10 && (argc-argStart) != 12 && (argc-argStart) != 18) {
00067                 opserr << "WARNING incorrect number of arguments\n";
00068                 opserr << "Want:\n";
00069                 opserr << "element Joint2D Tag? NodI? NodJ? NodK? NodL? NodC? MatC? LrgDsp?\n";
00070                 opserr << "or:\n";
00071                 opserr << "element Joint2D Tag? NodI? NodJ? NodK? NodL? NodC? MatC? LrgDsp? -damage DmgTag?\n";
00072                 opserr << "or:\n";
00073                 opserr << "element Joint2D Tag? NodI? NodJ? NodK? NodL? NodC? MatI? MatJ? MatK? MatL? MatC? LrgDsp?\n";
00074                 opserr << "or:\n";
00075                 opserr << "element Joint2D Tag? NodI? NodJ? NodK? NodL? NodC? MatI? MatJ? MatK? MatL? MatC? LrgDsp? -damage DmgI DmgJ DmgK DmgL DmgC\n";
00076                 return TCL_ERROR;
00077         }
00078         
00079         // get the id and end nodes
00080         int Joint2DId, iNode, jNode, kNode, lNode;
00081         if (Tcl_GetInt(interp, argv[argStart], &Joint2DId) != TCL_OK) {
00082                 opserr << "WARNING invalid Joint2D eleTag" << endln;
00083                 return TCL_ERROR;
00084         }
00085         
00086         if (Tcl_GetInt(interp, argv[1+argStart], &iNode) != TCL_OK) {
00087                 opserr << "WARNING invalid iNode\n";
00088                 opserr << "Joint2D element: " << Joint2DId << endln;
00089                 return TCL_ERROR;
00090         }
00091         
00092         if (Tcl_GetInt(interp, argv[2+argStart], &jNode) != TCL_OK) {
00093                 opserr << "WARNING invalid jNode\n";
00094                 opserr << "Joint2D element: " << Joint2DId << endln;
00095                 return TCL_ERROR;
00096         }
00097         
00098         if (Tcl_GetInt(interp, argv[3+argStart], &kNode) != TCL_OK) {
00099                 opserr << "WARNING invalid kNode\n";
00100                 opserr << "Joint2D element: " << Joint2DId << endln;
00101                 return TCL_ERROR;
00102         }
00103         
00104         if (Tcl_GetInt(interp, argv[4+argStart], &lNode) != TCL_OK) {
00105                 opserr << "WARNING invalid lNode\n";
00106                 opserr << "Joint2D element: " << Joint2DId << endln;
00107                 return TCL_ERROR;
00108         }
00109 
00110         // Get the center node
00111         int CenterNodeTag;
00112         if (Tcl_GetInt(interp, argv[5+argStart], &CenterNodeTag) != TCL_OK) {
00113                 opserr << "WARNING invalid tag for center node\n";
00114                 opserr << "Joint2D element: " << Joint2DId << endln;
00115                 return TCL_ERROR;
00116         }
00117         
00118         // check domain for existence of internal node tag
00119         Node *CenterNode = theTclDomain->getNode(CenterNodeTag);
00120         if (CenterNode != 0) {
00121                 opserr << "WARNING node tag specified for the center node already exists.\n";
00122                 opserr << "Use a new node tag.\n";
00123                 opserr << "Joint2D element: " << Joint2DId << endln;
00124                 return TCL_ERROR;
00125         }
00126         
00127         UniaxialMaterial *MatI = NULL;
00128         UniaxialMaterial *MatJ = NULL;
00129         UniaxialMaterial *MatK = NULL;
00130         UniaxialMaterial *MatL = NULL;
00131         UniaxialMaterial *PanelMaterial = NULL;
00132         Joint2D *theJoint2D;
00133         int LargeDisp;
00134 
00135 
00136         // Decide to use which constructor, based on the number of arguments
00137         if ( (argc-argStart) == 8 || (argc-argStart) == 12 ) {
00138 
00139                 // Using Joint2D constructor without damage 
00140                 
00141                 if ( (argc-argStart) == 8  )
00142                 {
00143                         int PanelMatId;
00144                         if (Tcl_GetInt(interp, argv[6+argStart], &PanelMatId) != TCL_OK) {
00145                                 opserr << "WARNING invalid matID\n";
00146                                 opserr << "Joint2D element: " << Joint2DId << endln;
00147                                 return TCL_ERROR;
00148                         }
00149                         
00150                         if (Tcl_GetInt(interp, argv[7+argStart], &LargeDisp) != TCL_OK) {
00151                                 // use 0 as default
00152                                 LargeDisp = 0;
00153                         }
00154 
00155                         PanelMaterial = theTclBuilder->getUniaxialMaterial(PanelMatId);
00156                         
00157                         if ( PanelMaterial == 0 ) {
00158                                 opserr << "WARNING material not found\n";
00159                                 opserr << "Material: " << PanelMatId;
00160                                 opserr << "\nJoint2D element: " << Joint2DId << endln;
00161                                 return TCL_ERROR;
00162                         }
00163                 }
00164                 
00165                 else                    // if ( (argc-argStart) == 12  )
00166                 {
00167                         int MatIid;
00168                         if (Tcl_GetInt(interp, argv[6+argStart], &MatIid) != TCL_OK) {
00169                                 opserr << "WARNING invalid material ID for spring I\n";
00170                                 opserr << "Joint2D element: " << Joint2DId << endln;
00171                                 return TCL_ERROR;
00172                         }
00173                                         
00174                         if ( MatIid != 0 ) {
00175                                 MatI = theTclBuilder->getUniaxialMaterial(MatIid);
00176                                 
00177                                 if ( MatI == NULL )
00178                                 {
00179                                         opserr << "WARNING material not found\n";
00180                                         opserr << "Material: " << MatIid;
00181                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00182                                         return TCL_ERROR;
00183                                 }
00184                         } else MatI = NULL;
00185                         
00186                         int MatJid;
00187                         if (Tcl_GetInt(interp, argv[7+argStart], &MatJid) != TCL_OK) {
00188                                 opserr << "WARNING invalid material ID for spring J\n";
00189                                 opserr << "Joint2D element: " << Joint2DId << endln;
00190                                 return TCL_ERROR;
00191                         }
00192                         
00193                         if ( MatJid != 0 ) {
00194                                 MatJ = theTclBuilder->getUniaxialMaterial(MatJid);
00195                                 
00196                                 if ( MatJ == NULL )
00197                                 {
00198                                         opserr << "WARNING material not found\n";
00199                                         opserr << "Material: " << MatJid;
00200                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00201                                         return TCL_ERROR;
00202                                 }
00203                         } else MatJ = NULL;
00204 
00205                         
00206                         int MatKid;
00207                         if (Tcl_GetInt(interp, argv[8+argStart], &MatKid) != TCL_OK) {
00208                                 opserr << "WARNING invalid material ID for spring K\n";
00209                                 opserr << "Joint2D element: " << Joint2DId << endln;
00210                                 
00211                                 return TCL_ERROR;
00212                         }
00213                         if ( MatKid != 0 ) {
00214                                 MatK = theTclBuilder->getUniaxialMaterial(MatKid);
00215                                 
00216                                 if ( MatK == NULL )
00217                                 {
00218                                         opserr << "WARNING material not found\n";
00219                                         opserr << "Material: " << MatKid;
00220                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00221                                         return TCL_ERROR;
00222                                 }
00223                         } else MatK = NULL;
00224                         
00225                         int MatLid;
00226                         if (Tcl_GetInt(interp, argv[9+argStart], &MatLid) != TCL_OK) {
00227                                 opserr << "WARNING invalid material ID for spring L\n";
00228                                 opserr << "Joint2D element: " << Joint2DId << endln;
00229                                 return TCL_ERROR;
00230                         }
00231                         if ( MatLid != 0 ) {
00232                                 MatL = theTclBuilder->getUniaxialMaterial(MatLid);
00233                                 
00234                                 if ( MatL == NULL )
00235                                 {
00236                                         opserr << "WARNING material not found\n";
00237                                         opserr << "Material: " << MatLid;
00238                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00239                                         return TCL_ERROR;
00240                                 }
00241                         } else MatL = NULL;
00242                         
00243                         int PanelMatId;
00244                         if (Tcl_GetInt(interp, argv[10+argStart], &PanelMatId) != TCL_OK) {
00245                                 opserr << "WARNING invalid matID\n";
00246                                 opserr << "Joint2D element: " << Joint2DId << endln;
00247                                 return TCL_ERROR;
00248                         }
00249                         PanelMaterial = theTclBuilder->getUniaxialMaterial(PanelMatId);
00250                         
00251                         if ( PanelMaterial == 0 ) {
00252                                 opserr << "WARNING material not found\n";
00253                                 opserr << "Material: " << PanelMatId;
00254                                 opserr << "\nJoint2D element: " << Joint2DId << endln;
00255                                 return TCL_ERROR;
00256                         }
00257 
00258                         if (Tcl_GetInt(interp, argv[11+argStart], &LargeDisp) != TCL_OK) {
00259                                 // use 0 as default
00260                                 LargeDisp = 0;
00261                         }
00262                 }
00263 
00264                 theJoint2D = new Joint2D( Joint2DId,
00265                         iNode,jNode,kNode,lNode,CenterNodeTag,
00266                         *MatI,*MatJ,*MatK,*MatL,*PanelMaterial, 
00267                         theTclDomain, 
00268                         LargeDisp);
00269                 
00270                 if (theJoint2D == 0) {
00271                         opserr << "WARNING ran out of memory creating element\n";
00272                         opserr << "Joint2D element: " << Joint2DId << endln;
00273                         return TCL_ERROR;
00274                 }
00275                 
00276                 if (theTclDomain->addElement(theJoint2D) == false) {
00277                         opserr << "WARNING could not add element to the domain\n";
00278                         opserr << "Joint2D element: " << Joint2DId << endln;
00279                         delete theJoint2D;
00280                         return TCL_ERROR;
00281                 }
00282                 
00283                 // if get here we have sucessfully created the element and added it to the domain
00284                 return TCL_OK;
00285         }
00286         
00287         else if ( (argc-argStart) == 10 || (argc-argStart) == 18 )
00288         { 
00289                 // Using Joint2D constructor with damage 
00290                 DamageModel *DmgI = NULL;
00291                 DamageModel *DmgJ = NULL;
00292                 DamageModel *DmgK = NULL;
00293                 DamageModel *DmgL = NULL;
00294                 DamageModel *PanelDamage = NULL;
00295 
00296                 
00297                 if ( (argc-argStart) == 10  )
00298                 {
00299                         int PanelMatId;
00300                         if (Tcl_GetInt(interp, argv[6+argStart], &PanelMatId) != TCL_OK) {
00301                                 opserr << "WARNING invalid matID\n";
00302                                 opserr << "Joint2D element: " << Joint2DId << endln;
00303                                 return TCL_ERROR;
00304                         }
00305                         
00306                         if (Tcl_GetInt(interp, argv[7+argStart], &LargeDisp) != TCL_OK) {
00307                                 // use 0 as default
00308                                 LargeDisp = 0;
00309                         }
00310 
00311                         PanelMaterial = theTclBuilder->getUniaxialMaterial(PanelMatId);
00312                         
00313                         if ( PanelMaterial == 0 ) {
00314                                 opserr << "WARNING material not found\n";
00315                                 opserr << "Material: " << PanelMatId;
00316                                 opserr << "\nJoint2D element: " << Joint2DId << endln;
00317                                 return TCL_ERROR;
00318                         }
00319 
00320 
00321                         if ( strcmp ( argv[8+argStart] , "-damage") != 0 &&
00322                                 strcmp ( argv[8+argStart] , "-Damage") != 0 )
00323                         {
00324                                 opserr << "WARNING incorrect command line\n";
00325                                 opserr << "\nJoint2D element: " << Joint2DId << endln;
00326                                 return TCL_ERROR;
00327                         
00328                         }
00329 
00330                         int PanelDamageId;
00331                         if (Tcl_GetInt(interp, argv[9+argStart], &PanelDamageId) != TCL_OK) {
00332                                 opserr << "WARNING invalid damageID\n";
00333                                 opserr << "Joint2D element: " << Joint2DId << endln;
00334                                 return TCL_ERROR;
00335                         }
00336                         
00337                         DamageModel *PanelDamage;
00338                         PanelDamage = theTclBuilder->getDamageModel(PanelDamageId);
00339                         
00340                         if ( PanelDamage == 0 ) {
00341                                 opserr << "WARNING damage model not found\n";
00342                                 opserr << "Damage Model: " << PanelDamageId;
00343                                 opserr << "\nJoint2D element: " << Joint2DId << endln;
00344                                 return TCL_ERROR;
00345                         }
00346                 }
00347                 
00348                 else                    // if ( (argc-argStart) == 18  )
00349                 {
00350                         int MatIid;
00351                         if (Tcl_GetInt(interp, argv[6+argStart], &MatIid) != TCL_OK) {
00352                                 opserr << "WARNING invalid material ID for spring I\n";
00353                                 opserr << "Joint2D element: " << Joint2DId << endln;
00354                                 return TCL_ERROR;
00355                         }
00356                                         
00357                         if ( MatIid != 0 ) {
00358                                 MatI = theTclBuilder->getUniaxialMaterial(MatIid);
00359                                 
00360                                 if ( MatI == NULL )
00361                                 {
00362                                         opserr << "WARNING material not found\n";
00363                                         opserr << "Material: " << MatIid;
00364                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00365                                         return TCL_ERROR;
00366                                 }
00367                         } else MatI = NULL;
00368                         
00369                         int MatJid;
00370                         if (Tcl_GetInt(interp, argv[7+argStart], &MatJid) != TCL_OK) {
00371                                 opserr << "WARNING invalid material ID for spring J\n";
00372                                 opserr << "Joint2D element: " << Joint2DId << endln;
00373                                 return TCL_ERROR;
00374                         }
00375                         
00376                         if ( MatJid != 0 ) {
00377                                 MatJ = theTclBuilder->getUniaxialMaterial(MatJid);
00378                                 
00379                                 if ( MatJ == NULL )
00380                                 {
00381                                         opserr << "WARNING material not found\n";
00382                                         opserr << "Material: " << MatJid;
00383                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00384                                         return TCL_ERROR;
00385                                 }
00386                         } else MatJ = NULL;
00387 
00388                         
00389                         int MatKid;
00390                         if (Tcl_GetInt(interp, argv[8+argStart], &MatKid) != TCL_OK) {
00391                                 opserr << "WARNING invalid material ID for spring K\n";
00392                                 opserr << "Joint2D element: " << Joint2DId << endln;
00393                                 
00394                                 return TCL_ERROR;
00395                         }
00396                         if ( MatKid != 0 ) {
00397                                 MatK = theTclBuilder->getUniaxialMaterial(MatKid);
00398                                 
00399                                 if ( MatK == NULL )
00400                                 {
00401                                         opserr << "WARNING material not found\n";
00402                                         opserr << "Material: " << MatKid;
00403                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00404                                         return TCL_ERROR;
00405                                 }
00406                         } else MatK = NULL;
00407                         
00408                         int MatLid;
00409                         if (Tcl_GetInt(interp, argv[9+argStart], &MatLid) != TCL_OK) {
00410                                 opserr << "WARNING invalid material ID for spring L\n";
00411                                 opserr << "Joint2D element: " << Joint2DId << endln;
00412                                 return TCL_ERROR;
00413                         }
00414                         if ( MatLid != 0 ) {
00415                                 MatL = theTclBuilder->getUniaxialMaterial(MatLid);
00416                                 
00417                                 if ( MatL == NULL )
00418                                 {
00419                                         opserr << "WARNING material not found\n";
00420                                         opserr << "Material: " << MatLid;
00421                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00422                                         return TCL_ERROR;
00423                                 }
00424                         } else MatL = NULL;
00425                         
00426                         int PanelMatId;
00427                         if (Tcl_GetInt(interp, argv[10+argStart], &PanelMatId) != TCL_OK) {
00428                                 opserr << "WARNING invalid matID\n";
00429                                 opserr << "Joint2D element: " << Joint2DId << endln;
00430                                 return TCL_ERROR;
00431                         }
00432                         PanelMaterial = theTclBuilder->getUniaxialMaterial(PanelMatId);
00433                         
00434                         if ( PanelMaterial == 0 ) {
00435                                 opserr << "WARNING material not found\n";
00436                                 opserr << "Material: " << PanelMatId;
00437                                 opserr << "\nJoint2D element: " << Joint2DId << endln;
00438                                 return TCL_ERROR;
00439                         }
00440 
00441                         if (Tcl_GetInt(interp, argv[11+argStart], &LargeDisp) != TCL_OK) {
00442                                 // use 0 as default
00443                                 LargeDisp = 0;
00444                         }
00445 
00446                         
00447                         if ( strcmp ( argv[12+argStart] , "-damage") != 0 &&
00448                                 strcmp ( argv[12+argStart] , "-Damage") != 0 )
00449                         {
00450                                 opserr << "WARNING incorrect command line\n";
00451                                 opserr << "\nJoint2D element: " << Joint2DId << endln;
00452                                 return TCL_ERROR;
00453                         
00454                         }
00455 
00456                         int DmgIid;
00457                         if (Tcl_GetInt(interp, argv[13+argStart], &DmgIid) != TCL_OK) {
00458                                 opserr << "WARNING invalid damage model ID for spring I\n";
00459                                 opserr << "Joint2D element: " << Joint2DId << endln;
00460                                 return TCL_ERROR;
00461                         }
00462                                         
00463                         if ( DmgIid != 0  && MatI != 0 ) {
00464                                 DmgI = theTclBuilder->getDamageModel(DmgIid);
00465                                 
00466                                 if ( DmgI == NULL )
00467                                 {
00468                                         opserr << "WARNING damage model not found\n";
00469                                         opserr << "Damage Model: " << DmgIid;
00470                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00471                                         return TCL_ERROR;
00472                                 }
00473                         } else DmgI = NULL;
00474                         
00475                         
00476                         int DmgJid;
00477                         if (Tcl_GetInt(interp, argv[14+argStart], &DmgJid) != TCL_OK) {
00478                                 opserr << "WARNING invalid damage model ID for spring J\n";
00479                                 opserr << "Joint2D element: " << Joint2DId << endln;
00480                                 return TCL_ERROR;
00481                         }
00482                                         
00483                         if ( DmgJid != 0  && MatJ != 0 ) {
00484                                 DmgJ = theTclBuilder->getDamageModel(DmgJid);
00485                                 
00486                                 if ( DmgJ == NULL )
00487                                 {
00488                                         opserr << "WARNING damage model not found\n";
00489                                         opserr << "Damage Model: " << DmgJid;
00490                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00491                                         return TCL_ERROR;
00492                                 }
00493                         } else DmgJ = NULL;
00494 
00495                         
00496                         int DmgKid;
00497                         if (Tcl_GetInt(interp, argv[15+argStart], &DmgKid) != TCL_OK) {
00498                                 opserr << "WARNING invalid damage model ID for spring K\n";
00499                                 opserr << "Joint2D element: " << Joint2DId << endln;
00500                                 return TCL_ERROR;
00501                         }
00502                                         
00503                         if ( DmgKid != 0  && MatK != 0 ) {
00504                                 DmgK = theTclBuilder->getDamageModel(DmgKid);
00505                                 
00506                                 if ( DmgK == NULL )
00507                                 {
00508                                         opserr << "WARNING damage model not found\n";
00509                                         opserr << "Damage Model: " << DmgKid;
00510                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00511                                         return TCL_ERROR;
00512                                 }
00513                         } else DmgK = NULL;
00514                         
00515                                                 
00516                         int DmgLid;
00517                         if (Tcl_GetInt(interp, argv[16+argStart], &DmgLid) != TCL_OK) {
00518                                 opserr << "WARNING invalid damage model ID for spring L\n";
00519                                 opserr << "Joint2D element: " << Joint2DId << endln;
00520                                 return TCL_ERROR;
00521                         }
00522                                         
00523                         if ( DmgLid != 0  && MatL != 0 ) {
00524                                 DmgL = theTclBuilder->getDamageModel(DmgLid);
00525                                 
00526                                 if ( DmgL == NULL )
00527                                 {
00528                                         opserr << "WARNING damage model not found\n";
00529                                         opserr << "Damage Model: " << DmgLid;
00530                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00531                                         return TCL_ERROR;
00532                                 }
00533                         } else DmgL = NULL;
00534                         
00535                         int PanelDmgId;
00536                         if (Tcl_GetInt(interp, argv[17+argStart], &PanelDmgId) != TCL_OK) {
00537                                 opserr << "WARNING invalid panel DmgID\n";
00538                                 opserr << "Joint2D element: " << Joint2DId << endln;
00539                                 return TCL_ERROR;
00540                         }
00541 
00542                         if ( PanelDmgId != 0  && PanelMaterial != 0 ) {
00543                                 PanelDamage = theTclBuilder->getDamageModel(PanelDmgId);
00544                                 
00545                                         if ( PanelDamage == NULL )
00546                                 {
00547                                         opserr << "WARNING damage model not found\n";
00548                                         opserr << "Damage Model: " << PanelDmgId;
00549                                         opserr << "\nJoint2D element: " << Joint2DId << endln;
00550                                         return TCL_ERROR;
00551                                 }
00552                         } else DmgL = NULL;
00553                 
00554                 }
00555 
00556                 theJoint2D = new Joint2D( Joint2DId,
00557                         iNode,jNode,kNode,lNode,CenterNodeTag,
00558                         *MatI,*MatJ,*MatK,*MatL,*PanelMaterial, 
00559                         theTclDomain, LargeDisp,
00560                         *DmgI,*DmgJ,*DmgK,*DmgL,*PanelDamage);
00561                 
00562                 if (theJoint2D == 0) {
00563                         opserr << "WARNING ran out of memory creating element\n";
00564                         opserr << "Joint2D element: " << Joint2DId << endln;
00565                         return TCL_ERROR;
00566                 }
00567                 
00568                 if (theTclDomain->addElement(theJoint2D) == false) {
00569                         opserr << "WARNING could not add element to the domain\n";
00570                         opserr << "Joint2D element: " << Joint2DId << endln;
00571                         delete theJoint2D;
00572                         return TCL_ERROR;
00573                 }
00574                 
00575                 // if get here we have sucessfully created the element and added it to the domain
00576                 return TCL_OK;
00577         }
00578         else 
00579         {
00580                 return TCL_ERROR;
00581         }
00582 }
00583 

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