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
20namespace 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
35using ConstraintVec = std::vector<TopSetToVertex>;
36
37
39template<class Dim> class SIMNodalConstraint : public Dim
40{
42
43public:
45 explicit SIMNodalConstraint(const std::vector<unsigned char>& unf) : Dim(unf) {}
48
49protected:
51 virtual bool preprocessBeforeAsmInit(int&) { return this->applyConstraint(); }
52
53 using Dim::parse;
55 virtual bool parse(const tinyxml2::XMLElement* elem);
56
57private:
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