-
Notifications
You must be signed in to change notification settings - Fork 9
/
SIMRigid.h
49 lines (38 loc) · 1.18 KB
/
SIMRigid.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// $Id$
//==============================================================================
//!
//! \file SIMRigid.h
//!
//! \date Dec 09 2020
//!
//! \author Knut Morten Okstad / SINTEF
//!
//! \brief Rigid Coupling handler for elasticity problems.
//!
//=============================================================================
#ifndef _SIM_RIGID_H
#define _SIM_RIGID_H
#include "TopologySet.h"
class SIMinput;
class ElementBlock;
namespace tinyxml2 { class XMLElement; }
/*!
\brief Rigid coupling handler for elasticity problems.
*/
class SIMRigid
{
protected:
//! \brief The default constructor is protected to allow sub-classes only.
SIMRigid() {}
//! \brief Empty destructor.
virtual ~SIMRigid() {}
//! \brief Parses a rigid coupling definition from an XML element.
bool parseRigid(const tinyxml2::XMLElement* elem, SIMinput* mySim);
//! \brief Creates multi-point constraint equations for the rigid couplings.
bool addRigidMPCs(SIMinput* mySim, int& ngnod) const;
//! \brief Creates an element block visualizing the rigid couplings.
ElementBlock* rigidGeometry(SIMinput* mySim) const;
private:
std::map<int,TopItem> myMasters; //!< Discrete master points
};
#endif