OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
linearstatic.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 linearstatic_h
36 #define linearstatic_h
37 
38 #include "../sm/EngineeringModels/structengngmodel.h"
39 #include "sparselinsystemnm.h"
40 #include "sparsemtrxtype.h"
41 #include "unknownnumberingscheme.h"
42 
43 #define _IFT_LinearStatic_Name "linearstatic"
44 
45 namespace oofem {
46 class SparseMtrx;
47 
64 {
65 protected:
66  std :: unique_ptr< SparseMtrx > stiffnessMatrix;
69 
73  std :: unique_ptr< SparseLinearSystemNM > nMethod;
74 
75  int initFlag;
77 
78 public:
79  LinearStatic(int i, EngngModel * _master = NULL);
80  virtual ~LinearStatic();
81 
82  virtual void solveYourself();
83  virtual void solveYourselfAt(TimeStep *tStep);
84 
85  virtual double giveUnknownComponent(ValueModeType type, TimeStep *tStep, Domain *d, Dof *dof);
88 
89  virtual void updateDomainLinks();
90 
91  virtual TimeStep *giveNextStep();
93 
95 
96  // EModelDefaultEquationNumbering giveEquationNumbering() {return EModelDefaultEquationNumbering(); }
98 
99  // identification
100  virtual const char *giveInputRecordName() const { return _IFT_LinearStatic_Name; }
101  virtual const char *giveClassName() const { return "LinearStatic"; }
102  virtual fMode giveFormulation() { return TL; }
103 
104  virtual int estimateMaxPackSize(IntArray &commMap, DataStream &buff, int packUnpackType);
105 };
106 } // end namespace oofem
107 #endif // linearstatic_h
LinSystSolverType
The values of this type should be related not to specific solvers, but more to specific packages that...
LinSystSolverType solverType
Definition: linearstatic.h:70
The representation of EngngModel default unknown numbering.
virtual TimeStep * giveNextStep()
Returns next time step (next to current step) of receiver.
Definition: linearstatic.C:158
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description in input reader.
Definition: linearstatic.C:94
virtual double giveUnknownComponent(ValueModeType type, TimeStep *tStep, Domain *d, Dof *dof)
Returns requested unknown.
Definition: linearstatic.C:125
#define _IFT_LinearStatic_Name
Definition: linearstatic.h:43
Class and object Domain.
Definition: domain.h:115
Class representing meta step.
Definition: metastep.h:62
Total Lagrange.
Definition: fmode.h:44
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
virtual void solveYourselfAt(TimeStep *tStep)
Solves problem for given time step.
Definition: linearstatic.C:189
virtual ~LinearStatic()
Definition: linearstatic.C:69
This base class is an abstraction for numerical algorithm.
Definition: nummet.h:80
LinearStatic(int i, EngngModel *_master=NULL)
Definition: linearstatic.C:60
Class implementing an array of integers.
Definition: intarray.h:61
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode)
Stores the state of model to output stream.
Definition: linearstatic.C:267
FloatArray loadVector
Definition: linearstatic.h:67
std::unique_ptr< SparseLinearSystemNM > nMethod
Numerical method used to solve the problem.
Definition: linearstatic.h:73
SparseMtrxType
Enumerative type used to identify the sparse matrix type.
Abstract base class allowing to control the way, how equations are assigned to individual DOFs...
virtual void solveYourself()
Starts solution process.
Definition: linearstatic.C:172
SparseMtrxType sparseMtrxType
Definition: linearstatic.h:71
virtual const char * giveClassName() const
Returns class name of the receiver.
Definition: linearstatic.h:101
virtual void updateDomainLinks()
Updates domain links after the domains of receiver have changed.
Definition: linearstatic.C:300
virtual const char * giveInputRecordName() const
Definition: linearstatic.h:100
Class representing vector of real numbers.
Definition: floatarray.h:82
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
std::unique_ptr< SparseMtrx > stiffnessMatrix
Definition: linearstatic.h:66
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode)
Restores the state of model from output stream.
Definition: linearstatic.C:283
Class representing the general Input Record.
Definition: inputrecord.h:101
fMode
Type representing the type of formulation (total or updated) of non-linear computation.
Definition: fmode.h:42
EModelDefaultEquationNumbering * equationNumbering
Definition: linearstatic.h:76
FloatArray displacementVector
Definition: linearstatic.h:68
This class implements linear static engineering problem.
Definition: linearstatic.h:63
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Definition: contextmode.h:43
virtual int estimateMaxPackSize(IntArray &commMap, DataStream &buff, int packUnpackType)
Determines the space necessary for send/receive buffer.
Definition: linearstatic.C:308
This class implements extension of EngngModel for structural models.
virtual fMode giveFormulation()
Indicates type of non linear computation (total or updated formulation).
Definition: linearstatic.h:102
virtual NumericalMethod * giveNumericalMethod(MetaStep *mStep)
Returns reference to receiver&#39;s numerical method.
Definition: linearstatic.C:74
Abstract base class representing the "problem" under consideration.
Definition: engngm.h:181
virtual UnknownNumberingScheme * giveEquationNumbering()
Definition: linearstatic.h:97
the oofem namespace is to define a context or scope in which all oofem names are defined.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
Definition: dof.h:93
Class representing solution step.
Definition: timestep.h:80

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