xc
BidimStrainLoad.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 //BidimStrainLoad.h
28 
29 #ifndef BidimStrainLoad_h
30 #define BidimStrainLoad_h
31 
32 #include "BidimLoad.h"
33 
34 namespace XC {
36 //
39  {
40  private:
41  std::vector<Vector> strains;
42  protected:
43  DbTagData &getDbTagData(void) const;
44  int sendData(CommParameters &cp);
45  int recvData(const CommParameters &cp);
46 
47  public:
48  BidimStrainLoad(int tag, const std::vector<Vector> &, const ID &theElementTags);
49  BidimStrainLoad(int tag, const size_t &, const Vector &, const ID &theElementTags);
50  BidimStrainLoad(int tag, const size_t &, const ID &theElementTags);
51  BidimStrainLoad(int tag, const size_t &, const Vector &);
52  BidimStrainLoad(int tag, const size_t &);
53  BidimStrainLoad(const size_t &s= 4);
54 
55  inline const std::vector<Vector> &getStrains(void) const
56  { return strains; }
57  inline std::vector<Vector> &Strains(void)
58  { return strains; }
59  inline const Vector &getStrain(const size_t &i) const
60  { return strains[i]; }
61  inline Vector &Strain(const size_t &i)
62  { return strains[i]; }
63  void setStrains(const Matrix &);
64  void setStrainComp(const size_t &,const size_t &,const double &);
65  const Vector &getData(int &type, const double &loadFactor) const;
66 
67 
68  int sendSelf(CommParameters &);
69  int recvSelf(const CommParameters &);
70  void Print(std::ostream &s, int flag =0) const;
71 
72  };
73 } // end of XC namespace
74 
75 #endif
76 
Float vector abstraction.
Definition: Vector.h:93
int recvSelf(const CommParameters &)
Receive the object.
Definition: BidimStrainLoad.cc:140
Load over bidimensional elements.
Definition: BidimLoad.h:40
Vector that stores the dbTags of the class members.
Definition: DbTagData.h:43
Vector of integers.
Definition: ID.h:93
void setStrains(const Matrix &)
Asigna las strains.
Definition: BidimStrainLoad.cc:79
void setStrainComp(const size_t &, const size_t &, const double &)
Sets the strains for a Gauss point.
Definition: BidimStrainLoad.cc:60
int recvData(const CommParameters &cp)
Receive data through the channel being passed as parameter.
Definition: BidimStrainLoad.cc:121
int sendData(CommParameters &cp)
Send data through the channel being passed as parameter.
Definition: BidimStrainLoad.cc:113
DbTagData & getDbTagData(void) const
Returns a vector to store the dbTags of the class members.
Definition: BidimStrainLoad.cc:106
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
Communication parameters between processes.
Definition: CommParameters.h:65
Matrix of floats.
Definition: Matrix.h:108
Load due to restricted material expansion or contraction on bidimensional elements.
Definition: BidimStrainLoad.h:38
int sendSelf(CommParameters &)
Send the object.
Definition: BidimStrainLoad.cc:128