OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
qwedge_ht.h
Go to the documentation of this file.
1 /*
2  *
3  * ##### ##### ###### ###### ### ###
4  * ## ## ## ## ## ## ## ### ##
5  * ## ## ## ## #### #### ## # ##
6  * ## ## ## ## ## ## ## ##
7  * ## ## ## ## ## ## ## ##
8  * ##### ##### ## ###### ## ##
9  *
10  *
11  * OOFEM : Object Oriented Finite Element Code
12  *
13  * Copyright (C) 1993 - 2013 Borek Patzak
14  *
15  *
16  *
17  * Czech Technical University, Faculty of Civil Engineering,
18  * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of.
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28  * Lesser General Public License for more details.
29  *
30  * You should have received a copy of the GNU Lesser General Public
31  * License along with this library; if not, write to the Free Software
32  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33  */
34 
35 
36 #ifndef qwedge_ht_h
37 #define qwedge_ht_h
38 
39 
40 #include "transportelement.h"
41 #include "spatiallocalizer.h"
42 #include "zznodalrecoverymodel.h"
43 #include "sprnodalrecoverymodel.h"
45 
46 
47 #define _IFT_QWedge_ht_Name "qwedgeht"
48 #define _IFT_QWedge_hmt_Name "qwedgehmt"
49 #define _IFT_QWedge_mt_Name "qwedgemt"
50 
51 namespace oofem {
52 class FEI3dWedgeQuad;
53 
58 {
59 protected:
61 
62 
63 public:
64  QWedge_ht(int, Domain *);
65  virtual ~QWedge_ht() { }
66 
67 
68  virtual double computeVolumeAround(GaussPoint *gp);
69  virtual FEInterpolation *giveInterpolation() const;
70 
71  // definition & identification
72  virtual const char *giveInputRecordName() const { return _IFT_QWedge_ht_Name; }
73  virtual const char *giveClassName() const { return "QWedge_ht"; }
74 
75  virtual int computeNumberOfDofs() { return 15; }
77  virtual MaterialMode giveMaterialMode() { return _3dHeat; }
78 
81  { return ( ext == Element_EdgeLoadSupport );}
82 
84  virtual void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap);
88 
89  protected:
90  virtual void computeGaussPoints();
91  virtual double computeEdgeVolumeAround(GaussPoint *gp, int iEdge);
92 
93 
94 };
95 
96 
97 
101 class QWedge_hmt : public QWedge_ht
102 {
103 public:
104  QWedge_hmt(int n, Domain * d);
105 
106  virtual const char *giveInputRecordName() const { return _IFT_QWedge_hmt_Name; }
107  virtual const char *giveClassName() const { return "QWedge_hmt"; }
108  virtual int computeNumberOfDofs() { return 24; }
109  virtual MaterialMode giveMaterialMode() { return _3dHeMo; }
110 };
111 
115 class QWedge_mt : public QWedge_ht
116 {
117 public:
118  QWedge_mt(int n, Domain * d);
119 
120  virtual const char *giveInputRecordName() const { return _IFT_QWedge_mt_Name; }
121  virtual const char *giveClassName() const { return "QWedge_mt"; }
122  virtual int computeNumberOfDofs() { return 15; }
123  virtual MaterialMode giveMaterialMode() { return _3dHeat; }
124 };
125 
126 
127 } // end namespace oofem
128 #endif
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
Definition: qwedge_ht.h:122
The element interface required by ZZNodalRecoveryModel.
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
Definition: qwedge_ht.h:77
virtual const char * giveClassName() const
Definition: qwedge_ht.h:107
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
Definition: qwedge_ht.C:182
Class and object Domain.
Definition: domain.h:115
The element interface required by ZZNodalRecoveryModel.
#define _IFT_QWedge_hmt_Name
Definition: qwedge_ht.h:48
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
Definition: qwedge_ht.h:75
Class representing implementation of quadratic wedge interpolation class.
virtual FEInterpolation * giveInterpolation() const
Definition: qwedge_ht.C:116
MaterialMode
Type representing material mode of integration point.
Definition: materialmode.h:89
Class implementing an array of integers.
Definition: intarray.h:61
virtual void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap)
Definition: qwedge_ht.C:149
virtual const char * giveClassName() const
Definition: qwedge_ht.h:73
This class implements a Linear 3d 6 - node thermal finite element.
Definition: qwedge_ht.h:57
virtual const char * giveInputRecordName() const
Definition: qwedge_ht.h:72
virtual int SPRNodalRecoveryMI_giveNumberOfIP()
Definition: qwedge_ht.C:168
Class representing a general abstraction for finite element interpolation class.
Definition: feinterpol.h:132
virtual const char * giveClassName() const
Definition: qwedge_ht.h:121
virtual void SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap)
Definition: qwedge_ht.C:140
ElementExtension
Type representing element extension.
This abstract class represent a general base element class for transport problems.
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
Definition: qwedge_ht.C:93
virtual ~QWedge_ht()
Definition: qwedge_ht.h:65
Class for mass transfer.
Definition: qwedge_ht.h:115
Class representing vector of real numbers.
Definition: floatarray.h:82
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
#define _IFT_QWedge_ht_Name
Definition: qwedge_ht.h:47
virtual Interface * giveInterface(InterfaceType t)
Interface requesting service.
Definition: qwedge_ht.C:123
Class representing the general Input Record.
Definition: inputrecord.h:101
virtual SPRPatchType SPRNodalRecoveryMI_givePatchType()
Definition: qwedge_ht.C:175
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
Definition: qwedge_ht.C:82
virtual const char * giveInputRecordName() const
Definition: qwedge_ht.h:120
Class Interface.
Definition: interface.h:82
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: qwedge_ht.C:73
The spatial localizer element interface associated to spatial localizer.
InterfaceType
Enumerative type, used to identify interface type.
Definition: interfacetype.h:43
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
Definition: qwedge_ht.h:109
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
Definition: qwedge_ht.h:123
Class for heat and mass transfer.
Definition: qwedge_ht.h:101
static FEI3dWedgeQuad interpolation
Definition: qwedge_ht.h:60
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual double computeEdgeVolumeAround(GaussPoint *gp, int iEdge)
Computes the length around a integration point on a edge.
Definition: qwedge_ht.C:108
virtual int testElementExtension(ElementExtension ext)
Tests if the element implements required extension.
Definition: qwedge_ht.h:80
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
Definition: qwedge_ht.h:108
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
QWedge_ht(int, Domain *)
Definition: qwedge_ht.C:55
#define _IFT_QWedge_mt_Name
Definition: qwedge_ht.h:49
Element extension for edge loads.
virtual const char * giveInputRecordName() const
Definition: qwedge_ht.h:106

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:31 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011