OOFEM 3.0
Loading...
Searching...
No Matches
igaelements.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 - 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
35#ifndef igaelements_h
36#define igaelements_h
37
38#include "iga/iga.h"
39#include "iga/feibspline.h"
40#include "iga/feinurbs.h"
41#include "iga/feitspline.h"
44#include "floatarray.h"
45#include "floatmatrix.h"
46#include "matresponsemode.h"
47#include "mathfem.h"
48
49#define _IFT_BsplinePlaneStressElement_Name "bsplineplanestresselement"
50#define _IFT_NURBSPlaneStressElement_Name "nurbsplanestresselement"
51#define _IFT_TSplinePlaneStressElement_Name "tsplineplanestresselement"
52#define _IFT_NURBSSpace3dElement_Name "nurbs3delement"
53
54namespace oofem {
56{
57protected:
59
60public:
61 BsplinePlaneStressElement(int n, Domain * aDomain);
62
63 void initializeFrom(InputRecord &ir, int priority) override;
64 int checkConsistency() override;
65
66 void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override {
67 PlaneStressStructuralElementEvaluator :: giveCharacteristicMatrix(answer, mtrx, tStep);
68 }
69 void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override {
70 PlaneStressStructuralElementEvaluator :: giveCharacteristicVector(answer, type, mode, t);
71 }
72
73 FEInterpolation *giveInterpolation() const override { return const_cast< BSplineInterpolation * >(& this->interpolation); }
74 Element *giveElement() override { return this; }
75 void giveDofManDofIDMask(int inode, IntArray &answer) const override {
76 PlaneStressStructuralElementEvaluator :: giveDofManDofIDMask(inode, answer);
77 }
78 int computeNumberOfDofs() override { return numberOfDofMans * 2; }
79 void updateInternalState(TimeStep *tStep) override { PlaneStressStructuralElementEvaluator :: updateInternalState(tStep); }
80 // definition & identification
81 const char *giveInputRecordName() const override { return _IFT_BsplinePlaneStressElement_Name; }
82 const char *giveClassName() const override { return "BsplinePlaneStressElement"; }
83 Element_Geometry_Type giveGeometryType() const override {return EGT_unknown;}
84
85
86#ifdef __OOFEG
87 // Graphics output
88 void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override;
90 drawIGAPatchDeformedGeometry(this, this, gc, tStep, ut);
91 }
92#endif
93
94protected:
95 int giveNsd(const Element_Geometry_Type) override { return 2; }
96};
97
98
100{
101protected:
103
104public:
105 NURBSPlaneStressElement(int n, Domain * aDomain);
106
107 void initializeFrom(InputRecord &ir, int priority) override;
108 int checkConsistency() override;
109
110 void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override {
111 PlaneStressStructuralElementEvaluator :: giveCharacteristicMatrix(answer, mtrx, tStep);
112 }
113 void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override {
114 PlaneStressStructuralElementEvaluator :: giveCharacteristicVector(answer, type, mode, t);
115 }
116
117 FEInterpolation *giveInterpolation() const override { return const_cast< NURBSInterpolation * >(& this->interpolation); }
118 Element *giveElement() override { return this; }
119 void giveDofManDofIDMask(int inode, IntArray &answer) const override {
120 PlaneStressStructuralElementEvaluator :: giveDofManDofIDMask(inode, answer);
121 }
122 int computeNumberOfDofs() override { return numberOfDofMans * 2; }
123 void updateInternalState(TimeStep *tStep) override { PlaneStressStructuralElementEvaluator :: updateInternalState(tStep); }
124 // definition & identification
125 const char *giveInputRecordName() const override { return _IFT_NURBSPlaneStressElement_Name; }
126 const char *giveClassName() const override { return "NURBSPlaneStressElement"; }
127 Element_Geometry_Type giveGeometryType() const override {return EGT_unknown;}
128#ifdef __OOFEG
129 //
130 // Graphics output
131 //
132 void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override;
134 drawIGAPatchDeformedGeometry(this, this, gc, tStep, ut);
135 }
136
137#endif
138
139protected:
140 int giveNsd(const Element_Geometry_Type) override { return 2; }
141};
142
143
144
146{
147protected:
149
150public:
151 TSplinePlaneStressElement(int n, Domain * aDomain);
152
153 void initializeFrom(InputRecord &ir, int priority) override {
154 IGATSplineElement :: initializeFrom(ir, priority);
155 //PlaneStressStructuralElementEvaluator::initializeFrom(ir);
156 }
157
158 void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override {
159 PlaneStressStructuralElementEvaluator :: giveCharacteristicMatrix(answer, mtrx, tStep);
160 }
161 void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override {
162 PlaneStressStructuralElementEvaluator :: giveCharacteristicVector(answer, type, mode, t);
163 }
164
165 FEInterpolation *giveInterpolation() const override { return const_cast< TSplineInterpolation * >(& this->interpolation); }
166 Element *giveElement() override { return this; }
167 void giveDofManDofIDMask(int inode, IntArray &answer) const override {
168 PlaneStressStructuralElementEvaluator :: giveDofManDofIDMask(inode, answer);
169 }
170 int computeNumberOfDofs() override { return numberOfDofMans * 2; }
171 void updateInternalState(TimeStep *tStep) override { PlaneStressStructuralElementEvaluator :: updateInternalState(tStep); }
172 // definition & identification
173 const char *giveInputRecordName() const override { return _IFT_TSplinePlaneStressElement_Name; }
174 const char *giveClassName() const override { return "TSplinePlaneStressElement"; }
175 Element_Geometry_Type giveGeometryType() const override {return EGT_unknown;}
176
177#ifdef __OOFEG
178 // Graphics output
179 void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override;
180#endif
181
182protected:
183 int giveNsd(const Element_Geometry_Type) override { return 2; }
184};
185
186
188{
189protected:
191
192public:
193 NURBSSpace3dElement(int n, Domain * aDomain);
194
195 void initializeFrom(InputRecord &ir, int priority) override;
196 int checkConsistency() override;
197
198 void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override {
199 Space3dStructuralElementEvaluator :: giveCharacteristicMatrix(answer, mtrx, tStep);
200 }
201 void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override {
202 Space3dStructuralElementEvaluator :: giveCharacteristicVector(answer, type, mode, t);
203 }
204
205 FEInterpolation *giveInterpolation() const override { return const_cast< NURBSInterpolation * >(& this->interpolation); }
206 Element *giveElement() override { return this; }
207
208 void giveDofManDofIDMask(int inode, IntArray &answer) const override {
209 Space3dStructuralElementEvaluator :: giveDofManDofIDMask(inode, answer);
210 }
211 int computeNumberOfDofs() override { return numberOfDofMans * 3; }
212 void updateInternalState(TimeStep *tStep) override { Space3dStructuralElementEvaluator :: updateInternalState(tStep); }
213 // definition & identification
214 const char *giveInputRecordName() const override { return _IFT_NURBSSpace3dElement_Name; }
215 const char *giveClassName() const override { return "NURBSSpace3dElement"; }
216 Element_Geometry_Type giveGeometryType() const override {return EGT_unknown;}
217
218#ifdef __OOFEG
219 // Graphics output
220 void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override;
222 drawIGAPatchDeformedGeometry(this, this, gc, tStep, ut);
223 }
224#endif
225
226protected:
227 int giveNsd(const Element_Geometry_Type) override { return 3; }
228};
229} // end namespace oofem
230#endif //igaelements_h
int giveNsd(const Element_Geometry_Type) override
Definition igaelements.h:95
const char * giveClassName() const override
Definition igaelements.h:82
void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override
Definition igaelements.h:69
void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override
Definition igaelements.h:66
Element_Geometry_Type giveGeometryType() const override
Definition igaelements.h:83
void giveDofManDofIDMask(int inode, IntArray &answer) const override
Definition igaelements.h:75
const char * giveInputRecordName() const override
Definition igaelements.h:81
void updateInternalState(TimeStep *tStep) override
Definition igaelements.h:79
BSplineInterpolation interpolation
Definition igaelements.h:58
void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType ut) override
Definition igaelements.h:89
BsplinePlaneStressElement(int n, Domain *aDomain)
Definition igaelements.C:62
void initializeFrom(InputRecord &ir, int priority) override
Definition igaelements.C:65
FEInterpolation * giveInterpolation() const override
Definition igaelements.h:73
Element * giveElement() override
Definition igaelements.h:74
void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override
int numberOfDofMans
Number of dofmanagers.
Definition element.h:136
IGAElement(int n, Domain *aDomain)
Definition iga.h:98
IGATSplineElement(int n, Domain *aDomain)
Definition iga.h:121
NURBSPlaneStressElement(int n, Domain *aDomain)
Definition igaelements.C:84
void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override
void updateInternalState(TimeStep *tStep) override
void initializeFrom(InputRecord &ir, int priority) override
Definition igaelements.C:87
void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType ut) override
void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override
void giveDofManDofIDMask(int inode, IntArray &answer) const override
FEInterpolation * giveInterpolation() const override
const char * giveInputRecordName() const override
NURBSInterpolation interpolation
Element * giveElement() override
void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override
int giveNsd(const Element_Geometry_Type) override
Element_Geometry_Type giveGeometryType() const override
const char * giveClassName() const override
Element * giveElement() override
int checkConsistency() override
void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType ut) override
void updateInternalState(TimeStep *tStep) override
int giveNsd(const Element_Geometry_Type) override
const char * giveInputRecordName() const override
void giveDofManDofIDMask(int inode, IntArray &answer) const override
int computeNumberOfDofs() override
FEInterpolation * giveInterpolation() const override
const char * giveClassName() const override
NURBSInterpolation interpolation
NURBSSpace3dElement(int n, Domain *aDomain)
Element_Geometry_Type giveGeometryType() const override
void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override
void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override
void initializeFrom(InputRecord &ir, int priority) override
void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override
const char * giveInputRecordName() const override
void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *t) override
TSplinePlaneStressElement(int n, Domain *aDomain)
Element * giveElement() override
FEInterpolation * giveInterpolation() const override
void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override
Element_Geometry_Type giveGeometryType() const override
int giveNsd(const Element_Geometry_Type) override
const char * giveClassName() const override
void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep) override
void initializeFrom(InputRecord &ir, int priority) override
void giveDofManDofIDMask(int inode, IntArray &answer) const override
void updateInternalState(TimeStep *tStep) override
TSplineInterpolation interpolation
#define _IFT_TSplinePlaneStressElement_Name
Definition igaelements.h:51
#define _IFT_NURBSPlaneStressElement_Name
Definition igaelements.h:50
#define _IFT_NURBSSpace3dElement_Name
Definition igaelements.h:52
#define _IFT_BsplinePlaneStressElement_Name
Definition igaelements.h:49
void drawIGAPatchDeformedGeometry(Element *elem, StructuralElementEvaluator *se, oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
Definition iga.C:1001
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]

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