xc
FiberSectionShear3d.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 //FiberSectionShear3d.h
29 
30 #ifndef FiberSectionShear3d_h
31 #define FiberSectionShear3d_h
32 
33 #include "FiberSection3d.h"
34 
35 namespace XC {
37 //
42  {
43  private:
44  UniaxialMaterial *respVy;
45  UniaxialMaterial *respVz;
46  UniaxialMaterial *respT;
47 
48  static Vector def;
49  static Vector defzero;
50  static Vector s;
51  static Matrix ks;
52  static Matrix fs;
53 
54  void setRespVy(const UniaxialMaterial *);
55  void setRespVz(const UniaxialMaterial *);
56  void setRespT(const UniaxialMaterial *);
57  void setRespVyVzT(const UniaxialMaterial *,const UniaxialMaterial *,const UniaxialMaterial *);
58 
59  void freeRespVyVzT(void);
60  void free_mem(void);
61  protected:
62  int sendData(Communicator &);
63  int recvData(const Communicator &);
64 
65  public:
66  FiberSectionShear3d(int tag= 0,MaterialHandler *mat_ldr= nullptr);
70 
71  void clear(void);
72 
73  void setRespVyByName(const std::string &);
75  void setRespVzByName(const std::string &);
77  void setRespTByName(const std::string &);
79  void setRespVyVzTByName(const std::string &,const std::string &,const std::string &);
80 
81  int setInitialSectionDeformation(const Vector &deforms);
82  int setTrialSectionDeformation(const Vector &deforms);
84  const Vector &getInitialSectionDeformation(void) const;
85  const Vector &getSectionDeformation(void) const;
86  const Vector &getStressResultant(void) const;
87  const Matrix &getSectionTangent(void) const;
88  const Matrix &getInitialTangent(void) const;
89  const Matrix &getSectionFlexibility(void) const;
90  const Matrix &getInitialFlexibility(void) const;
91 
92  int commitState(void);
93  int revertToLastCommit(void);
94  int revertToStart(void);
95 
96  SectionForceDeformation *getCopy(void) const;
97  const ResponseId &getResponseType(void) const;
98  int getOrder(void) const;
99 
100  virtual const double &GJ(void) const;
101  virtual const double &GAy(void) const;
102  virtual const double &GAz(void) const;
103 
104  int sendSelf(Communicator &);
105  int recvSelf(const Communicator &);
106 
107  void Print(std::ostream &s, int flag =0) const;
108 
109  int setVariable(const std::string &argv);
110  int getVariable(int variableID, double &info);
111 
112  };
113 } // end of XC namespace
114 
115 #endif
int setTrialSectionDeformation(const Vector &deforms)
Asigna la trial strain.
Definition: FiberSectionShear3d.cc:251
Base class for force deformation section models.
Definition: SectionForceDeformation.h:88
const Matrix & getInitialFlexibility(void) const
Returns the initial flexibility matrix.
Definition: FiberSectionShear3d.cc:340
int getVariable(int variableID, double &info)
Returns the value of the variable which name is being passed as parameter.
Definition: FiberSectionShear3d.cc:504
Float vector abstraction.
Definition: Vector.h:94
void Print(std::ostream &s, int flag=0) const
Print stuff.
Definition: FiberSectionShear3d.cc:477
Communication parameters between processes.
Definition: Communicator.h:66
int sendSelf(Communicator &)
Sends object through the communicator argument.
Definition: FiberSectionShear3d.cc:443
FiberSectionShear3d(int tag=0, MaterialHandler *mat_ldr=nullptr)
Constructor.
Definition: FiberSectionShear3d.cc:129
int commitState(void)
Commit material state (normally after convergence is achieved).
Definition: FiberSectionShear3d.cc:398
const Vector & getSectionDeformation(void) const
Returns material&#39;s trial generalized deformation.
Definition: FiberSectionShear3d.cc:284
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:93
UniaxialMaterial * getRespVz(void)
Returns shear z response.
Definition: FiberSectionShear3d.cc:193
int setInitialSectionDeformation(const Vector &deforms)
Asigna la initial strain.
Definition: FiberSectionShear3d.cc:239
int revertToStart(void)
Returns to the initial state.
Definition: FiberSectionShear3d.cc:417
const Vector & getStressResultant(void) const
Returns stress resultant.
Definition: FiberSectionShear3d.cc:354
void setRespVyByName(const std::string &)
Sets the material defining the shear response along the y axis.
Definition: FiberSectionShear3d.cc:149
Fiber section model in a three-dimensional space.
Definition: FiberSection3d.h:75
const Matrix & getSectionFlexibility(void) const
Returns the flexibility matrix.
Definition: FiberSectionShear3d.cc:326
void setRespVzByName(const std::string &)
Sets the material defining the shear response along the y axis.
Definition: FiberSectionShear3d.cc:173
UniaxialMaterial * getRespVy(void)
Returns shear y response.
Definition: FiberSectionShear3d.cc:169
void zeroInitialSectionDeformation(void)
Zeroes initial strain of the section.
Definition: FiberSectionShear3d.cc:263
virtual const double & GAy(void) const
Returns the shear stiffness along y axis.
Definition: FiberSectionShear3d.cc:373
int getOrder(void) const
Return the number of response quantities provided by the section.
Definition: FiberSectionShear3d.cc:394
Stiffness material contribution response identifiers.
Definition: ResponseId.h:61
int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: FiberSectionShear3d.cc:458
const Vector & getInitialSectionDeformation(void) const
Returns the initial strain of the section.
Definition: FiberSectionShear3d.cc:272
int revertToLastCommit(void)
Returns the material to the last committed state.
Definition: FiberSectionShear3d.cc:408
FiberSectionShear3d decorates an MP section (couple bending and axial) with an uncoupled shear relati...
Definition: FiberSectionShear3d.h:41
Material handler (definition, searching,...).
Definition: MaterialHandler.h:46
SectionForceDeformation * getCopy(void) const
Virtual constructor.
Definition: FiberSectionShear3d.cc:387
const Matrix & getInitialTangent(void) const
Returns the initial tangent stiffness matrix.
Definition: FiberSectionShear3d.cc:311
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
int setVariable(const std::string &argv)
Returns the identifier of the variable which name is being passed as parameter.
Definition: FiberSectionShear3d.cc:489
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: FiberSectionShear3d.cc:435
Matrix of floats.
Definition: Matrix.h:111
UniaxialMaterial * getRespT(void)
Returns torsion response.
Definition: FiberSectionShear3d.cc:217
virtual const double & GJ(void) const
Returns the torsional stiffness.
Definition: FiberSectionShear3d.cc:366
const Matrix & getSectionTangent(void) const
Returns the tangent stiffness matrix.
Definition: FiberSectionShear3d.cc:296
const ResponseId & getResponseType(void) const
Section stiffness contribution response identifiers.
Definition: FiberSectionShear3d.cc:391
XC::FiberSectionShear3d & operator=(const FiberSectionShear3d &)
Assignment operator.
Definition: FiberSectionShear3d.cc:139
virtual const double & GAz(void) const
Returns the shear stiffness along y axis.
Definition: FiberSectionShear3d.cc:380
~FiberSectionShear3d(void)
destructor:
Definition: FiberSectionShear3d.cc:228
void setRespTByName(const std::string &)
Sets the material defining the shear response along the y axis.
Definition: FiberSectionShear3d.cc:197
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: FiberSectionShear3d.cc:427
void clear(void)
Clear the material responses.
Definition: FiberSectionShear3d.cc:232