OOFEM 3.0
Loading...
Searching...
No Matches
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 - 2025 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
38#include "fei3dwedgelin.h"
39#include "node.h"
40#include "material.h"
41#include "gausspoint.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
53namespace oofem {
55
56FEI3dWedgeLin LWedge :: interpolation;
57
58LWedge :: LWedge(int n, Domain *aDomain) : Structural3DElement(n, aDomain), ZZNodalRecoveryModelInterface(this), SpatialLocalizerInterface(this)
59{
61}
62
63
64void
65LWedge :: initializeFrom(InputRecord &ir, int priority)
66{
67 Structural3DElement :: initializeFrom(ir, priority);
68}
69
70
71FEInterpolation * LWedge :: giveInterpolation() const { return & interpolation; }
72
73
75LWedge :: giveInterface(InterfaceType interface)
76{
77 if ( interface == ZZNodalRecoveryModelInterfaceType ) {
78 return static_cast< ZZNodalRecoveryModelInterface * >(this);
79 } else if ( interface == SPRNodalRecoveryModelInterfaceType ) {
80 return static_cast< SPRNodalRecoveryModelInterface * >(this);
81 } else if ( interface == NodalAveragingRecoveryModelInterfaceType ) {
82 return static_cast< NodalAveragingRecoveryModelInterface * >(this);
83 } else if ( interface == SpatialLocalizerInterfaceType ) {
84 return static_cast< SpatialLocalizerInterface * >(this);
85 }
86
87 OOFEM_LOG_INFO("Interface on Lwedge element not supported");
88 return NULL;
89}
90
91void
92LWedge :: SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap)
93{
94 pap.resize(6);
95 for ( int i = 1; i <= 6; i++ ) {
96 pap.at(i) = this->giveNode(i)->giveNumber();
97 }
98}
99
100void
101LWedge :: SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap)
102{
103 int found = 0;
104 answer.resize(1);
105
106 for ( int i = 1; i <= 6; i++ ) {
107 if ( this->giveNode(i)->giveNumber() == pap ) {
108 found = 1;
109 }
110 }
111
112 if ( found ) {
113 answer.at(1) = pap;
114 } else {
115 OOFEM_ERROR("unknown node number %d", pap);
116 }
117}
118
119int
120LWedge :: SPRNodalRecoveryMI_giveNumberOfIP()
121{
122 return numberOfGaussPoints;
123}
124
125
127LWedge :: SPRNodalRecoveryMI_givePatchType()
128{
130}
131
132
133void
134LWedge :: NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
135{
136 answer.clear();
137 OOFEM_WARNING("IP values will not be transferred to nodes. Use ZZNodalRecovery instead (parameter stype 1)");
138}
139
140} // end namespace oofem
#define REGISTER_Element(class)
Node * giveNode(int i) const
Definition element.h:629
int numberOfDofMans
Number of dofmanagers.
Definition element.h:136
int numberOfGaussPoints
Definition element.h:175
int giveNumber() const
Definition femcmpnn.h:104
void resize(int n)
Definition intarray.C:73
int & at(std::size_t i)
Definition intarray.h:104
static FEI3dWedgeLin interpolation
Definition lwedge.h:57
SpatialLocalizerInterface(Element *element)
Structural3DElement(int n, Domain *d)
ZZNodalRecoveryModelInterface(Element *element)
Constructor.
#define OOFEM_WARNING(...)
Definition error.h:80
#define OOFEM_ERROR(...)
Definition error.h:79
#define OOFEM_LOG_INFO(...)
Definition logger.h:143
@ SPRNodalRecoveryModelInterfaceType
@ ZZNodalRecoveryModelInterfaceType
@ SpatialLocalizerInterfaceType
@ NodalAveragingRecoveryModelInterfaceType

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011