Subversion Repositories OpenSees

Rev

Rev 1015 | Rev 1321 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/* ****************************************************************** **
**    OpenSees - Open System for Earthquake Engineering Simulation    **
**          Pacific Earthquake Engineering Research Center            **
**                                                                    **
**                                                                    **
** (C) Copyright 1999, The Regents of the University of California    **
** All Rights Reserved.                                               **
**                                                                    **
** Commercial use of this program without express permission of the   **
** University of California, Berkeley, is strictly prohibited.  See   **
** file 'COPYRIGHT'  in main directory for information on usage and   **
** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
**                                                                    **
** Developed by:                                                      **
**   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
**   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
**   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
**                                                                    **
** ****************************************************************** */

                                                                       
// $Revision: 1.6 $
// $Date: 2003-02-14 23:01:36 $
// $Source: /usr/local/cvs/OpenSees/SRC/material/section/fiber/UniaxialFiber3d.h,v $
                                                                       
                                                                       
// File: ~/fiber/UniaxialFiber3d.h
//
// Written: Remo Magalhaes de Souza
// Created: 10/98
// Revision:
//
// Description: This file contains the class definition for
// UniaxialFiber3d.h. UniaxialFiber3d provides the abstraction of a
// uniaxial fiber that forms a fiber section for 3d frame elements (the
// fiber position inside the section is defined by two coordinates)
// The UniaxialFiber3d is subjected to a stress state with
// only one nonzero axial stress and corresponding axial strain.
//
// What: "@(#) UniaxialFiber3d.h, revA"

#ifndef UniaxialFiber3d_h
#define UniaxialFiber3d_h

#include <Matrix.h>
#include <Fiber.h>

class UniaxialMaterial;
class Response;

class UniaxialFiber3d: public Fiber
{
  public:
    UniaxialFiber3d ();    
    UniaxialFiber3d (int tag, UniaxialMaterial &theMat, double Area,
                     const Vector &position);
 
    ~UniaxialFiber3d();

    int   setTrialFiberStrain(const Vector &vs);
    Vector &getFiberStressResultants (void);
    Matrix &getFiberTangentStiffContr (void);

    int   commitState(void);
    int   revertToLastCommit(void);    
    int   revertToStart(void);
   
    Fiber *getCopy(void);
    int getOrder(void);
    const ID &getType(void);

    int sendSelf(int cTag, Channel &theChannel);
    int recvSelf(int cTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
    void Print(OPS_Stream &s, int flag =0);
   
    Response *setResponse(char **argv, int argc, Information &info);
    int getResponse(int responseID, Information &info);

    void getFiberLocation(double &y, double &z);
    UniaxialMaterial *getMaterial(void) {return theMaterial;};
    double getArea(void) {return area;};

  protected:
   
  private:
    UniaxialMaterial *theMaterial;   // pointer to a material
    double area;                          // area of the fiber
    double as[2];                            // matrix that transforms
                                    // section deformations into fiber strain  
    static Matrix ks;       // static class wide matrix object for returns
    static Vector fs;       // static class wide vector object for returns                                     
    static ID code;
};


#endif