OOFEM 3.0
Loading...
Searching...
No Matches
line1_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 "fei3dlinelin.h"
37#include "crosssection.h"
38#include "gausspoint.h"
40#include "floatmatrix.h"
41#include "floatarray.h"
42#include "intarray.h"
43#include "mathfem.h"
44#include "classfactory.h"
45
46
47namespace oofem {
51
52FEI3dLineLin Line1_ht :: interp;
53
54Line1_ht :: Line1_ht(int n, Domain *aDomain) :
56{
59}
60
61Line1_hmt :: Line1_hmt(int n, Domain *aDomain) : Line1_ht(n, aDomain)
62{
64}
65
66Line1_mt :: Line1_mt(int n, Domain *aDomain) : Line1_ht(n, aDomain)
67{
69}
70
71
73Line1_ht :: giveInterpolation() const { return & this->interp; }
74
75void
76Line1_ht :: computeGaussPoints()
77{
78 if ( integrationRulesArray.size() == 0 ) {
79 integrationRulesArray.resize( 1 );
80 integrationRulesArray [ 0 ] = std::make_unique<GaussIntegrationRule>(1, this, 1, 1);
81 this->giveCrossSection()->setupIntegrationPoints(* integrationRulesArray [ 0 ], numberOfGaussPoints, this);
82 }
83}
84
85
86void
87Line1_ht :: initializeFrom(InputRecord &ir, int priority)
88{
89 TransportElement :: initializeFrom(ir, priority);
90}
91
92
93double
94Line1_ht :: computeVolumeAround(GaussPoint *gp)
95{
96 double determinant = fabs( this->interp.giveTransformationJacobian( gp->giveNaturalCoordinates(), FEIElementGeometryWrapper(this) ) );
97 double weight = gp->giveWeight();
98 return determinant * weight * this->giveCrossSection()->give(CS_Area, gp);
99}
100
101
102Interface *
103Line1_ht :: giveInterface(InterfaceType interface)
104{
105 if ( interface == SpatialLocalizerInterfaceType ) {
106 return static_cast< SpatialLocalizerInterface * >(this);
107 } else if ( interface == EIPrimaryFieldInterfaceType ) {
108 return static_cast< EIPrimaryFieldInterface * >(this);
109 } else if ( interface == ZZNodalRecoveryModelInterfaceType ) {
110 return static_cast< ZZNodalRecoveryModelInterface * >(this);
111 }
112
113 return nullptr;
114}
115
116} // end namespace oofem
#define REGISTER_Element(class)
int numberOfDofMans
Number of dofmanagers.
Definition element.h:136
std::vector< std ::unique_ptr< IntegrationRule > > integrationRulesArray
Definition element.h:157
int numberOfGaussPoints
Definition element.h:175
CrossSection * giveCrossSection()
Definition element.C:534
const FloatArray & giveNaturalCoordinates() const
Returns coordinate array of receiver.
Definition gausspoint.h:138
double giveWeight()
Returns integration weight of receiver.
Definition gausspoint.h:180
static FEI3dLineLin interp
Definition line1_ht.h:55
Line1_ht(int n, Domain *d)
Definition line1_ht.C:54
SpatialLocalizerInterface(Element *element)
TransportElement(int n, Domain *d, ElementMode em=HeatTransferEM)
ZZNodalRecoveryModelInterface(Element *element)
Constructor.
@ CS_Area
Area.
@ ZZNodalRecoveryModelInterfaceType
@ EIPrimaryFieldInterfaceType
@ SpatialLocalizerInterfaceType

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