OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
structengngmodel.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 structengngmodel_h
36 #define structengngmodel_h
37 
38 #include "engngm.h"
39 #include "statecountertype.h"
40 #include "floatarray.h"
41 
42 namespace oofem {
43 class StructuralElement;
44 
48 {
49  virtual void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const;
50 };
51 
57 {
58 public:
59  virtual void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const;
60 };
61 
67 {
68 public:
69  virtual void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const;
70 };
71 
72 
78 {
79 protected:
86 
99  void printReactionForces(TimeStep *tStep, int id, FILE *out);
100 
108  virtual void computeExternalLoadReactionContribution(FloatArray &reactions, TimeStep *tStep, int di);
116  virtual void giveInternalForces(FloatArray &answer, bool normFlag, int di, TimeStep *tStep);
117 
125  void updateInternalState(TimeStep *tStep);
126 
127  virtual void printOutputAt(FILE *file, TimeStep *tStep);
128 
129 public:
131  StructuralEngngModel(int i, EngngModel * _master = NULL);
133  virtual ~StructuralEngngModel();
134 
135  virtual void updateYourself(TimeStep *tStep);
136 
137  virtual int checkConsistency();
138 
149  void computeReaction(FloatArray &answer, TimeStep *tStep, int di);
150 
155  virtual void terminate(TimeStep *tStep);
156 
168  void buildReactionTable(IntArray &restrDofMans, IntArray &restrDofs, IntArray &eqn, TimeStep *tStep, int di);
169 
170 #ifdef __OOFEG
171 
174  virtual void showSparseMtrxStructure(int type, oofegGraphicContext &gc, TimeStep *tStep);
175 #endif
176 };
177 } // end namespace oofem
178 #endif // structengngmodel_h
virtual void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const
Implementation for assembling internal forces vectors in standard monolithic, nonlinear FE-problems...
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
long StateCounterType
StateCounterType type used to indicate solution state.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
Abstract base class for all finite elements.
Definition: element.h:145
StateCounterType internalVarUpdateStamp
Contains last time stamp of internal variable update.
Class implementing an array of integers.
Definition: intarray.h:61
Callback class for assembling specific types of vectors.
Callback class for assembling specific types of matrices.
Class representing vector of real numbers.
Definition: floatarray.h:82
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
This class implements extension of EngngModel for structural models.
FloatArray internalForcesEBENorm
Norm of nodal internal forces evaluated on element by element basis (squared)
Callback class for assembling initial stress matrices.
Abstract base class representing the "problem" under consideration.
Definition: engngm.h:181
the oofem namespace is to define a context or scope in which all oofem names are defined.
Assembles the internal forces, without updating the strain.
Class representing solution step.
Definition: timestep.h:80
Callback class for assembling linearized thermal "loads", useful for computing initial guesses...

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