OOFEM 3.0
Loading...
Searching...
No Matches
quadaxisym1_ht.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
36#include "fei2dquadlin.h"
37#include "gausspoint.h"
38#include "mathfem.h"
39#include "classfactory.h"
40
41#ifdef __OOFEG
42 #include "oofeggraphiccontext.h"
43 #include "connectivitytable.h"
44#endif
45
46namespace oofem {
50
51QuadAxisym1_ht :: QuadAxisym1_ht(int n, Domain *aDomain) : Quad1_ht(n, aDomain)
52{ }
53
54QuadAxisym1_hmt :: QuadAxisym1_hmt(int n, Domain *aDomain) : QuadAxisym1_ht(n, aDomain)
55{
56 this->emode = HeatMass1TransferEM; // This could be done in a better way.
57}
58
59QuadAxisym1_mt :: QuadAxisym1_mt(int n, Domain *aDomain) : QuadAxisym1_ht(n, aDomain)
60{
61 this->emode = Mass1TransferEM;
62}
63
64double
65QuadAxisym1_ht :: computeVolumeAround(GaussPoint *gp)
66{
67 double determinant = fabs( this->interpolation.giveTransformationJacobian( gp->giveNaturalCoordinates(),
69
70 double weight = gp->giveWeight();
71 return determinant * weight * this->computeRadiusAt(gp);
72}
73
74double
75QuadAxisym1_ht :: giveThicknessAt(const FloatArray &gcoords)
76{
77 return gcoords.at(1);
78}
79
80double
81QuadAxisym1_ht :: computeEdgeVolumeAround(GaussPoint *gp, int iEdge)
82{
83 FloatArray gcoords;
84 this->interpolation.edgeLocal2global( gcoords, iEdge, gp->giveSubPatchCoordinates(), FEIElementGeometryWrapper(this) );
85 double radius = gcoords.at(1);
86
87 double detJ = fabs( this->interpolation.edgeGiveTransformationJacobian( iEdge, gp->giveNaturalCoordinates(),
89 return detJ *gp->giveWeight() * radius;
90}
91
92double
93QuadAxisym1_ht :: computeRadiusAt(GaussPoint *gp)
94{
95 FloatArray gcoords;
96 this->interpolation.local2global( gcoords, gp->giveSubPatchCoordinates(), FEIElementGeometryWrapper(this) );
97 return gcoords.at(1);
98}
99
100std::unique_ptr<IntegrationRule>
101QuadAxisym1_ht :: giveBoundaryEdgeIntegrationRule(int order, int boundary)
102{
103 return this->giveInterpolation()->giveBoundaryEdgeIntegrationRule(order+1, boundary, this->giveGeometryType());
104}
105
106std::unique_ptr<IntegrationRule>
107QuadAxisym1_ht :: giveBoundarySurfaceIntegrationRule(int order, int boundary)
108{
109 return this->giveInterpolation()->giveBoundarySurfaceIntegrationRule(order+1, boundary, this->giveGeometryType());
110}
111} // end namespace oofem
#define REGISTER_Element(class)
double & at(Index i)
Definition floatarray.h:202
const FloatArray & giveNaturalCoordinates() const
Returns coordinate array of receiver.
Definition gausspoint.h:138
const FloatArray & giveSubPatchCoordinates() const
Returns local sub-patch coordinates of the receiver.
Definition gausspoint.h:142
double giveWeight()
Returns integration weight of receiver.
Definition gausspoint.h:180
Quad1_ht(int n, Domain *d)
Definition quad1_ht.C:58
FEInterpolation * giveInterpolation() const override
Definition quad1_ht.C:76
static FEI2dQuadLin interpolation
Definition quad1_ht.h:55
Element_Geometry_Type giveGeometryType() const override
Definition quad1_ht.h:65
QuadAxisym1_ht(int n, Domain *d)
double computeRadiusAt(GaussPoint *gp)

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