MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
membrane.h
Go to the documentation of this file.
1 /*
2  * MBDyn (C) is a multibody analysis code.
3  * http://www.mbdyn.org
4  *
5  * Copyright (C) 2011-2017
6  *
7  * Marco Morandini <morandini@aero.polimi.it>
8  * Riccardo Vescovini <vescovini@aero.polimi.it>
9  * Tommaso Solcia <solcia@aero.polimi.it>
10  *
11  * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
12  * via La Masa, 34 - 20156 Milano, Italy
13  * http://www.aero.polimi.it
14  *
15  * Changing this copyright notice is forbidden.
16  *
17  * This program is free software; you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License as published by
19  * the Free Software Foundation (version 2 of the License).
20  *
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */
31 
32 /*
33  * Inspired by
34  * Wojciech Witkowski
35  * "4-Node combined shell element with semi-EAS-ANS strain interpolations
36  * in 6-parameter shell theories with drilling degrees of freedom"
37  * Comput Mech (2009) 43:307­319 DOI 10.1007/s00466-008-0307-x
38  */
39 
40 #ifndef MEMBRANE_H
41 #define MEMBRANE_H
42 
43 #include "myassert.h"
44 #include "except.h"
45 
46 #include "strnode.h"
47 #include "elem.h"
48 
49 #include "constltp.h"
50 
51 /* da spostare in .cc */
52 #include "Rot.hh"
53 #include "joint.h"
54 
55 extern const char* psMembraneNames[];
56 
57 // Forward declaration
58 class DataManager;
59 class MBDynParser;
60 
61 // Membrane - begin
62 
63 
64 class Membrane
65 : virtual public Elem,
66 public ElemGravityOwner,
67 public ElemWithDofs,
69 {
70 public:
71  // Membrane types
72  enum Type {
73  UNKNOWN = -1,
74  ELASTIC = 0,
76 
78  };
79 
80  // Da appunti Vescovini
82  typedef std::vector<vh> vvh;
84  typedef std::vector<fmh> vfmh;
86 
87  Membrane(unsigned uLabel, const DofOwner* pDO, flag fOut);
88  virtual ~Membrane(void);
89 
90  // Element type
91  virtual Elem::Type GetElemType(void) const {
92  return Elem::PLATE;
93  };
94 };
95 
96 // Membrane - end
97 
98 extern Elem*
100  MBDynParser& HP,
101  const DofOwner* pDO,
102  unsigned int uLabel);
103 
104 extern int
106 
107 #endif // MEMBRANE_H
108 
109 
std::vector< fmh > vfmh
Definition: membrane.h:84
int ReadMembraneConstLaw(MBDynParser &HP, Membrane::fmh &pD, Membrane::vh &PreStress)
Definition: membrane.cc:74
const char * psMembraneNames[]
long int flag
Definition: mbdyn.h:43
virtual Elem::Type GetElemType(void) const
Definition: membrane.h:91
ConstitutiveLawOwner< vh, fmh > ConstitutiveLawOwnerType
Definition: membrane.h:85
MyVectorHandler vh
Definition: membrane.h:81
Elem * ReadMembrane4EAS(DataManager *pDM, MBDynParser &HP, const DofOwner *pDO, unsigned int uLabel)
Definition: membraneeas.cc:594
virtual ~Membrane(void)
Definition: membrane.cc:68
FullMatrixHandler fmh
Definition: membrane.h:83
std::vector< vh > vvh
Definition: membrane.h:82
unsigned int uLabel
Definition: withlab.h:44
Membrane(unsigned uLabel, const DofOwner *pDO, flag fOut)
Definition: membrane.cc:59
Definition: elem.h:75
Type
Definition: elem.h:91