void * OPS_NewManzariDafaliasMaterialRO(void) { if (numManzariDafaliasMaterials == 0) { numManzariDafaliasMaterials++; opserr << "ManzariDafaliasRO nDmaterial - Written: A.Ghofrani, P.Arduino, U.Washington\n"; } NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 22) { opserr << "Want: nDMaterial ManzariDafaliasRO tag? G0? nu? B? a1? gamma1? e_init? Mc? c? lambda_c? e0? ksi?" << " P_atm? m? h0? Ch? nb? A0? nd? z_max? cz? Rho? <kappa? IntScheme? TanType? JacoType? TolF? TolR?>" << endln; return 0; } int tag; double dData[21]; double oData[6]; oData[0] = 2.0; // kappa (Ramberg Osgood) oData[1] = 2; // IntScheme oData[2] = 2; // TanType oData[3] = 1; // JacoType oData[4] = 1.0e-7; // TolF oData[5] = 1.0e-7; // TolR int numData = 1; if (OPS_GetInt(&numData, &tag) != 0) { opserr << "WARNING invalid nDMaterial ManzariDafaliasRO material tag" << endln; return 0; } numData = 21; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid material data for nDMaterial ManzariDafaliasRO material with tag: " << tag << endln; return 0; } numData = numArgs - 22; if (numData != 0) if (OPS_GetDouble(&numData, oData) != 0) { opserr << "WARNING invalid material data for nDMaterial ManzariDafaliasRO material with tag: " << tag << endln; return 0; } theMaterial = new ManzariDafaliasRO(tag, ND_TAG_ManzariDafaliasRO , dData[0] , dData[1] , dData[2] , dData[3] , dData[4] , dData[5] , dData[6] , dData[7] , dData[8] , dData[9] , dData[10], dData[11], dData[12], dData[13], dData[14], dData[15], dData[16], dData[17], dData[18], dData[19], dData[20], oData[0],(int)oData[1], (int)oData[2], (int)oData[3], oData[4], oData[5]); if (theMaterial == 0) { opserr << "WARNING ran out of memory for nDMaterial ManzariDafaliasRO material with tag: " << tag << endln; } return theMaterial; }
void * OPS_MaterialCMM(void) { NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 2 + MaterialCMM_NumParameters) { opserr << "Want: insufficient args: nDMaterial MaterialCMMc $tag $layer 71 parameters!" << endln; return 0; } int iData[2]; double dData[MaterialCMM_NumParameters]; int numData = 2; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer tag: nDMaterial ElasticOrthotropic \n"; return 0; } numData = MaterialCMM_NumParameters; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid data: nDMaterial EasticIsotropic : " << iData[0] <<"\n"; return 0; } theMaterial = new MaterialCMM(iData[0], iData[1], dData); return theMaterial; }
OPS_Export void * OPS_NewDruckerPragerMaterial(void) { if (numDruckerPragerMaterials == 0) { numDruckerPragerMaterials++; //opserr << "DruckerPrager nDmaterial - Written: K.Petek, P.Mackenzie-Helnwein, P.Arduino, U.Washington\n"; } // Pointer to a uniaxial material that will be returned NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 12) { opserr << "Want: nDMaterial DruckerPrager tag? K? G? sigma_y? rho? rho_bar? Kinf? Ko? delta1? delta2? H? theta? <massDensity? atm?>" << endln; return 0; } int tag; double dData[14]; int numData = 1; if (OPS_GetInt(&numData, &tag) != 0) { opserr << "WARNING invalid nDMaterial DruckerPrager material tag" << endln; return 0; } if (numArgs == 12) { numData = 11; } else if (numArgs == 13) { numData = 12; } else { numData = 13; } if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid material data for nDMaterial DruckerPrager material with tag: " << tag << endln; return 0; } if (numArgs == 12) { theMaterial = new DruckerPrager(tag, 0, dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7], dData[8], dData[9], dData[10]); } else if (numArgs == 13) { theMaterial = new DruckerPrager(tag, 0, dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7], dData[8], dData[9], dData[10], dData[11]); } else { theMaterial = new DruckerPrager(tag, 0, dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7], dData[8], dData[9], dData[10], dData[11], dData[12]); } if (theMaterial == 0) { opserr << "WARNING ran out of memory for nDMaterial DruckerPrager material with tag: " << tag << endln; } return theMaterial; }
OPS_Export void * OPS_StressDensityMaterial(void) { static int numStressDensity = 0; if(numStressDensity == 0) { opserr << "stressDensity nDMaterial - Written: Saumyasuchi Das, U.Canterbury\n" << endln; numStressDensity++; } NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 18) { opserr << "ERROR stressDensity nDMaterial: Insufficient mandatory input arguments" << endln; opserr << "WANT: nDmaterial stressDensity tag mDen eNot A n nu a1 b1 a2 b2 a3 b3 fd muNot muCyc sc M patm" endln; return 0; } else if (numArgs > 18 && numArgs < 27) { opserr << "ERROR: stressDensity nDMaterial: Insufficient optional SSL void ratio arguments" << endln; opserr << "ssl1-ssl7, hsl, and pmin must all be specified if defaults are not used" << endln; return 0; } int tag; double dData[26]; int numData = 1; if (OPS_GetInt(&numData, &tag) != 0) { opserr << "WARNING: invalied nDMaterial stressDensity material tag" << endln; return 0; } numData = numArgs-1; if (OPS_GetDouble(&numData, dData) !=0) { opserr << "WARNING: invalid material data for nDMaterial stressDensity with tag: " << tag << endln; return 0; } if (numArgs == 18) { theMaterial = new stressDensity(tag, 0, dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7], dData[8], dData[9], dData[10], dData[11], dData[12], dData[13], dData[14], dData[15], dData[16]); } else if (numArgs == 27) { theMaterial = new stressDensity(tag, 0, dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7], dData[8], dData[9], dData[10], dData[11], dData[12], dData[13], dData[14], dData[15], dData[16], dData[17], dData[18], dData[19], dData[20], dData[21], dData[22], dData[23], dData[24], dData[25]); } if (theMaterial == 0) { opserr << "WARNING: ran out of memory for nDMaterial stressDensity with tag: " << tag << endln; } return theMaterial; }
void * OPS_ContactMaterial2DMaterial(void) { if (numContactMaterial2DMaterials == 0) { numContactMaterial2DMaterials++; opserr << "ContactMaterial2D nDmaterial - Written: K.Petek, P.Mackenzie-Helnwein, P.Arduino, U.Washington\n"; } // Pointer to a nDmaterial that will be returned NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 5) { opserr << "Want: nDMaterial ContactMaterial2D tag? mu? G? c? t?\n"; return 0; } int tag; double dData[4]; int numData = 1; if (OPS_GetInt(&numData, &tag) != 0) { opserr << "WARNING invalid tag for ContactMaterial2D material" << endln; return 0; } numData = 4; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid material data for nDMaterial ContactMaterial2D material with tag: " << tag << endln; return 0; } theMaterial = new ContactMaterial2D(tag, dData[0], dData[1], dData[2], dData[3]); if (theMaterial == 0) { opserr << "WARNING ran out of memory for nDMaterial ContactMaterial2D material with tag: " << tag << endln; } return theMaterial; }
void * OPS_ElasticOrthotropicMaterial(void) { NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 10) { opserr << "Want: nDMaterial ElasticOrthotropic $tag $Ex $Ey $Ez $vxy $vyz $vzx $Gxy $Gyz $Gzx <$rho>" << endln; return 0; } int iData[1]; double dData[10]; dData[9] = 0.0; int numData = 1; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer tag: nDMaterial ElasticOrthotropic \n"; return 0; } if (numArgs > 10) numData = 10; else numData = 9; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid data: nDMaterial EasticIsotropic : " << iData[0] <<"\n"; return 0; } theMaterial = new ElasticOrthotropicMaterial(iData[0], dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7], dData[8], dData[9]); return theMaterial; }
void * OPS_NewShellMITC9(void) { if (numShellMITC9 == 0) { opserr << "Using ShellMITC9 - Developed by: Leopoldo Tesser and Diego A. Talledo\n"; numShellMITC9++; } Element *theElement = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 11) { opserr << "Want: element ShellMITC9 $tag $node1 $node2 .... $node9 $secTag"; return 0; } int iData[11]; int numData = 11; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer tag: element ShellMITC9\n"; return 0; } SectionForceDeformation *theSection = OPS_GetSectionForceDeformation(iData[10]); if (theSection == 0) { opserr << "ERROR: element ShellMITC9 " << iData[0] << "section " << iData[10] << " not found\n"; return 0; } theElement = new ShellMITC9(iData[0], iData[1], iData[2], iData[3], iData[4], iData[5], iData[6], iData[7], iData[8], iData[9], *theSection); return theElement; }
void * OPS_J2BeamFiber2dMaterial(void) { NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 6) { opserr << "Want: nDMaterial J2BeamFiber $tag $E $v $sigmaY $Hiso $Hkin <$rho>" << endln; return 0; } int iData[1]; double dData[6]; dData[5] = 0.0; int numData = 1; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer tag: nDMaterial J2BeamFiber \n"; return 0; } if (numArgs > 6) numData = 6; else numData = 5; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid data: nDMaterial J2BeamFiber : " << iData[0] <<"\n"; return 0; } theMaterial = new J2BeamFiber2d(iData[0], dData[0], dData[1], dData[2], dData[3], dData[4]); return theMaterial; }
void * OPS_NewElasticIsotropicMaterial(void) { NDMaterial *theMaterial = 0; int numArgs = OPS_GetNumRemainingInputArgs(); if (numArgs < 3) { opserr << "Want: nDMaterial ElasticIsotropic $tag $E $V <$rho>" << endln; return 0; } int iData[1]; double dData[3]; dData[2] = 0.0; int numData = 1; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer tag: nDMaterial EasticIsotropic \n"; return 0; } if (numArgs > 3) numData = 3; else numData = 2; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid data: nDMaterial EasticIsotropic : " << iData[0] <<"\n"; return 0; } theMaterial = new ElasticIsotropicMaterial(iData[0], dData[0], dData[1], dData[2]); return theMaterial; }
void * OPS_ZeroLengthInterface2D(void) { if (numZeroLengthInterface2D == 0) { numZeroLengthInterface2D++; opserr << "ZeroLengthContactNTS2d - Written by Roozbeh G. Mikola and N.Sitar, UC Berkeley\n"; } Element *theEle = 0; int numData = 0; // get the ele tag int eleTag, sNdNum, mNdNum, sDOF, mDOF; numData = 1; if (OPS_GetInt(&numData, &eleTag) != 0) { opserr << "ZeroLengthInterface2D::WARNING invalid eleTag \n"; return 0; } const char *nextString = OPS_GetString(); if (strcmp(nextString,"-sNdNum") != 0) { opserr << "ZeroLengthInterface2D:: expecting -sNdNum \n"; return 0; } // get the number of slave nodes numData = 1; if (OPS_GetInt(&numData, &sNdNum) != 0) { opserr << "ZeroLengthInterface2D::WARNING invalied sNdNum \n"; return 0; } numData = 10; nextString = OPS_GetString(); if (strcmp(nextString,"-mNdNum") != 0) { opserr << "ZeroLengthInterface2D:: expecting -mNdNum\n"; return 0; } numData = 1; if (OPS_GetInt(&numData, &mNdNum) != 0) { opserr << "ZeroLengthInterface2D::WARNING invalied sNdNum \n"; return 0; } numData = 10; nextString = OPS_GetString(); if (strcmp(nextString,"-dof") != 0) { opserr << "ZeroLengthInterface2D:: expecting -sdof in "<< "element zeroLengthInterface2D eleTag? -sNdNum sNdNum? -mNdNum mNdNum? -dof sdof? mdof? -Nodes Nodes? Kn? Kt? phi? \n" ; return 0; } numData = 1; if (OPS_GetInt(&numData, &sDOF) != 0) { opserr << "ZeroLengthInterface2D::WARNING invalied sDOF\n"; return 0; } numData = 1; if (OPS_GetInt(&numData, &mDOF) != 0) { opserr << "ZeroLengthInterface2D::WARNING invalied mDOF\n"; return 0; } // a quick check on number of args int argc = OPS_GetNumRemainingInputArgs(); if (argc < 3 + sNdNum + mNdNum) { opserr << "ZeroLengthInterface2D::WARNING too few arguments " << "element zeroLengthInterface2D eleTag? -sNdNum sNdNum? -mNdNum mNdNum? -dof sdof? mdof? -Nodes Nodes? Kn? Kt? phi? \n" ; return 0; } numData = 10; nextString = OPS_GetString(); if (strcmp(nextString,"-Nodes") != 0) { opserr << "ZeroLengthInterface2D:: expecting -Nodes\n"; return 0; } // read the Nodes values numData = sNdNum+mNdNum; int *theNodeData = new int[numData]; ID Nodes(theNodeData, numData); if (OPS_GetInt(&numData, theNodeData) != 0) { opserr << "ZeroLengthInterface2D:: not enough node tags provided for ele: "; opserr << eleTag << "\n"; return 0; } // read the material properties numData = 3; double dData[3]; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "ZeroLengthInterface2D::WARNING invalid Kn,Kt or phi\n" ; return 0; } // // now we create the element and add it to the domain // theEle = new ZeroLengthInterface2D(eleTag, sNdNum, mNdNum, sDOF, mDOF, Nodes, dData[0], dData[1], dData[2]); return theEle; }
OPS_Export void * OPS_NewRAReinforcedConcretePlateFiberMaterial() { if (numRAReinforcedConcretePlateFiberMaterials == 0) { numRAReinforcedConcretePlateFiberMaterials++; //opserr << "ReinforcedConcretePlateFiber unaxial material - Written by J.Zhong, Thomas T.C. Hsu and Y.L. Mo - Copyright@2009\n"; } // Pointer to a uniaxial material that will be returned NDMaterial *theMaterial = 0; int numRemainingArgs = OPS_GetNumRemainingInputArgs(); if (numRemainingArgs < 14) { opserr << "Invalid Args want: NDMaterial RAReinforcedConcretePlateFiber matTag? rho? UniaxiaMatTag1? UniaxiaMatTag2? UniaxiaMatTag3? UniaxiaMatTag4? angle1? angle2? rou1? rou2? fpc? fy? E0? epsc0?>\n"; return 0; } int tag; double rho; int iData[4]; double dData[8]; int numData = 0; numData = 1; if (OPS_GetInt(&numData, &tag) != 0) { opserr << "WARNING invalid uniaxialMaterial RAReinforcedConcretePlateFiber tag" << endln; return 0; } numData = 1; if (OPS_GetDouble(&numData, &rho) != 0) { opserr << "Invalid Arg rho: uniaxialMaterial RAReinforcedConcretePlateFiber tag? fy? E0? fpc? rou? <ac?> <rc?>" << endln; return 0; } numData = 4; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid uniaxialMaterial RAReinforcedConcretePlateFiber tag" << endln; return 0; } numData = 8; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid uniaxialMaterial RAReinforcedConcretePlateFiber tag" << endln; return 0; } UniaxialMaterial *theUniaxialMaterial1 = OPS_GetUniaxialMaterial(iData[0]); if (theUniaxialMaterial1 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[0]; opserr << "\nRAReinforcedConcretePlateFiber: " << tag << endln; return 0; } UniaxialMaterial *theUniaxialMaterial2 = OPS_GetUniaxialMaterial(iData[1]); if (theUniaxialMaterial2 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[1]; opserr << "\nRAReinforcedConcretePlateFiber: " << tag << endln; return 0; } UniaxialMaterial *theUniaxialMaterial3 = OPS_GetUniaxialMaterial(iData[2]); if (theUniaxialMaterial3 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[2]; opserr << "\nRAReinforcedConcretePlateFiber: " << tag << endln; return 0; } UniaxialMaterial *theUniaxialMaterial4 = OPS_GetUniaxialMaterial(iData[3]); if (theUniaxialMaterial4 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[3]; opserr << "\nRAReinforcedConcretePlateFiber: " << tag << endln; return 0; } //now create the RAReinforcedConcretePlateFiber theMaterial = new RAReinforcedConcretePlateFiber (tag, rho, theUniaxialMaterial1, theUniaxialMaterial2, theUniaxialMaterial3, theUniaxialMaterial4, dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7]); if (theMaterial == 0) { opserr << "WARNING ran out of memory creating material\n"; opserr << "RAReinforcedConcretePlateFiber: " << tag << endln; return 0; } return theMaterial; }
OPS_Export void * OPS_NewTrussSectionElement() { Element *theElement = 0; int numRemainingArgs = OPS_GetNumRemainingInputArgs(); if (numRemainingArgs < 4) { opserr << "Invalid Args want: element TrussSection $tag $iNode $jNode $sectTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } int iData[4]; double rho = 0.0; int ndm = OPS_GetNDM(); int doRayleigh = 0; // by default rayleigh not done int cMass = 0; // by default use lumped mass matrix int numData = 4; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer (tag, iNode, jNode, sectTag) in element TrussSection " << endln; return 0; } SectionForceDeformation *theSection = OPS_GetSectionForceDeformation(iData[3]); if (theSection == 0) { opserr << "WARNING: Invalid section not found element TrussSection " << iData[0] << " $iNode $jNode " << iData[3] << " <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } numRemainingArgs -= 4; while (numRemainingArgs > 1) { char argvS[15]; if (OPS_GetString(argvS, 15) != 0) { opserr << "WARNING: Invalid optional string element TrussSection " << iData[0] << " $iNode $jNode $sectTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } if (strcmp(argvS,"-rho") == 0) { numData = 1; if (OPS_GetDouble(&numData, &rho) != 0) { opserr << "WARNING Invalid rho in element TrussSection " << iData[0] << " $iNode $jNode $secTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } } else if (strcmp(argvS,"-cMass") == 0) { numData = 1; if (OPS_GetInt(&numData, &cMass) != 0) { opserr << "WARNING: Invalid cMass in element TrussSection " << iData[0] << " $iNode $jNode $sectTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } } else if (strcmp(argvS,"-doRayleigh") == 0) { numData = 1; if (OPS_GetInt(&numData, &doRayleigh) != 0) { opserr << "WARNING: Invalid doRayleigh in element TrussSection " << iData[0] << " $iNode $jNode $sectTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } } else { opserr << "WARNING: Invalid option " << argvS << " in: element TrussSection " << iData[0] << " $iNode $jNode $secTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } numRemainingArgs -= 2; } // now create the TrussSection theElement = new TrussSection(iData[0], ndm, iData[1], iData[2], *theSection, rho, doRayleigh, cMass); if (theElement == 0) { opserr << "WARNING: out of memory: element TrussSection " << iData[0] << " $iNode $jNode $secTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; } return theElement; }
OPS_Export void * OPS_NewPrestressedConcretePlaneStressMaterial() { if (numPrestressedConcretePlaneStressMaterials == 0) { numPrestressedConcretePlaneStressMaterials++; //OPS_Error("PrestressedConcretePlaneStress unaxial material - Written by A.Laskar, Thomas T.C. Hsu and Y.L. Mo - Copyright@2009\n", 1); } // Pointer to a uniaxial material that will be returned NDMaterial *theMaterial = 0; int numRemainingArgs = OPS_GetNumRemainingInputArgs(); if (numRemainingArgs < 16) { opserr << "Want: nDMaterial PrestressedConcretePlaneStress matTag? rho? UniaxiaMatTag1? UniaxiaMatTag2? UniaxiaMatTag3? UniaxiaMatTag4? angle1? angle2? rou1? rou2? pstrain? fpc? fy1? fy2? E0? epsc0?\n"; return 0; } int tag; double rho; int iData[6]; double dData[10]; int numData = 0; numData = 1; if (OPS_GetInt(&numData, &tag) != 0) { opserr << "WARNING invalid uniaxialMaterial PrestressedConcretePlaneStress tag" << endln; return 0; } numData = 1; if (OPS_GetDouble(&numData, &rho) != 0) { opserr << "Invalid Arg rho: uniaxialMaterial PrestressedConcretePlaneStress tag " << tag << endln; return 0; } numData = 6; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid uniaxialMaterial PrestressedConcretePlaneStress tag" << tag << endln; return 0; } numData = 10; if (OPS_GetDouble(&numData, dData) != 0) { opserr << "WARNING invalid data PrestressedConcretePlaneStress tag" << tag << endln; return 0; } UniaxialMaterial *theUniaxialMaterial1 = OPS_GetUniaxialMaterial(iData[0]); if (theUniaxialMaterial1 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[0]; opserr << "\nPrestressedConcretePlaneStress: " << tag << endln; return 0; } UniaxialMaterial *theUniaxialMaterial2 = OPS_GetUniaxialMaterial(iData[1]); if (theUniaxialMaterial2 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[1]; opserr << "\nPrestressedConcretePlaneStress: " << tag << endln; return 0; } UniaxialMaterial *theUniaxialMaterial3 = OPS_GetUniaxialMaterial(iData[2]); if (theUniaxialMaterial3 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[2]; opserr << "\nPrestressedConcretePlaneStress: " << tag << endln; return 0; } UniaxialMaterial *theUniaxialMaterial4 = OPS_GetUniaxialMaterial(iData[3]); if (theUniaxialMaterial4 == 0) { opserr << "WARNING material not found\n"; opserr << "Material: " << iData[3]; opserr << "\nPrestressedConcretePlaneStress: " << tag << endln; return 0; } //now create the PrestressedConcretePlaneStress theMaterial = new PrestressConcretePlaneStress (tag, rho, theUniaxialMaterial1, theUniaxialMaterial2, theUniaxialMaterial3, theUniaxialMaterial4, dData[0], dData[1], dData[2], dData[3], dData[4], dData[5], dData[6], dData[7], dData[8], dData[9]); if (theMaterial == 0) { opserr << "WARNING ran out of memory creating material\n"; opserr << "PrestressedConcretePlaneStress: " << tag << endln; return 0; } return theMaterial; }
OPS_Export void * OPS_NewCorotTrussElement() { Element *theElement = 0; int numRemainingArgs = OPS_GetNumRemainingInputArgs(); if (numRemainingArgs < 4) { opserr << "Invalid Args want: element CorotTruss $tag $iNode $jNode $sectTag <-rho $rho>"; opserr << " or: element CorotTruss $tag $iNode $jNode $A $matTag <-rho $rho>\n"; return 0; } if (numRemainingArgs == 4 || numRemainingArgs == 6) return 0; // it's a CorotTrussSection int iData[3]; double A = 0.0; double rho = 0.0; int matTag = 0; int ndm = OPS_GetNDM(); int numData = 3; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer (tag, iNode, jNode) in element CorotTruss " << endln; return 0; } numData = 1; if (OPS_GetDouble(&numData, &A) != 0) { opserr << "WARNING: Invalid A: element CorotTruss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-rayleig $flagh>\n"; return 0; } numData = 1; if (OPS_GetInt(&numData, &matTag) != 0) { opserr << "WARNING: Invalid matTag: element CorotTruss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-rayleig $flagh>\n"; return 0; } UniaxialMaterial *theUniaxialMaterial = OPS_GetUniaxialMaterial(matTag); if (theUniaxialMaterial == 0) { opserr << "WARNING: Invalid material not found element CorotTruss " << iData[0] << " $iNode $jNode $A " << matTag << " <-rho $rho> <-rayleigh $flagh>\n"; return 0; } numRemainingArgs -= 5; while (numRemainingArgs > 1) { char argvS[10]; if (OPS_GetString(argvS, 10) != 0) { opserr << "WARNING: Invalid optional string element CorotTruss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-rayleigh $flagh>\n"; return 0; } if (strcmp(argvS,"-rho") == 0) { numData = 1; if (OPS_GetDouble(&numData, &rho) != 0) { opserr << "WARNING Invalid rho in element CorotTruss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-rayleigh $flagh>\n"; return 0; } } else { opserr << "WARNING: Invalid option " << argvS << " in: element CorotTruss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-rayleigh $flagh>\n"; return 0; } numRemainingArgs -= 2; } //now create the ReinforcedConcretePlaneStress theElement = new CorotTruss(iData[0], ndm, iData[1], iData[2], *theUniaxialMaterial, A, rho); if (theElement == 0) { opserr << "WARNING: out of memory: element CorotTruss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> \n"; } return theElement; }
OPS_Export void * OPS_NewTrussElement() { Element *theElement = 0; int numRemainingArgs = OPS_GetNumRemainingInputArgs(); if (numRemainingArgs < 4) { opserr << "Invalid Args want: element Truss $tag $iNode $jNode $sectTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; opserr << " or: element Truss $tag $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } if (numRemainingArgs == 4 || numRemainingArgs == 6 || numRemainingArgs == 8 || numRemainingArgs == 10) return 0; // it's a TrussSection int iData[3]; double A = 0.0; double rho = 0.0; int matTag = 0; int doRayleigh = 0; // by default rayleigh not done int cMass = 0; // by default use lumped mass matrix int ndm = OPS_GetNDM(); int numData = 3; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer (tag, iNode, jNode) in element Truss " << endln; return 0; } numData = 1; if (OPS_GetDouble(&numData, &A) != 0) { opserr << "WARNING: Invalid A: element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } numData = 1; if (OPS_GetInt(&numData, &matTag) != 0) { opserr << "WARNING: Invalid matTag: element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } UniaxialMaterial *theUniaxialMaterial = OPS_GetUniaxialMaterial(matTag); if (theUniaxialMaterial == 0) { opserr << "WARNING: Invalid material not found element Truss " << iData[0] << " $iNode $jNode $A " << matTag << " <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } numRemainingArgs -= 5; while (numRemainingArgs > 1) { char argvS[15]; if (OPS_GetString(argvS, 15) != 0) { opserr << "WARNING: Invalid optional string element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } if (strcmp(argvS,"-rho") == 0) { numData = 1; if (OPS_GetDouble(&numData, &rho) != 0) { opserr << "WARNING Invalid rho in element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } } else if (strcmp(argvS,"-cMass") == 0) { numData = 1; if (OPS_GetInt(&numData, &cMass) != 0) { opserr << "WARNING: Invalid cMass in element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } } else if (strcmp(argvS,"-doRayleigh") == 0) { numData = 1; if (OPS_GetInt(&numData, &doRayleigh) != 0) { opserr << "WARNING: Invalid doRayleigh in element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } } else { opserr << "WARNING: Invalid option " << argvS << " in: element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; return 0; } numRemainingArgs -= 2; } // now create the Truss theElement = new Truss(iData[0], ndm, iData[1], iData[2], *theUniaxialMaterial, A, rho, doRayleigh, cMass); if (theElement == 0) { opserr << "WARNING: out of memory: element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-cMass $flag> <-doRayleigh $flag>\n"; } return theElement; }
void * OPS_Truss2(void) { Element *theElement = 0; int numRemainingArgs = OPS_GetNumRemainingInputArgs(); if (numRemainingArgs < 7) { opserr << "Invalid Args want: element Truss2 $tag $iNode $jNode $auxN1 $auxN2 $A $matTag <-rho $rho> <-rayleigh $flag>\n"; return 0; } int iData[5]; double A = 0.0; double rho = 0.0; int matTag = 0; int doRayleigh = 0; int ndm = OPS_GetNDM(); int numData = 5; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer (tag, iNode, jNode, auxN1, auxN2) in element Truss2 " << endln; return 0; } numData = 1; if (OPS_GetDouble(&numData, &A) != 0) { opserr << "WARNING: Invalid A: element Truss2 " << iData[0] << " $iNode $jNode $auxN1 $auxN2 $A $matTag <-rho $rho> <-rayleig $flagh>\n"; return 0; } numData = 1; if (OPS_GetInt(&numData, &matTag) != 0) { opserr << "WARNING: Invalid matTag: element Truss2 " << iData[0] << " $iNode $jNode $auxN1 $auxN2 $A $matTag <-rho $rho> <-rayleig $flagh>\n"; return 0; } UniaxialMaterial *theUniaxialMaterial = OPS_GetUniaxialMaterial(matTag); if (theUniaxialMaterial == 0) { opserr << "WARNING: Invalid material not found element Truss2 " << iData[0] << " $iNode $jNode $auxN1 $auxN2 $A " << matTag << " <-rho $rho> <-rayleig $flagh>\n"; return 0; } numRemainingArgs -= 7; while (numRemainingArgs > 1) { const char *argvS = OPS_GetString(); if (strcmp(argvS,"-rho") == 0) { numData = 1; if (OPS_GetDouble(&numData, &rho) != 0) { opserr << "WARNING Invalid rho in element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-doRayleigh $flagh>\n"; return 0; } } else if (strcmp(argvS,"-doRayleigh") == 0) { numData = 1; if (OPS_GetInt(&numData, &doRayleigh) != 0) { opserr << "WARNING: Invalid doRayleigh in element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-doRayleigh $flagh>\n"; return 0; } } else { opserr << "WARNING: Invalid option " << argvS << " in: element Truss " << iData[0] << " $iNode $jNode $A $matTag <-rho $rho> <-doRayleigh $flagh>\n"; return 0; } numRemainingArgs -= 2; } //now create the ReinforcedConcretePlaneStress theElement = new Truss2(iData[0], ndm, iData[1], iData[2], iData[3], iData[4], *theUniaxialMaterial, A, rho, doRayleigh); if (theElement == 0) { opserr << "WARNING: out of memory: element Truss2 " << iData[0] << " $iNode $jNode $auxN1 $auxN2 $A $matTag <-rho $rho>\n"; } return theElement; }
void * OPS_N4BiaxialTruss(void) { Element *theElement = 0; int numRemainingArgs = OPS_GetNumRemainingInputArgs(); if (numRemainingArgs < 7) { opserr << "Invalid Args want: element N4BiaxialTruss $tag $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; return 0; } int iData[5]; //tag, iNode, jNode, iGNode, jGNode double A = 0.0; double rho = 0.0; int matTag1 = 0; int matTag2 = 0; int doRayleigh = 0; int ndm = OPS_GetNDM(); int numData = 5; if (OPS_GetInt(&numData, iData) != 0) { opserr << "WARNING invalid integer (tag, iNode, jNode, iGNode, jGNode) in element N4BiaxialTruss " << endln; return 0; } numData = 1; if (OPS_GetDouble(&numData, &A) != 0) { opserr << "WARNING: Invalid A: element N4BiaxialTruss " << iData[0] << " $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; return 0; } numData = 1; if (OPS_GetInt(&numData, &matTag1) != 0) { opserr << "WARNING: Invalid matTag1: element N4BiaxialTruss " << iData[0] << " $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; return 0; } UniaxialMaterial *theUniaxialMaterial_1 = OPS_GetUniaxialMaterial(matTag1); if (theUniaxialMaterial_1 == 0) { opserr << "WARNING: Invalid material not found element N4BiaxialTruss " << iData[0] << " $mattag1: " << matTag1 << " \n"; return 0; } numRemainingArgs -= 6; while (numRemainingArgs > 1) { char argvS[15]; if (OPS_GetString(argvS, 15) != 0) { opserr << "WARNING: Invalid optional string element N4BiaxialTruss " << iData[0] << " $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; return 0; } if (strcmp(argvS,"-rho") == 0) { numData = 1; if (OPS_GetDouble(&numData, &rho) != 0) { opserr << "WARNING Invalid rho in element N4BiaxialTruss " << iData[0] << " $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; return 0; } } else if (strcmp(argvS,"-doRayleigh") == 0) { numData = 1; if (OPS_GetInt(&numData, &doRayleigh) != 0) { opserr << "WARNING: Invalid doRayleigh in element N4BiaxialTruss " << iData[0] << " $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; return 0; } } else { opserr << "WARNING: Invalid option " << argvS << " in: element N4BiaxialTruss " << iData[0] << " $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; return 0; } numRemainingArgs -= 2; } //now create the ReinforcedConcretePlaneStress theElement = new N4BiaxialTruss(iData[0], ndm, iData[1], iData[2], iData[3], iData[4], *theUniaxialMaterial_1, A, rho, doRayleigh); if (theElement == 0) { opserr << "WARNING: out of memory: element N4BiaxialTruss " << iData[0] << " $i1Node $j1Node $iG2Node $j2Node $A $matTag1 <-rho $rho> <-doRayleigh $flag>\n"; } return theElement; }