MAST
kinematic_coupling_constraint.h
Go to the documentation of this file.
1 /*
2  * MAST: Multidisciplinary-design Adaptation and Sensitivity Toolkit
3  * Copyright (C) 2013-2019 Manav Bhatia
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef __mast__kinematic_coupling_constraint_h__
21 #define __mast__kinematic_coupling_constraint_h__
22 
23 // MAST includes
24 #include "base/mast_data_types.h"
25 
26 // libMesh includes
27 #include "libmesh/node.h"
28 #include "libmesh/dof_map.h"
29 
30 
31 namespace MAST {
32 
33  // Forward declerations
34  class SystemInitialization;
35 
72 
73  public:
74 
76  const libMesh::Node& slave_node,
77  const std::set<const libMesh::Node*>& master_nodes,
78  bool constrain_rotations);
79 
81 
85  unsigned int
87 
88  return _constrain_rotations?6:3;
89  }
90 
95  void
96  get_dof_constraint_row(std::vector<std::tuple
97  <libMesh::dof_id_type,
98  libMesh::DofConstraintRow,
99  Real>>& constraints) const;
100 
101  protected:
102 
104  const libMesh::Node* _slave;
105  std::set<const libMesh::Node*> _masters;
107  };
108 }
109 
110 #endif // __mast__kinematic_coupling_constraint_h__
libMesh::Real Real
This object stores the information about the coupling of nodes.
KinematicCouplingConstraint(MAST::SystemInitialization &sys_init, const libMesh::Node &slave_node, const std::set< const libMesh::Node * > &master_nodes, bool constrain_rotations)
void get_dof_constraint_row(std::vector< std::tuple< libMesh::dof_id_type, libMesh::DofConstraintRow, Real >> &constraints) const
initializes the vector of libMesh::DofConstraintRow objects and rhs values for this node ...
std::set< const libMesh::Node * > _masters