OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
fei2dquadconst.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 - 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 #ifndef fei2dquadconst_h
36 #define fei2dquadconst_h
37 
38 #include "feinterpol2d.h"
39 
40 namespace oofem {
44 class OOFEM_EXPORT FEI2dQuadConst : public FEInterpolation2d
45 {
46 public:
47  FEI2dQuadConst(int ind1, int ind2) : FEInterpolation2d(0, ind1, ind2) { }
48 
49  virtual integrationDomain giveIntegrationDomain() const { return _Square; }
50  virtual Element_Geometry_Type giveGeometryType() const { return EGT_quad_1; }
51  virtual integrationDomain giveBoundaryIntegrationDomain(int ib) const { return _Line; }
52  virtual integrationDomain giveBoundarySurfaceIntegrationDomain(int isurf) const { return _Square; }
53  virtual integrationDomain giveBoundaryEdgeIntegrationDomain(int iedge) const { return _Line; }
54 
55  // Bulk
56  virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo);
57  virtual double evaldNdx(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo);
58  virtual void local2global(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo);
59 
60  virtual bool inside(const FloatArray &lcoords) const;
61 
62  // Edge
63  virtual void computeLocalEdgeMapping(IntArray &edgeNodes, int iedge);
64  virtual void edgeEvalN(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo);
65  virtual double edgeEvalNormal(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo);
66  virtual void edgeEvaldNds(FloatArray &answer, int iedge,
67  const FloatArray &lcoords, const FEICellGeometry &cellgeo);
68  virtual void edgeLocal2global(FloatArray &answer, int iedge,
69  const FloatArray &lcoords, const FEICellGeometry &cellgeo);
70 
71  virtual IntegrationRule *giveIntegrationRule(int order);
72 
73  virtual int giveNumberOfNodes() const { return 4; }
74 
75 protected:
81  double edgeComputeLength(IntArray &edgeNodes, const FEICellGeometry &cellgeo);
82 };
83 } // end namespace oofem
84 #endif // fei2dquadlin_h
virtual int giveNumberOfNodes() const
Returns the number of geometric nodes of the receiver.
integrationDomain
Used by integrator class to supply integration points for proper domain to be integrated (Area...
Class representing a 2d quadrilateral with constant interpolation.
Element_Geometry_Type
Enumerative type used to classify element geometry Possible values are: EGT_point - point in space EG...
virtual Element_Geometry_Type giveGeometryType() const
Returns the geometry type fo the interpolator.
Class representing a general abstraction for surface finite element interpolation class...
Definition: feinterpol2d.h:45
Class representing a general abstraction for cell geometry.
Definition: feinterpol.h:62
virtual integrationDomain giveBoundaryEdgeIntegrationDomain(int iedge) const
Returns boundary integration domain.
Class implementing an array of integers.
Definition: intarray.h:61
Abstract base class representing integration rule.
virtual integrationDomain giveIntegrationDomain() const
Returns the integration domain of the interpolator.
Class representing vector of real numbers.
Definition: floatarray.h:82
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
FEI2dQuadConst(int ind1, int ind2)
virtual integrationDomain giveBoundarySurfaceIntegrationDomain(int isurf) const
Returns boundary integration domain.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual integrationDomain giveBoundaryIntegrationDomain(int ib) const
Returns boundary integration domain.

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