OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
trplanestressrotallman3d.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 trplanestressrotallman3d_h
36 #define trplanestressrotallman3d_h
37 
38 #include "../sm/Elements/PlaneStress/trplanestressrotallman.h"
39 
40 #define _IFT_TrPlanestressRotAllman3d_Name "trplanestressrotallman3d"
41 
42 namespace oofem {
43 #ifndef __CHARTENSOR
44  #define __CHARTENSOR
45 enum CharTensor {
50 
55 };
56 #endif
57 
66 {
67 protected:
73 
74 public:
75  TrPlanestressRotAllman3d(int n, Domain * d);
77  delete GtoLRotationMatrix;
78  }
79 
80 protected:
81  void computeLocalNodalCoordinates(std::vector< FloatArray > &lxy);
82 
83  virtual double computeVolumeAround(GaussPoint *gp);
84  void giveCharacteristicTensor(FloatMatrix &answer, CharTensor type, GaussPoint *gp, TimeStep *tStep);
85 
86  virtual int computeLoadGToLRotationMtrx(FloatMatrix &answer);
87  virtual void computeBodyLoadVectorAt(FloatArray &answer, Load *forLoad, TimeStep *tStep, ValueModeType mode);
88 
89 public:
90  // definition & identification
91  virtual const char *giveInputRecordName() const { return _IFT_TrPlanestressRotAllman3d_Name; }
92  virtual const char *giveClassName() const { return "TrPlaneStressRotAllman3d"; }
93 
94  virtual int computeNumberOfDofs() { return 9; }
95  virtual int computeNumberOfGlobalDofs() { return 18; }
96  virtual void giveDofManDofIDMask(int inode, IntArray &) const;
97  virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep);
99  virtual bool computeGtoLRotationMatrix(FloatMatrix &answer);
101  { return ( ( ext == Element_SurfaceLoadSupport ) ? 1 : 0 ); }
102 
103  virtual void printOutputAt(FILE *file, TimeStep *tStep);
104 };
105 } // end namespace oofem
106 #endif // trplanestressrotallman3d_h
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
Class and object Domain.
Definition: domain.h:115
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
void giveCharacteristicTensor(FloatMatrix &answer, CharTensor type, GaussPoint *gp, TimeStep *tStep)
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
virtual int computeNumberOfGlobalDofs()
Computes the total number of element&#39;s global dofs.
virtual void computeBodyLoadVectorAt(FloatArray &answer, Load *forLoad, TimeStep *tStep, ValueModeType mode)
Computes the load vector due to body load acting on receiver, at given time step. ...
virtual const char * giveInputRecordName() const
#define _IFT_TrPlanestressRotAllman3d_Name
FloatMatrix * GtoLRotationMatrix
Transformation Matrix form GtoL(3,3) is stored at the element level for computation efficiency...
Class implementing an array of integers.
Definition: intarray.h:61
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
Element extension for surface loads.
virtual int computeLoadGToLRotationMtrx(FloatMatrix &answer)
Returns transformation matrix from global coordinate system to local element coordinate system for el...
ElementExtension
Type representing element extension.
This class represent triangular plane stress element with rotational degree of freedom around normal ...
const FloatMatrix * computeGtoLRotationMatrix()
Class representing vector of real numbers.
Definition: floatarray.h:82
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element&#39;s local DOFs.
virtual void giveDofManDofIDMask(int inode, IntArray &) const
Returns dofmanager dof mask for node.
void computeLocalNodalCoordinates(std::vector< FloatArray > &lxy)
Load is base abstract class for all loads.
Definition: load.h:61
virtual int testElementExtension(ElementExtension ext)
Tests if the element implements required extension.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual const char * giveClassName() const
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
Class implements an triangular three-node plane- stress elasticity finite element with independentver...

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