OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
problemsequence.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 problemsequence_h
36
#define problemsequence_h
37
38
#include "
engngm.h
"
39
#include "
inputrecord.h
"
40
42
43
#define _IFT_ProblemSequence_Name "problemsequence"
44
#define _IFT_ProblemSequence_engineeringModels "engngms"
45
46
47
namespace
oofem
{
48
class
Function;
49
58
class
OOFEM_EXPORT
ProblemSequence
:
public
EngngModel
59
{
60
protected
:
62
std :: vector< std :: unique_ptr< EngngModel > >
emodelList
;
63
std :: vector< std :: string >
inputStreamNames
;
64
66
int
activeModel
;
67
68
public
:
70
ProblemSequence
(
int
i,
EngngModel
* _master = NULL);
72
virtual
~
ProblemSequence
();
73
74
ProblemSequence
(
const
ProblemSequence
&) =
delete
;
75
ProblemSequence
& operator=(
const
ProblemSequence
&) =
delete
;
76
77
EngngModel
&
giveActiveModel
() {
return
*emodelList[activeModel]; }
78
79
virtual
void
solveYourself();
80
81
//virtual void initializeYourself(TimeStep *tStep);
82
virtual
int
instanciateYourself(
DataReader
&dr,
InputRecord
*ir,
const
char
*outFileName,
const
char
*desc);
83
virtual
IRResultType
initializeFrom(
InputRecord
*ir);
84
virtual
int
checkProblemConsistency();
85
86
virtual
contextIOResultType
saveContext(
DataStream
&stream,
ContextMode
mode);
87
virtual
contextIOResultType
restoreContext(
DataStream
&stream,
ContextMode
mode);
88
89
// identification
90
virtual
const
char
*
giveClassName
()
const
{
return
"ProblemSequence"
; }
91
virtual
const
char
*
giveInputRecordName
()
const
{
return
_IFT_ProblemSequence_Name
; }
92
93
#ifdef __OOFEG
94
virtual
void
drawYourself(
oofegGraphicContext
&
gc
);
95
virtual
void
drawElements(
oofegGraphicContext
&gc);
96
virtual
void
drawNodes(
oofegGraphicContext
&gc);
97
virtual
void
showSparseMtrxStructure
(
int
type,
oofegGraphicContext
&gc,
TimeStep
*tStep) { }
98
#endif
99
100
virtual
EngngModel
*
giveSlaveProblem
(
int
i) {
return
NULL; }
101
virtual
int
giveNumberOfSlaveProblems
() {
return
0; }
102
103
virtual
int
instanciateDefaultMetaStep
(
InputRecord
*ir) {
return
1; }
104
};
105
}
// end namespace oofem
106
#endif // problemsequence_h
engngm.h
oofem::ProblemSequence::giveNumberOfSlaveProblems
virtual int giveNumberOfSlaveProblems()
Returns number of slave problems.
Definition:
problemsequence.h:101
oofem::ProblemSequence::activeModel
int activeModel
Keeps track of the active model in the analysis sequence.
Definition:
problemsequence.h:66
oofem::DataStream
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition:
datastream.h:54
oofem::ProblemSequence::giveInputRecordName
virtual const char * giveInputRecordName() const
Definition:
problemsequence.h:91
oofem::ProblemSequence::inputStreamNames
std::vector< std::string > inputStreamNames
Definition:
problemsequence.h:63
gc
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
oofem::DataReader
Class representing the abstraction for input data source.
Definition:
datareader.h:50
oofem::ProblemSequence::giveActiveModel
EngngModel & giveActiveModel()
Definition:
problemsequence.h:77
oofem::ProblemSequence::giveClassName
virtual const char * giveClassName() const
Returns class name of the receiver.
Definition:
problemsequence.h:90
oofem::ProblemSequence::giveSlaveProblem
virtual EngngModel * giveSlaveProblem(int i)
Returns i-th slave problem.
Definition:
problemsequence.h:100
oofem::ProblemSequence
Meta-engineering problem used to solve a sequence off different problems, all using the same domain...
Definition:
problemsequence.h:58
inputrecord.h
oofem::ProblemSequence::emodelList
std::vector< std::unique_ptr< EngngModel > > emodelList
List of engineering models to solve sequentially.
Definition:
problemsequence.h:62
oofem::IRResultType
IRResultType
Type defining the return values of InputRecord reading operations.
Definition:
irresulttype.h:47
_IFT_ProblemSequence_Name
#define _IFT_ProblemSequence_Name
Definition:
problemsequence.h:43
oofem::ProblemSequence::instanciateDefaultMetaStep
virtual int instanciateDefaultMetaStep(InputRecord *ir)
Instanciate default metastep, if nmsteps is zero.
Definition:
problemsequence.h:103
oofem::ProblemSequence::showSparseMtrxStructure
virtual void showSparseMtrxStructure(int type, oofegGraphicContext &gc, TimeStep *tStep)
Shows the sparse structure of required matrix, type == 1 stiffness.
Definition:
problemsequence.h:97
oofem::InputRecord
Class representing the general Input Record.
Definition:
inputrecord.h:101
oofem::ContextMode
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Definition:
contextmode.h:43
oofem::contextIOResultType
contextIOResultType
Definition:
contextioresulttype.h:39
oofem::EngngModel
Abstract base class representing the "problem" under consideration.
Definition:
engngm.h:181
oofem::oofegGraphicContext
Definition:
oofeggraphiccontext.h:126
oofem
the oofem namespace is to define a context or scope in which all oofem names are defined.
oofem::TimeStep
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:30 for OOFEM by
doxygen
1.8.11 written by
Dimitri van Heesch
, © 1997-2011