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