xc
BoundaryCondHandler.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 //BoundaryCondHandler.h
29 
30 #ifndef CONSTRAINTLOADER_H
31 #define CONSTRAINTLOADER_H
32 
33 #include "PrepHandler.h"
34 
35 class Line2d;
36 class Plane;
37 
38 namespace XC {
39 
40 class SFreedom_Constraint;
41 class Skew_Constraint;
42 class MFreedom_Constraint;
43 class MRMFreedom_Constraint;
44 
50  {
51  int tag_sp_constraint;
52  int tag_mp_constraint;
53  int tag_mrmp_constraint;
54  protected:
55 
56  friend class Node;
57  friend class SetMeshComp;
59  SFreedom_Constraint *addSFreedom_Constraint(const int &,const int &,const double &);
60  public:
62  virtual ~BoundaryCondHandler(void);
63  inline const int &getTagNextSPConstraint(void) const
64  { return tag_sp_constraint; }
65  inline const int &getTagNextMPConstraint(void) const
66  { return tag_mp_constraint; }
67  inline const int &getTagNextMRMPConstraint(void) const
68  { return tag_mrmp_constraint; }
69  int getNumSPs(void) const;
70  int getNumMPs(void) const;
71  int getNumMRMPs(void) const;
72  int getNumLPs(void) const;
73  SFreedom_Constraint *newSPConstraint(const int &,const int &,const double &);
74  void removeSPConstraint(const int &tagC);
75  Skew_Constraint *newSkewConstraint(const int &, const ID &, const ID &);
76  Skew_Constraint *newSymmetryConstraint(const int &, const Line2d &);
77  Skew_Constraint *newSymmetryConstraint(const int &, const Plane &);
78  Skew_Constraint *newAntiSymmetryConstraint(const int &, const Line2d &);
79  Skew_Constraint *newAntiSymmetryConstraint(const int &, const Plane &);
80  MFreedom_Constraint *newMPConstraint(const int &, const int &, const ID &, const ID &);
81  MFreedom_Constraint *newEqualDOF(const int &, const int &, const ID &);
82  MFreedom_Constraint *newRigidBeam(const int &, const int &);
83  MFreedom_Constraint *newRigidRod(const int &, const int &);
84  //MFreedom_Constraint *newRigidDiaphragm(void);
85  MRMFreedom_Constraint *newMRMPConstraint(const ID &, const int &, const ID &);
86  MRMFreedom_Constraint *newGlueNodeToElement(const Node &, const Element &, const ID &);
87  void clearAll(void);
88  };
89 
90 } // end of XC namespace
91 
92 #endif
int getNumMPs(void) const
returns numbr of multiple node constraints.
Definition: BoundaryCondHandler.cc:318
void removeSPConstraint(const int &tagC)
Removes the constraint from domain.
Definition: BoundaryCondHandler.cc:293
SFreedom_Constraint * newSPConstraint(const int &, const int &, const double &)
Defines a single freedom constraint.
Definition: BoundaryCondHandler.cc:89
MFreedom_Constraint * newMPConstraint(const int &, const int &, const ID &, const ID &)
Appends a multi-freedom constraint to the model.
Definition: BoundaryCondHandler.cc:186
MRMFreedom_Constraint * newMRMPConstraint(const ID &, const int &, const ID &)
Appends a multi-row, multi-freedom constraint to the model.
Definition: BoundaryCondHandler.cc:259
int getNumSPs(void) const
returns number of single node constraints.
Definition: BoundaryCondHandler.cc:314
SFreedom_Constraint * addSFreedom_Constraint(const int &, const SFreedom_Constraint &)
Appends a single freedom constraint to the model.
Definition: BoundaryCondHandler.cc:54
Finite element model generation tools.
Definition: Preprocessor.h:59
Line in a two-dimensional space.
Definition: Line2d.h:61
Vector of integers.
Definition: ID.h:95
Constraint cration tools.
Definition: BoundaryCondHandler.h:49
Plane in a three-dimensional space.
Definition: Plane.h:49
BoundaryCondHandler(Preprocessor *owr)
Default constructor.
Definition: BoundaryCondHandler.cc:50
Base class for the preprocessor objects that create model entities: nodes, elements, loads, etc.
Definition: PrepHandler.h:47
MFreedom_Constraint * newEqualDOF(const int &, const int &, const ID &)
Imposes the same displacements on both nodes for the components specified in the argument.
Definition: BoundaryCondHandler.cc:207
Base class for the finite elements.
Definition: Element.h:112
Skew_Constraint * newSymmetryConstraint(const int &, const Line2d &)
Defines a 2D symmetry constraint.
Definition: BoundaryCondHandler.cc:110
Set of mesh components (nodes, elements and constraints).
Definition: SetMeshComp.h:59
Skew_Constraint * newSkewConstraint(const int &, const ID &, const ID &)
Defines a skew constraint.
Definition: BoundaryCondHandler.cc:93
Single freedom constraint.
Definition: SFreedom_Constraint.h:85
Skew_Constraint * newAntiSymmetryConstraint(const int &, const Line2d &)
Defines a 2D anti-symmetry constraint.
Definition: BoundaryCondHandler.cc:148
Skew constraint.
Definition: Skew_Constraint.h:82
Multiple retained nodes constraint.
Definition: MRMFreedom_Constraint.h:59
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
int getNumLPs(void) const
returns number of load patterns.
Definition: BoundaryCondHandler.cc:326
Multi-freedom constraint.
Definition: MFreedom_Constraint.h:113
int getNumMRMPs(void) const
returns numbr of multiple retained node constraints.
Definition: BoundaryCondHandler.cc:322
Mesh node.
Definition: Node.h:112
void clearAll(void)
Clears all the objects.
Definition: BoundaryCondHandler.cc:306