IFEM  90A354
SIMNodalConstraint.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _SIM_NODAL_CONSTRAINT_H_
15 #define _SIM_NODAL_CONSTRAINT_H_
16 
17 #include <string>
18 #include <vector>
19 
20 namespace tinyxml2 { class XMLElement; }
21 
22 
25  std::string topset;
26  size_t basis;
27  size_t patch;
28  size_t vertex;
29  size_t comp;
30 
32  TopSetToVertex() : basis(1), patch(1), vertex(1), comp(1) {}
33 };
34 
35 using ConstraintVec = std::vector<TopSetToVertex>;
36 
37 
39 template<class Dim> class SIMNodalConstraint : public Dim
40 {
42 
43 public:
45  explicit SIMNodalConstraint(const std::vector<unsigned char>& unf) : Dim(unf) {}
47  virtual ~SIMNodalConstraint() {}
48 
49 protected:
51  virtual bool preprocessBeforeAsmInit(int&) { return this->applyConstraint(); }
52 
53  using Dim::parse;
55  virtual bool parse(const tinyxml2::XMLElement* elem);
56 
57 private:
60 };
61 
62 #endif
std::vector< TopSetToVertex > ConstraintVec
Convenience type.
Definition: SIMNodalConstraint.h:35
Inherit this class to equip your SIM with nodal constraints.
Definition: SIMNodalConstraint.h:40
virtual bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML element.
Definition: SIMNodalConstraint.C:395
virtual ~SIMNodalConstraint()
Empty destructor.
Definition: SIMNodalConstraint.h:47
virtual bool preprocessBeforeAsmInit(int &)
Sets up the nodal constraints.
Definition: SIMNodalConstraint.h:51
bool applyConstraint()
Applies the nodal constraints on the defined topology sets.
SIMNodalConstraint(const std::vector< unsigned char > &unf)
The constructor forwards to the parent class constructor.
Definition: SIMNodalConstraint.h:45
ConstraintVec vertConstraints
Registered vertex constraints.
Definition: SIMNodalConstraint.h:41
Describes a topologyset constrained to a vertex.
Definition: SIMNodalConstraint.h:24
size_t patch
Patch number of vertex.
Definition: SIMNodalConstraint.h:27
size_t comp
Component to constrain.
Definition: SIMNodalConstraint.h:29
size_t basis
Basis to constrain.
Definition: SIMNodalConstraint.h:26
TopSetToVertex()
Default constructor.
Definition: SIMNodalConstraint.h:32
size_t vertex
Vertex number.
Definition: SIMNodalConstraint.h:28
std::string topset
Topologyset to be constrained.
Definition: SIMNodalConstraint.h:25