OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
lumpedmasselement.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 lumpedmasselement_h
36 #define lumpedmasselement_h
37 
38 #include "../sm/Elements/structuralelement.h"
39 
41 
42 #define _IFT_LumpedMassElement_Name "lumpedmass"
43 #define _IFT_LumpedMassElement_components "components"
44 #define _IFT_LumpedMassElement_dofs "dofs"
45 
46 
47 namespace oofem {
56 {
57 protected:
62 
63 public:
64  LumpedMassElement(int n, Domain * d);
65  virtual ~LumpedMassElement() { }
66 
67  virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep);
68  virtual void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep)
69  { computeLumpedMassMatrix(answer, tStep); }
70  virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
71  { answer.clear(); }
72  virtual void computeInitialStressMatrix(FloatMatrix &answer, TimeStep *tStep)
73  { answer.clear(); }
74  virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord = 0)
75  { answer.clear(); }
76 
77  virtual int computeNumberOfDofs();
78  virtual void giveDofManDofIDMask(int inode, IntArray &answer) const;
79 
80  virtual void updateInternalState(TimeStep *tStep) { }
81  virtual void updateYourself(TimeStep *tStep) { }
82  virtual int checkConsistency();
83 
84 #ifdef __OOFEG
85  virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep);
87  virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep);
88 #endif
89 
90  // definition & identification
91  virtual const char *giveInputRecordName() const { return _IFT_LumpedMassElement_Name; }
92  virtual const char *giveClassName() const { return "LumpedMassElement"; }
94  virtual Element_Geometry_Type giveGeometryType() const { return EGT_point; }
95 
96 protected:
97  virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
98  { answer.clear(); }
100  { answer.clear(); }
101 
102  virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer,
103  int lowerIndx = 1, int upperIndx = ALL_STRAINS)
104  { answer.clear(); }
105  virtual void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer) { answer.clear(); }
106 };
107 } // end namespace oofem
108 #endif // lumpedmasselement_h
virtual const char * giveClassName() const
LumpedMassElement(int n, Domain *d)
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...
virtual void updateYourself(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
#define _IFT_LumpedMassElement_Name
virtual void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes mass matrix of receiver.
void clear()
Clears receiver (zero size).
Definition: floatarray.h:206
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
Returns dofmanager dof mask for node.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes lumped mass matrix of receiver.
Class implementing an array of integers.
Definition: intarray.h:61
MatResponseMode
Describes the character of characteristic material matrix.
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
Computes numerically stiffness matrix of receiver.
virtual void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer)
Computes interpolation matrix for element unknowns.
Abstract base class for all "structural" finite elements.
virtual int checkConsistency()
Performs consistency check.
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.
virtual void updateInternalState(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
This class implements a simple lumped mass element.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual const char * giveInputRecordName() const
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.
UnknownType
Type representing particular unknown (its physical meaning).
Definition: unknowntype.h:55
#define ALL_STRAINS
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual Element_Geometry_Type giveGeometryType() const
Returns the element geometry type.
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
virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int lowerIndx=1, int upperIndx=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
Class representing the general Input Record.
Definition: inputrecord.h:101
virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
Returns equivalent nodal forces vectors.
virtual void computeInitialStressMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes initial stress matrix for linear stability problem.
IntArray dofs
List of DOFs.
FloatArray components
Mass and moments of inertia corresponding to the specified DOFs.
the oofem namespace is to define a context or scope in which all oofem names are defined.
void clear()
Sets size of receiver to be an empty matrix. It will have zero rows and zero columns size...
Definition: floatmatrix.h:516
Class representing integration point in finite element program.
Definition: gausspoint.h:93
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
Class representing solution step.
Definition: timestep.h:80
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.

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