FedeasSteel2Material.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.5 $
00022 // $Date: 2004/07/15 21:36:46 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/fedeas/FedeasSteel2Material.cpp,v $
00024                                                                       
00025 // Written: MHS
00026 // Created: Jan 2001
00027 //
00028 // Description: This file contains the class definition for 
00029 // FedeasSteel2Material. FedeasSteel2Material wraps the FEDEAS
00030 // 1d material subroutine Steel_2.
00031 
00032 #include <stdlib.h>
00033 #include <FedeasSteel2Material.h>
00034 
00035 FedeasSteel2Material::FedeasSteel2Material(int tag,
00036                                          double fy, double E0, double b,
00037                                          double R0, double cR1, double cR2,
00038                                          double a1, double a2, double a3, double a4):
00039 // 8 history variables and 10 material parameters
00040 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00041 {
00042         data[0]  = fy;
00043         data[1]  = E0;
00044         data[2]  = b;
00045         data[3]  = R0;
00046         data[4]  = cR1;
00047         data[5]  = cR2;
00048         data[6]  = a1;
00049         data[7]  = a2;
00050         data[8]  = a3;
00051         data[9]  = a4;
00052 
00053         tangent = E0;
00054         tangentP = E0;
00055 }
00056 
00057 FedeasSteel2Material::FedeasSteel2Material(int tag,
00058                                          double fy, double E0, double b,
00059                                          double R0, double cR1, double cR2):
00060 // 8 history variables and 10 material parameters
00061 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00062 {
00063         data[0]  = fy;
00064         data[1]  = E0;
00065         data[2]  = b;
00066         data[3]  = R0;
00067         data[4]  = cR1;
00068         data[5]  = cR2;
00069 
00070         // Default values for no isotropic hardening
00071         data[6]  = 0.0;
00072         data[7]  = 1.0;
00073         data[8]  = 0.0;
00074         data[9]  = 1.0;
00075 
00076         tangent = E0;
00077         tangentP = E0;
00078 }
00079 
00080 FedeasSteel2Material::FedeasSteel2Material(int tag,
00081                                          double fy, double E0, double b):
00082 // 8 history variables and 10 material parameters
00083 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00084 {
00085         data[0]  = fy;
00086         data[1]  = E0;
00087         data[2]  = b;
00088 
00089         // Default values for elastic to hardening transitions
00090         data[3]  = 15.0;
00091         data[4]  = 0.925;
00092         data[5]  = 0.15;
00093 
00094         // Default values for no isotropic hardening
00095         data[6]  = 0.0;
00096         data[7]  = 1.0;
00097         data[8]  = 0.0;
00098         data[9]  = 1.0;
00099 
00100         tangent = E0;
00101         tangentP = E0;
00102 }
00103 
00104 FedeasSteel2Material::FedeasSteel2Material(int tag, const Vector &d):
00105 // 8 history variables and 10 material parameters
00106 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00107 {
00108   if (d.Size() != numData) {
00109     opserr << "FedeasSteel2Material::FedeasSteel2Material -- not enough input arguments\n";
00110     exit(-1);
00111   }
00112 
00113   for (int i = 0; i < numData; i++)
00114     data[i] = d(i);
00115 }
00116 
00117 FedeasSteel2Material::FedeasSteel2Material(void):
00118 FedeasMaterial(0, MAT_TAG_FedeasSteel2, 8, 10)
00119 {
00120         // Does nothing
00121 }
00122 
00123 FedeasSteel2Material::~FedeasSteel2Material(void)
00124 {
00125         // Does nothing
00126 }
00127 
00128 UniaxialMaterial*
00129 FedeasSteel2Material::getCopy(void)
00130 {
00131   Vector d(data, numData);
00132 
00133   FedeasSteel2Material *theCopy = new FedeasSteel2Material(this->getTag(), d);
00134   
00135   // Copy history variables
00136   for (int i = 0; i < 2*numHstv; i++)
00137     theCopy->hstv[i] = hstv[i];
00138   
00139   theCopy->epsilonP = epsilonP;
00140   theCopy->sigmaP   = sigmaP;
00141   theCopy->tangentP = tangentP;
00142 
00143   theCopy->epsilon = epsilonP;
00144   theCopy->sigma = sigmaP;
00145   theCopy->tangent = tangentP;  
00146   
00147   return theCopy;
00148 }
00149 
00150 double
00151 FedeasSteel2Material::getInitialTangent(void)
00152 {
00153         //return E;
00154         return data[1];
00155 }

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