XC Open source finite element analysis program
FiberSectionShear3d.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 //FiberSectionShear3d.h
28 
29 #ifndef FiberSectionShear3d_h
30 #define FiberSectionShear3d_h
31 
32 #include "FiberSection3d.h"
33 
34 namespace XC {
36 //
41  {
42  private:
43  UniaxialMaterial *respVy;
44  UniaxialMaterial *respVz;
45  UniaxialMaterial *respT;
46 
47  static Vector def;
48  static Vector defzero;
49  static Vector s;
50  static Matrix ks;
51  static Matrix fs;
52 
53  void setRespVy(const UniaxialMaterial *);
54  void setRespVz(const UniaxialMaterial *);
55  void setRespT(const UniaxialMaterial *);
56  void setRespVyVzT(const UniaxialMaterial *,const UniaxialMaterial *,const UniaxialMaterial *);
57 
58  void liberaRespVyVzT(void);
59  void libera(void);
60  protected:
61  int sendData(CommParameters &);
62  int recvData(const CommParameters &);
63 
64  public:
65  FiberSectionShear3d(int tag= 0,MaterialLoader *mat_ldr= nullptr);
69 
70  void setRespVyByName(const std::string &);
72  void setRespVzByName(const std::string &);
74  void setRespTByName(const std::string &);
76  void setRespVyVzTByName(const std::string &,const std::string &,const std::string &);
77 
78  int setInitialSectionDeformation(const Vector &deforms);
79  int setTrialSectionDeformation(const Vector &deforms);
81  const Vector &getInitialSectionDeformation(void) const;
82  const Vector &getSectionDeformation(void) const;
83  const Vector &getStressResultant(void) const;
84  const Matrix &getSectionTangent(void) const;
85  const Matrix &getInitialTangent(void) const;
86  const Matrix &getSectionFlexibility(void) const;
87  const Matrix &getInitialFlexibility(void) const;
88 
89  int commitState(void);
90  int revertToLastCommit(void);
91  int revertToStart(void);
92 
93  SectionForceDeformation *getCopy(void) const;
94  const ResponseId &getType(void) const;
95  int getOrder(void) const;
96 
97  int sendSelf(CommParameters &);
98  int recvSelf(const CommParameters &);
99 
100  void Print(std::ostream &s, int flag =0) const;
101 
102  int setVariable(const std::string &argv);
103  int getVariable(int variableID, double &info);
104 
105  };
106 } // end of XC namespace
107 
108 #endif
int sendSelf(CommParameters &)
Sends object through the channel being passed as parameter.
Definition: FiberSectionShear3d.cc:406
int recvData(const CommParameters &)
Receives object members through the channel being passed as parameter.
Definition: FiberSectionShear3d.cc:398
int sendData(CommParameters &)
Send object members through the channel being passed as parameter.
Definition: FiberSectionShear3d.cc:390
int revertToStart(void)
Returns to the initial state.
Definition: FiberSectionShear3d.cc:380
const ResponseId & getType(void) const
Section stiffness contribution response identifiers.
Definition: FiberSectionShear3d.cc:354
void Print(std::ostream &s, int flag=0) const
Imprime el objeto.
Definition: FiberSectionShear3d.cc:440
const Matrix & getSectionFlexibility(void) const
Returns the flexibility matrix.
Definition: FiberSectionShear3d.cc:310
Definition: Vector.h:82
const Matrix & getInitialFlexibility(void) const
Returns the initial flexibility matrix.
Definition: FiberSectionShear3d.cc:324
FiberSectionShear3d(int tag=0, MaterialLoader *mat_ldr=nullptr)
Constructor.
Definition: FiberSectionShear3d.cc:120
UniaxialMaterial * getRespVz(void)
Returns shear z response.
Definition: FiberSectionShear3d.cc:184
int getVariable(int variableID, double &info)
Returns the valor de la variable cuyo nombre being passed as parameter.
Definition: FiberSectionShear3d.cc:465
const Matrix & getSectionTangent(void) const
Returns the tangent stiffness matrix.
Definition: FiberSectionShear3d.cc:280
int revertToLastCommit(void)
Returns the material to the last commited state.
Definition: FiberSectionShear3d.cc:371
XC::FiberSectionShear3d & operator=(const FiberSectionShear3d &otro)
Assignment operator.
Definition: FiberSectionShear3d.cc:130
~FiberSectionShear3d(void)
destructor:
Definition: FiberSectionShear3d.cc:219
const Vector & getSectionDeformation(void) const
Returns material&#39;s trial generalized deformation.
Definition: FiberSectionShear3d.cc:268
Stiffness material contribution response identifiers.
Definition: ResponseId.h:60
const Vector & getInitialSectionDeformation(void) const
Returns the initial strain of the section.
Definition: FiberSectionShear3d.cc:256
void setRespVzByName(const std::string &)
Asigna el material que define la respuesta a cortante según «y».
Definition: FiberSectionShear3d.cc:164
const Vector & getStressResultant(void) const
Returns stress resultant.
Definition: FiberSectionShear3d.cc:338
int setInitialSectionDeformation(const Vector &deforms)
Asigna la initial strain.
Definition: FiberSectionShear3d.cc:223
UniaxialMaterial * getRespT(void)
Returns torsion response.
Definition: FiberSectionShear3d.cc:208
void setRespVyByName(const std::string &)
Asigna el material que define la respuesta a cortante según «y».
Definition: FiberSectionShear3d.cc:140
Definition: Matrix.h:82
UniaxialMaterial * getRespVy(void)
Returns shear y response.
Definition: FiberSectionShear3d.cc:160
Fiber section model in a three-dimensional space. Sections stiffness and internal forces are obtained...
Definition: FiberSection3d.h:72
SectionForceDeformation * getCopy(void) const
Virtual constructor.
Definition: FiberSectionShear3d.cc:350
int recvSelf(const CommParameters &)
Receives object through the channel being passed as parameter.
Definition: FiberSectionShear3d.cc:421
int setVariable(const std::string &argv)
Returns the identificador de la variable cuyo nombre being passed as parameter.
Definition: FiberSectionShear3d.cc:451
Material handler (definition, searching,...).
Definition: MaterialLoader.h:45
int commitState(void)
Commit material state (normally after convergence is achieved).
Definition: FiberSectionShear3d.cc:361
void setRespTByName(const std::string &)
Asigna el material que define la respuesta a cortante según «y».
Definition: FiberSectionShear3d.cc:188
Base class for force deformation section models. Constitutive equations of the section.
Definition: SectionForceDeformation.h:86
const Matrix & getInitialTangent(void) const
Returns the initial tangent stiffness matrix.
Definition: FiberSectionShear3d.cc:295
int setTrialSectionDeformation(const Vector &deforms)
Asigna la trial strain.
Definition: FiberSectionShear3d.cc:235
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
void zeroInitialSectionDeformation(void)
Zeroes initial strain of the section.
Definition: FiberSectionShear3d.cc:247
FiberSectionShear3d decorates an MP section (couple bending and axial) with an uncoupled shear relati...
Definition: FiberSectionShear3d.h:40
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:88