OOFEM
3.0
Loading...
Searching...
No Matches
src
core
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 - 2025 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"
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
=
nullptr
);
72
virtual
~ProblemSequence
();
73
74
ProblemSequence
(
const
ProblemSequence
&) =
delete
;
75
ProblemSequence
&
operator=
(
const
ProblemSequence
&) =
delete
;
76
77
EngngModel
&
giveActiveModel
() {
return
*
emodelList
[
activeModel
]; }
78
79
void
solveYourself()
override
;
80
81
//virtual void initializeYourself(TimeStep *tStep);
82
int
instanciateYourself(
DataReader
&dr,
InputRecord
&ir,
const
char
*outFileName,
const
char
*desc)
override
;
83
void
initializeFrom(
InputRecord
&ir)
override
;
84
int
checkProblemConsistency()
override
;
85
86
void
saveContext(
DataStream
&stream,
ContextMode
mode)
override
;
87
void
restoreContext(
DataStream
&stream,
ContextMode
mode)
override
;
88
89
// identification
90
const
char
*
giveClassName
()
const override
{
return
"ProblemSequence"
; }
91
const
char
*
giveInputRecordName
()
const
{
return
_IFT_ProblemSequence_Name
; }
92
93
#ifdef __OOFEG
94
void
drawYourself(
oofegGraphicContext
&
gc
)
override
;
95
void
drawElements(
oofegGraphicContext
&
gc
)
override
;
96
void
drawNodes(
oofegGraphicContext
&
gc
)
override
;
97
void
showSparseMtrxStructure
(
int
type,
oofegGraphicContext
&
gc
,
TimeStep
*tStep)
override
{ }
98
#endif
99
100
EngngModel
*
giveSlaveProblem
(
int
i)
override
{
return
NULL; }
101
int
giveNumberOfSlaveProblems
()
override
{
return
0; }
102
103
int
instanciateDefaultMetaStep
(
InputRecord
&ir)
override
{
return
1; }
104
};
105
}
// end namespace oofem
106
#endif
// problemsequence_h
oofem::DataReader
Definition
datareader.h:55
oofem::DataStream
Definition
datastream.h:55
oofem::EngngModel::EngngModel
EngngModel(int i, EngngModel *_master=NULL)
Definition
engngm.C:99
oofem::EngngModel::master
EngngModel * master
Master e-model; if defined receiver is in maintained (slave) mode.
Definition
engngm.h:274
oofem::InputRecord
Definition
inputrecord.h:98
oofem::ProblemSequence::showSparseMtrxStructure
void showSparseMtrxStructure(int type, oofegGraphicContext &gc, TimeStep *tStep) override
Definition
problemsequence.h:97
oofem::ProblemSequence::giveClassName
const char * giveClassName() const override
Returns class name of the receiver.
Definition
problemsequence.h:90
oofem::ProblemSequence::giveNumberOfSlaveProblems
int giveNumberOfSlaveProblems() override
Returns number of slave problems.
Definition
problemsequence.h:101
oofem::ProblemSequence::instanciateDefaultMetaStep
int instanciateDefaultMetaStep(InputRecord &ir) override
Instanciate default metastep, if nmsteps is zero.
Definition
problemsequence.h:103
oofem::ProblemSequence::emodelList
std ::vector< std ::unique_ptr< EngngModel > > emodelList
List of engineering models to solve sequentially.
Definition
problemsequence.h:62
oofem::ProblemSequence::operator=
ProblemSequence & operator=(const ProblemSequence &)=delete
oofem::ProblemSequence::giveSlaveProblem
EngngModel * giveSlaveProblem(int i) override
Returns i-th slave problem.
Definition
problemsequence.h:100
oofem::ProblemSequence::inputStreamNames
std ::vector< std ::string > inputStreamNames
Definition
problemsequence.h:63
oofem::ProblemSequence::giveActiveModel
EngngModel & giveActiveModel()
Definition
problemsequence.h:77
oofem::ProblemSequence::ProblemSequence
ProblemSequence(const ProblemSequence &)=delete
oofem::ProblemSequence::giveInputRecordName
const char * giveInputRecordName() const
Definition
problemsequence.h:91
oofem::ProblemSequence::activeModel
int activeModel
Keeps track of the active model in the analysis sequence.
Definition
problemsequence.h:66
oofem::ProblemSequence::ProblemSequence
ProblemSequence(int i, EngngModel *master=nullptr)
Constructor.
oofem::TimeStep
Definition
timestep.h:82
oofem::oofegGraphicContext
Definition
oofeggraphiccontext.h:133
engngm.h
inputrecord.h
oofem
Definition
additivemanufacturingproblem.C:83
oofem::ContextMode
long ContextMode
Definition
contextmode.h:43
gc
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
OOFEM_EXPORT
#define OOFEM_EXPORT
Definition
oofemcfg.h:7
_IFT_ProblemSequence_Name
#define _IFT_ProblemSequence_Name
Definition
problemsequence.h:43
This page is part of the
OOFEM-3.0
documentation. Copyright Copyright (C) 1994-2025 Borek Patzak
Bořek Patzák
Project e-mail:
oofem@fsv.cvut.cz
Generated at
for OOFEM by
doxygen
1.15.0 written by
Dimitri van Heesch
, © 1997-2011