OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
tr2shell7xfem.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 Tr2Shell7XFEM_h
36 #define Tr2Shell7XFEM_h
37 
38 #include "../sm/Elements/Shells/shell7basexfem.h"
39 #include "../sm/CrossSections/layeredcrosssection.h"
40 #include "../sm/Elements/nlstructuralelement.h"
42 
43 #define _IFT_Tr2Shell7XFEM_Name "tr2shell7xfem"
44 
45 namespace oofem {
46 class FEI3dTrQuad;
47 class BoundaryLoad;
48 
58 {
59 protected:
64 
65  virtual const IntArray &giveOrderingDofTypes() const;
66  virtual const IntArray &giveOrderingNodes() const;
67  virtual const IntArray &giveOrderingEdgeNodes() const;
68  virtual void giveSurfaceDofMapping(IntArray &answer, int iSurf) const;
69  virtual void giveEdgeDofMapping(IntArray &answer, int iEdge) const;
70 
71 
72  virtual double computeVolumeAroundLayer(GaussPoint *mastergp, int layer);
73  virtual double computeAreaAround(GaussPoint *gp, double xi);
74 
75  virtual void computeGaussPoints();
77  virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
78  { OOFEM_ERROR("calling of this function is not allowed"); }
80  { OOFEM_ERROR("calling of this funciton is not allowed"); }
81 
82  virtual void giveLocalNodeCoords(FloatArray &nodeLocalXiCoords, FloatArray &nodeLocalEtaCoords);
83 
84  virtual FEInterpolation *giveInterpolation() const;
85  virtual double computeArea();
86  // VTK
87  void vtkGiveUpdatedFictiousNodeCoords(FloatArray nodeCoords [ 15 ], int layer, TimeStep *tStep);
88 
89 public:
90  Tr2Shell7XFEM(int n, Domain * d);
91  virtual ~Tr2Shell7XFEM() { } // destructor -> declaring as virtual will make each subclass call their respective destr.
92  // definition & identification
93  virtual int giveNumberOfEdgeDofs() { return 21; }
94  virtual int giveNumberOfEdgeDofManagers() { return 3; }
95  virtual const char *giveInputRecordName() const { return _IFT_Tr2Shell7XFEM_Name; }
96  virtual const char *giveClassName() const { return "Tr2Shell7XFEM"; }
97 
98  virtual Element_Geometry_Type giveGeometryType() const { return EGT_Composite; }
99  virtual integrationDomain giveIntegrationDomain() const { return _Triangle; } // write new wedge-like type 'layeredWedge'
100 };
101 } // end namespace oofem
102 #endif
virtual const IntArray & giveOrderingNodes() const
Definition: tr2shell7xfem.C:81
integrationDomain
Used by integrator class to supply integration points for proper domain to be integrated (Area...
virtual int giveNumberOfEdgeDofs()
Definition: tr2shell7xfem.h:93
virtual Element_Geometry_Type giveGeometryType() const
Returns the element geometry type.
Definition: tr2shell7xfem.h:98
Class and object Domain.
Definition: domain.h:115
Element_Geometry_Type
Enumerative type used to classify element geometry Possible values are: EGT_point - point in space EG...
#define _IFT_Tr2Shell7XFEM_Name
Definition: tr2shell7xfem.h:43
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
Tr2Shell7XFEM(int n, Domain *d)
Definition: tr2shell7xfem.C:69
virtual int giveNumberOfEdgeDofManagers()
Definition: tr2shell7xfem.h:94
Class implementing an array of integers.
Definition: intarray.h:61
MatResponseMode
Describes the character of characteristic material matrix.
virtual void giveLocalNodeCoords(FloatArray &nodeLocalXiCoords, FloatArray &nodeLocalEtaCoords)
Definition: tr2shell7xfem.C:93
virtual const IntArray & giveOrderingEdgeNodes() const
Definition: tr2shell7xfem.C:86
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.
Definition: tr2shell7xfem.h:79
Class representing a general abstraction for finite element interpolation class.
Definition: feinterpol.h:132
Second order triangular interpolation in 3D space (6 nodes).
Definition: fei3dtrquad.h:47
virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Computes the stress vector of receiver at given integration point, at time step tStep.
Definition: tr2shell7xfem.h:77
bool updateIntegrationRuleMultiCrack()
virtual const char * giveInputRecordName() const
Definition: tr2shell7xfem.h:95
virtual ~Tr2Shell7XFEM()
Definition: tr2shell7xfem.h:91
static IntArray orderingNodes
Definition: tr2shell7xfem.h:62
#define OOFEM_ERROR(...)
Definition: error.h:61
virtual integrationDomain giveIntegrationDomain() const
Returns integration domain for receiver, used to initialize integration point over receiver volume...
Definition: tr2shell7xfem.h:99
virtual double computeArea()
Computes the area (zero for all but 2d geometries).
virtual FEInterpolation * giveInterpolation() const
Class representing vector of real numbers.
Definition: floatarray.h:82
void vtkGiveUpdatedFictiousNodeCoords(FloatArray nodeCoords[15], int layer, TimeStep *tStep)
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
static IntArray orderingEdgeNodes
Definition: tr2shell7xfem.h:63
virtual double computeAreaAround(GaussPoint *gp, double xi)
static IntArray orderingDofTypes
Definition: tr2shell7xfem.h:61
static FEI3dTrQuad interpolation
Definition: tr2shell7xfem.h:60
virtual const IntArray & giveOrderingDofTypes() const
Definition: tr2shell7xfem.C:75
virtual double computeVolumeAroundLayer(GaussPoint *mastergp, int layer)
This class represent a 7 parameter shell element.
Definition: tr2shell7xfem.h:57
virtual const char * giveClassName() const
Definition: tr2shell7xfem.h:96
the oofem namespace is to define a context or scope in which all oofem names are defined.
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
virtual void giveEdgeDofMapping(IntArray &answer, int iEdge) const
Assembles edge dof mapping mask, which provides mapping between edge local DOFs and "global" element ...
virtual void giveSurfaceDofMapping(IntArray &answer, int iSurf) const
Assembles surface dof mapping mask, which provides mapping between surface local DOFs and "global" el...

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