FedeasConcr3Material.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/FedeasConcr3Material.cpp,v $
00024                                                                       
00025 // Written: MHS
00026 // Created: Jan 2001
00027 //
00028 // Description: This file contains the class definition for 
00029 // FedeasConcr3Material. FedeasConcr3Material wraps the FEDEAS
00030 // 1d material subroutine Concr_3.
00031 
00032 #include <stdlib.h>
00033 #include <FedeasConcr3Material.h>
00034 
00035 FedeasConcr3Material::FedeasConcr3Material(int tag,
00036                                          double fc, double ec, double fu, double eu,
00037                                          double rat, double ft, double epst0,
00038                                          double ft0, double beta, double epstu):
00039 // 2 history variables and 10 material parameters
00040 FedeasMaterial(tag, MAT_TAG_FedeasConcrete3, 2, 10)
00041 {
00042         data[0]  = fc;
00043         data[1]  = ec;
00044         data[2]  = fu;
00045         data[3]  = eu;
00046         data[4]  = rat;
00047         data[5]  = ft;
00048         data[6]  = epst0;
00049         data[7]  = ft0;
00050         data[8]  = beta;
00051         data[9]  = epstu;
00052 
00053         tangent =  2.0*data[0]/data[1];
00054         tangentP = tangent;
00055 }
00056 
00057 FedeasConcr3Material::FedeasConcr3Material(int tag, const Vector &d):
00058 // 2 history variables and 10 material parameters
00059 FedeasMaterial(tag, MAT_TAG_FedeasConcrete3, 2, 10)
00060 {
00061   if (d.Size() != numData) {
00062     opserr << "FedeasConcr3Material::FedeasConcr3Material -- not enough input arguments\n";
00063     exit(-1);
00064   }
00065                 
00066   for (int i = 0; i < numData; i++)
00067     data[i] = d(i);
00068 
00069   tangent =  2.0*data[0]/data[1];
00070   tangentP = tangent;
00071 }
00072 
00073 FedeasConcr3Material::FedeasConcr3Material(void):
00074 FedeasMaterial(0, MAT_TAG_FedeasConcrete3, 2, 10)
00075 {
00076         // Does nothing
00077 }
00078 
00079 FedeasConcr3Material::~FedeasConcr3Material(void)
00080 {
00081         // Does nothing
00082 }
00083 
00084 UniaxialMaterial*
00085 FedeasConcr3Material::getCopy(void)
00086 {
00087   Vector d(data, numData);
00088 
00089   FedeasConcr3Material *theCopy = new FedeasConcr3Material(this->getTag(), d);
00090   
00091   // Copy history variables
00092   for (int i = 0; i < 2*numHstv; i++)
00093     theCopy->hstv[i] = hstv[i];
00094   
00095   theCopy->epsilonP = epsilonP;
00096   theCopy->sigmaP   = sigmaP;
00097   theCopy->tangentP = tangentP;
00098 
00099   theCopy->epsilon = epsilonP;
00100   theCopy->sigma = sigmaP;
00101   theCopy->tangent = tangentP;  
00102   
00103   return theCopy;
00104 }
00105 
00106 double
00107 FedeasConcr3Material::getInitialTangent(void)
00108 {
00109         //return 2.0*fc/ec;
00110         return 2.0*data[0]/data[1];
00111 }

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