OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
lwedge.C
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 #include "Elements/3D/lwedge.h"
36 #include "Materials/structuralms.h"
38 #include "fei3dwedgelin.h"
39 #include "node.h"
40 #include "material.h"
41 #include "gausspoint.h"
42 #include "gaussintegrationrule.h"
43 #include "floatmatrix.h"
44 #include "floatarray.h"
45 #include "intarray.h"
46 #include "domain.h"
47 #include "cltypes.h"
48 #include "mathfem.h"
49 #include "classfactory.h"
50 
51 #include <cstdio>
52 
53 namespace oofem {
54 REGISTER_Element(LWedge);
55 
56 FEI3dWedgeLin LWedge :: interpolation;
57 
59  // Constructor.
60 {
61  numberOfDofMans = 6;
62 }
63 
64 
67 {
70 }
71 
72 
74 
75 
76 Interface *
78 {
79  if ( interface == ZZNodalRecoveryModelInterfaceType ) {
80  return static_cast< ZZNodalRecoveryModelInterface * >(this);
81  } else if ( interface == SPRNodalRecoveryModelInterfaceType ) {
82  return static_cast< SPRNodalRecoveryModelInterface * >(this);
83  } else if ( interface == NodalAveragingRecoveryModelInterfaceType ) {
84  return static_cast< NodalAveragingRecoveryModelInterface * >(this);
85  } else if ( interface == SpatialLocalizerInterfaceType ) {
86  return static_cast< SpatialLocalizerInterface * >(this);
87  }
88 
89  OOFEM_LOG_INFO("Interface on Lwedge element not supported");
90  return NULL;
91 }
92 
93 void
95 {
96  pap.resize(6);
97  for ( int i = 1; i <= 6; i++ ) {
98  pap.at(i) = this->giveNode(i)->giveNumber();
99  }
100 }
101 
102 void
104 {
105  int found = 0;
106  answer.resize(1);
107 
108  for ( int i = 1; i <= 6; i++ ) {
109  if ( this->giveNode(i)->giveNumber() == pap ) {
110  found = 1;
111  }
112  }
113 
114  if ( found ) {
115  answer.at(1) = pap;
116  } else {
117  OOFEM_ERROR("unknown node number %d", pap);
118  }
119 }
120 
121 int
123 {
124  return numberOfGaussPoints;
125 }
126 
127 
130 {
131  return SPRPatchType_3dBiLin;
132 }
133 
134 
135 void
137 {
138  answer.clear();
139  OOFEM_WARNING("IP values will not be transferred to nodes. Use ZZNodalRecovery instead (parameter stype 1)");
140 }
141 
142 } // end namespace oofem
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
The element interface required by ZZNodalRecoveryModel.
Class and object Domain.
Definition: domain.h:115
virtual int SPRNodalRecoveryMI_giveNumberOfIP()
Definition: lwedge.C:122
virtual Interface * giveInterface(InterfaceType)
Interface requesting service.
Definition: lwedge.C:77
The element interface required by ZZNodalRecoveryModel.
static FEI3dWedgeLin interpolation
Definition: lwedge.h:57
void clear()
Clears receiver (zero size).
Definition: floatarray.h:206
Class implementing an array of integers.
Definition: intarray.h:61
int & at(int i)
Coefficient access function.
Definition: intarray.h:103
Class representing a general abstraction for finite element interpolation class.
Definition: feinterpol.h:132
virtual SPRPatchType SPRNodalRecoveryMI_givePatchType()
Definition: lwedge.C:129
#define OOFEM_LOG_INFO(...)
Definition: logger.h:127
virtual FEInterpolation * giveInterpolation() const
Definition: lwedge.C:73
#define OOFEM_ERROR(...)
Definition: error.h:61
REGISTER_Element(LSpace)
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
Definition: lwedge.C:136
void resize(int n)
Checks size of receiver towards requested bounds.
Definition: intarray.C:124
int numberOfGaussPoints
Number of integration points as specified by nip.
Definition: element.h:188
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: lwedge.C:66
Class representing vector of real numbers.
Definition: floatarray.h:82
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
Class representing the general Input Record.
Definition: inputrecord.h:101
Class Interface.
Definition: interface.h:82
Base class 3D elements.
The spatial localizer element interface associated to spatial localizer.
virtual void SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap)
Definition: lwedge.C:94
InterfaceType
Enumerative type, used to identify interface type.
Definition: interfacetype.h:43
the oofem namespace is to define a context or scope in which all oofem names are defined.
int giveNumber() const
Definition: femcmpnn.h:107
Node * giveNode(int i) const
Returns reference to the i-th node of element.
Definition: element.h:610
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
#define OOFEM_WARNING(...)
Definition: error.h:62
Class representing solution step.
Definition: timestep.h:80
virtual void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap)
Definition: lwedge.C:103
LWedge(int, Domain *)
Definition: lwedge.C:58
int numberOfDofMans
Number of dofmanagers.
Definition: element.h:149

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:29 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011