XC Open source finite element analysis program
YieldSurfaceSection2d.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 // @ rkaul@stanford.edu
28 // @ ggd@stanford.edu
29 
30 #ifndef YieldSurfaceSection2d_h
31 #define YieldSurfaceSection2d_h
32 
33 #include "material/section/SeccionBarraPrismatica.h"
34 #include "utility/matrix/Matrix.h"
35 #include "utility/matrix/Vector.h"
36 
37 namespace XC {
38 class Channel;
39 class FEM_ObjectBroker;
40 class Information;
41 class YieldSurface_BC;
42 
44 //
46 //
48 //
52  {
53  protected:
54  virtual void getSectionStiffness(Matrix &Ks)=0;
55  const bool use_Kr_orig;
56  YieldSurface_BC *ys;
59  Vector eCommit;
60  Vector s;
61  Vector sCommit;
62  mutable Matrix ks;
63 
64  private:
65  // int algo;
66  bool use_Kr, split_step;
67  static Vector dele;
68  static Vector surfaceForce;
69  static Matrix G;
70  static Matrix Ktp;
71  public:
72  YieldSurfaceSection2d( int tag, int classtag,YieldSurface_BC *ptrys, bool use_kr=true);
73  YieldSurfaceSection2d(void);
74  ~YieldSurfaceSection2d(void);
75 
76  virtual int commitState(void);
77  virtual int revertToLastCommit(void);
78  virtual int revertToStart(void);
79 
80  virtual int setInitialSectionDeformation (const Vector&);
81  virtual int setTrialSectionDeformation (const Vector&);
83  virtual const Vector &getInitialSectionDeformation(void) const;
84  virtual const Vector &getSectionDeformation(void) const;
85 
86  const Vector &getStressResultant(void) const;
87  const Matrix &getSectionTangent(void) const;
88  const Matrix &getSectionFlexibility(void) const;
89 
90  const ResponseId &getType(void) const;
91  int getOrder(void) const;
92 
93  int sendSelf(CommParameters &);
94  int recvSelf(const CommParameters &);
95 
96  virtual void Print(std::ostream &s, int flag =0);
97  virtual SectionForceDeformation *getCopy(void) const=0;
98  };
99 } // end of XC namespace
100 
101 #endif
virtual void Print(std::ostream &s, int flag=0)
Imprime el objeto.
Definition: YieldSurfaceSection2d.cpp:243
Vector eInic
section initial deformations.
Definition: YieldSurfaceSection2d.h:58
Definition: Vector.h:82
Vector eTrial
section trial deformations
Definition: YieldSurfaceSection2d.h:57
void zeroInitialSectionDeformation(void)
Zeroes initial strains.
Definition: YieldSurfaceSection2d.cpp:204
Stiffness material contribution response identifiers.
Definition: ResponseId.h:60
Base class for beam-column cross sections. Constitutive equations of the section. ...
Definition: SeccionBarraPrismatica.h:50
Definition: Matrix.h:82
Yield surface.
Definition: YieldSurface_BC.h:46
Base class for cross sections with yield surface on a bi-dimensional space (three DOFs for each secti...
Definition: YieldSurfaceSection2d.h:51
virtual SectionForceDeformation * getCopy(void) const =0
Virtual constructor.
Base class for force deformation section models. Constitutive equations of the section.
Definition: SectionForceDeformation.h:86
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
const Matrix & getSectionFlexibility(void) const
Returns the tangent flexibility matrix of the section.
Definition: YieldSurfaceSection2d.cpp:224
virtual const Vector & getSectionDeformation(void) const
Returns generalized trial deformation.
Definition: YieldSurfaceSection2d.cpp:211