OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
tr1darcy.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 tr1darcy_h_
36 #define tr1darcy_h_
37 
38 #include "transportelement.h"
40 
41 #define _IFT_Tr1Darcy_Name "tr1darcy"
42 
43 namespace oofem {
44 class FEI2dTrLin;
45 
52 {
53 protected:
55 
56 public:
57  Tr1Darcy(int, Domain *);
58  virtual ~Tr1Darcy();
60 
61  virtual FEInterpolation *giveInterpolation() const;
62 
63  virtual MaterialMode giveMaterialMode() { return _2dHeat; }
64 
65  virtual void giveDofManDofIDMask(int inode, IntArray &answer) const;
66  virtual void giveCharacteristicVector(FloatArray &answer, CharType mtrx, ValueModeType mode, TimeStep *tStep);
67  virtual void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep);
68  virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep);
69 
70  virtual void computeGaussPoints();
71  virtual int computeNumberOfDofs();
72 
73  virtual void computeExternalForcesVector(FloatArray &answer, TimeStep *tStep, ValueModeType mode);
74  void computeEdgeBCSubVectorAt(FloatArray &answer, Load *load, int iEdge, TimeStep *tStep, ValueModeType mode, int indx);
75  virtual void computeInternalForcesVector(FloatArray &answer, TimeStep *tStep);
76 
77  virtual double computeEdgeVolumeAround(GaussPoint *gp, int iEdge);
78  virtual double giveThicknessAt(const FloatArray &gcoords);
79 
80  // From NodalAveragingRecoveryModelInterface
81  virtual const char *giveInputRecordName() const { return _IFT_Tr1Darcy_Name; }
82  virtual const char *giveClassName() const { return "Tr1Darcy"; }
84  virtual Interface *giveInterface(InterfaceType interface);
85 };
86 }
87 
88 #endif // tr1darcy_h_
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
Definition: tr1darcy.C:277
void computeEdgeBCSubVectorAt(FloatArray &answer, Load *load, int iEdge, TimeStep *tStep, ValueModeType mode, int indx)
Definition: tr1darcy.C:180
Class and object Domain.
Definition: domain.h:115
virtual void computeExternalForcesVector(FloatArray &answer, TimeStep *tStep, ValueModeType mode)
Definition: tr1darcy.C:148
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
virtual const char * giveClassName() const
Definition: tr1darcy.h:82
virtual double giveThicknessAt(const FloatArray &gcoords)
Gives the thickness at some global coordinate.
Definition: tr1darcy.C:226
virtual const char * giveInputRecordName() const
Definition: tr1darcy.h:81
MaterialMode
Type representing material mode of integration point.
Definition: materialmode.h:89
Class implementing an array of integers.
Definition: intarray.h:61
MatResponseMode
Describes the character of characteristic material matrix.
Element class for the DarcyFlow engineering model.
Definition: tr1darcy.h:51
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: tr1darcy.C:62
Class representing a general abstraction for finite element interpolation class.
Definition: feinterpol.h:132
Class representing a 2d triangular linear interpolation based on area coordinates.
Definition: fei2dtrlin.h:44
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep)
Definition: tr1darcy.C:83
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
Definition: tr1darcy.h:63
virtual double computeEdgeVolumeAround(GaussPoint *gp, int iEdge)
Computes the length around a integration point on a edge.
Definition: tr1darcy.C:232
virtual FEInterpolation * giveInterpolation() const
Definition: tr1darcy.C:69
This abstract class represent a general base element class for transport problems.
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
Definition: tr1darcy.C:74
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
Definition: tr1darcy.C:251
virtual ~Tr1Darcy()
Definition: tr1darcy.C:59
virtual Interface * giveInterface(InterfaceType interface)
Interface requesting service.
Definition: tr1darcy.C:267
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep)
Computes characteristic matrix of receiver of requested type in given time step.
Definition: tr1darcy.C:239
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
CharType
Definition: chartype.h:87
Class representing the general Input Record.
Definition: inputrecord.h:101
Class Interface.
Definition: interface.h:82
virtual void computeInternalForcesVector(FloatArray &answer, TimeStep *tStep)
Definition: tr1darcy.C:119
InterfaceType
Enumerative type, used to identify interface type.
Definition: interfacetype.h:43
Load is base abstract class for all loads.
Definition: load.h:61
the oofem namespace is to define a context or scope in which all oofem names are defined.
static FEI2dTrLin interpolation_lin
Definition: tr1darcy.h:54
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
Definition: tr1darcy.C:257
Class representing integration point in finite element program.
Definition: gausspoint.h:93
#define _IFT_Tr1Darcy_Name
Definition: tr1darcy.h:41
Class representing solution step.
Definition: timestep.h:80
virtual void giveCharacteristicVector(FloatArray &answer, CharType mtrx, ValueModeType mode, TimeStep *tStep)
Computes characteristic vector of receiver of requested type in given time step.
Definition: tr1darcy.C:108
Tr1Darcy(int, Domain *)
Definition: tr1darcy.C:54

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