XC Open source finite element analysis program
ConstraintLoader.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 //ConstraintLoader.h
28 
29 #ifndef CONSTRAINTLOADER_H
30 #define CONSTRAINTLOADER_H
31 
32 #include "Loader.h"
33 
34 namespace XC {
35 
36 class SFreedom_Constraint;
37 class MFreedom_Constraint;
38 class MRMFreedom_Constraint;
39 
44 class ConstraintLoader: public Loader
45  {
46  int tag_sp_constraint;
47  int tag_mp_constraint;
48  int tag_mrmp_constraint;
49  protected:
50 
51  friend class Node;
52  friend class SetMeshComp;
54  SFreedom_Constraint *addSFreedom_Constraint(const int &,const int &,const double &valor);
55  public:
57  virtual ~ConstraintLoader(void);
58  inline const int &getTagNextSPConstraint(void) const
59  { return tag_sp_constraint; }
60  inline const int &getTagNextMPConstraint(void) const
61  { return tag_mp_constraint; }
62  inline const int &getTagNextMRMPConstraint(void) const
63  { return tag_mrmp_constraint; }
64  int getNumSPs(void) const;
65  int getNumMPs(void) const;
66  int getNumMRMPs(void) const;
67  int getNumLPs(void) const;
68  SFreedom_Constraint *newSPConstraint(const int &,const int &,const double &);
69  void removeSPConstraint(const int &tagC);
70  MFreedom_Constraint *newMPConstraint(const int &, const int &, const ID &, const ID &);
71  MFreedom_Constraint *newEqualDOF(const int &, const int &, const ID &);
72  MFreedom_Constraint *newRigidBeam(const int &, const int &);
73  MFreedom_Constraint *newRigidRod(const int &, const int &);
74  //MFreedom_Constraint *newRigidDiaphragm(void);
75  MRMFreedom_Constraint *newMRMPConstraint(const ID &, const int &, const ID &);
76  MRMFreedom_Constraint *newGlueNodeToElement(const Node &, const Element &, const ID &);
77  void clearAll(void);
78  };
79 
80 } // end of XC namespace
81 
82 #endif
Constraint cration tools.
Definition: ConstraintLoader.h:44
int getNumMRMPs(void) const
returns numbr of multiple retained node constraints.
Definition: ConstraintLoader.cc:207
int getNumSPs(void) const
returns number of single node constraints.
Definition: ConstraintLoader.cc:199
void removeSPConstraint(const int &tagC)
Elimina la coacción del domain.
Definition: ConstraintLoader.cc:181
int getNumLPs(void) const
returns number of load patterns.
Definition: ConstraintLoader.cc:211
Mesh node.
Definition: Node.h:99
Base calass for the finite elements.
Definition: Element.h:104
Finite element model generation tools.
Definition: Preprocessor.h:58
SFreedom_Constraint * newSPConstraint(const int &, const int &, const double &)
Defines a single freedom constraint.
Definition: ConstraintLoader.cc:82
Definition: ID.h:77
void clearAll(void)
Clears all the objects.
Definition: ConstraintLoader.cc:192
int getNumMPs(void) const
returns numbr of multiple node constraints.
Definition: ConstraintLoader.cc:203
Multiple retained nodes constraint.
Definition: MRMFreedom_Constraint.h:58
ConstraintLoader(Preprocessor *owr)
Default constructor.
Definition: ConstraintLoader.cc:47
Set of mesh components (nodes, elements and constraints).
Definition: SetMeshComp.h:58
MFreedom_Constraint * newMPConstraint(const int &, const int &, const ID &, const ID &)
Appends a multi-freedom constraint to the model.
Definition: ConstraintLoader.cc:86
Base class for the preprocessor objects that create model entities: nodes, elements, loads, etc.
Definition: Loader.h:50
SFreedom_Constraint * addSFreedom_Constraint(const int &, const SFreedom_Constraint &)
Appends a single freedom constraint to the model.
Definition: ConstraintLoader.cc:51
Multi-freedom constraint. Objectt of this class store the information for a multifreedom constraint...
Definition: MFreedom_Constraint.h:84
Single freedom constraint.
Definition: SFreedom_Constraint.h:79
MFreedom_Constraint * newEqualDOF(const int &, const int &, const ID &)
Imposes the same displacements on both nodes for the components specified in the argument.
Definition: ConstraintLoader.cc:105
================================================================================
Definition: ContinuaReprComponent.h:34
MRMFreedom_Constraint * newMRMPConstraint(const ID &, const int &, const ID &)
Appends a multi-row, multi-freedom constraint to the model.
Definition: ConstraintLoader.cc:151