OOFEM
3.0
Loading...
Searching...
No Matches
src
sm
EngineeringModels
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 - 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 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
47
class
LastEquilibratedInternalForceAssembler
:
public
InternalForceAssembler
48
{
49
void
vectorFromElement
(
FloatArray
&vec,
Element
&element,
TimeStep
*tStep, ValueModeType mode)
const override
;
50
};
51
56
class
LinearizedDilationForceAssembler
:
public
VectorAssembler
57
{
58
public
:
59
void
vectorFromElement
(
FloatArray
&vec,
Element
&element,
TimeStep
*tStep, ValueModeType mode)
const override
;
60
};
61
66
class
InitialStressMatrixAssembler
:
public
MatrixAssembler
67
{
68
public
:
69
void
matrixFromElement
(
FloatMatrix
&mat,
Element
&element,
TimeStep
*tStep)
const override
;
70
};
71
76
class
LumpedInitialStressMatrixAssembler
:
public
MatrixAssembler
77
{
78
public
:
79
void
matrixFromElement
(
FloatMatrix
&mat,
Element
&element,
TimeStep
*tStep)
const override
;
80
};
81
86
class
StructuralEngngModel
:
public
EngngModel
87
{
88
protected
:
94
StateCounterType
internalVarUpdateStamp
;
95
97
FloatArray
internalForcesEBENorm
;
108
void
printReactionForces
(
TimeStep
*tStep,
int
id
, FILE *out);
109
117
virtual
void
computeExternalLoadReactionContribution
(
FloatArray
&reactions,
TimeStep
*tStep,
int
di);
118
126
void
updateInternalState
(
TimeStep
*tStep);
127
128
void
printOutputAt
(FILE *file,
TimeStep
*tStep)
override
;
129
130
public
:
132
StructuralEngngModel
(
int
i,
EngngModel
*
master
=
nullptr
);
134
virtual
~StructuralEngngModel
();
135
136
void
updateYourself
(
TimeStep
*tStep)
override
;
137
138
int
checkConsistency
()
override
;
139
150
void
computeReaction
(
FloatArray
&answer,
TimeStep
*tStep,
int
di);
151
152
void
terminate
(
TimeStep
*tStep)
override
;
153
165
void
buildReactionTable
(
IntArray
&restrDofMans,
IntArray
&restrDofs,
IntArray
&eqn,
TimeStep
*tStep,
int
di);
166
167
void
updateInternalRHS
(
FloatArray
&answer,
TimeStep
*tStep,
Domain
*d,
FloatArray
*eNorm)
override
;
168
169
#ifdef __OOFEG
173
void
showSparseMtrxStructure
(
int
type,
oofegGraphicContext
&
gc
,
TimeStep
*tStep)
override
;
174
#endif
175
};
176
}
// end namespace oofem
177
#endif
// structengngmodel_h
oofem::Domain
Definition
domain.h:121
oofem::Element
Definition
element.h:133
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::FloatArray
Definition
floatarray.h:92
oofem::FloatMatrix
Definition
floatmatrix.h:87
oofem::InitialStressMatrixAssembler
Definition
structengngmodel.h:67
oofem::InitialStressMatrixAssembler::matrixFromElement
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
Definition
structengngmodel.C:81
oofem::IntArray
Definition
intarray.h:63
oofem::InternalForceAssembler
Definition
assemblercallback.h:103
oofem::LastEquilibratedInternalForceAssembler
Definition
structengngmodel.h:48
oofem::LastEquilibratedInternalForceAssembler::vectorFromElement
void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const override
Definition
structengngmodel.C:54
oofem::LinearizedDilationForceAssembler
Definition
structengngmodel.h:57
oofem::LinearizedDilationForceAssembler::vectorFromElement
void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const override
Definition
structengngmodel.C:60
oofem::LumpedInitialStressMatrixAssembler
Definition
structengngmodel.h:77
oofem::LumpedInitialStressMatrixAssembler::matrixFromElement
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
Definition
structengngmodel.C:86
oofem::MatrixAssembler
Definition
assemblercallback.h:85
oofem::StructuralElement
Definition
structuralelement.h:96
oofem::StructuralEngngModel::computeExternalLoadReactionContribution
virtual void computeExternalLoadReactionContribution(FloatArray &reactions, TimeStep *tStep, int di)
Definition
structengngmodel.C:205
oofem::StructuralEngngModel::internalVarUpdateStamp
StateCounterType internalVarUpdateStamp
Definition
structengngmodel.h:94
oofem::StructuralEngngModel::showSparseMtrxStructure
void showSparseMtrxStructure(int type, oofegGraphicContext &gc, TimeStep *tStep) override
Definition
structengngmodel.C:320
oofem::StructuralEngngModel::checkConsistency
int checkConsistency() override
Definition
structengngmodel.C:244
oofem::StructuralEngngModel::internalForcesEBENorm
FloatArray internalForcesEBENorm
Norm of nodal internal forces evaluated on element by element basis (squared).
Definition
structengngmodel.h:97
oofem::StructuralEngngModel::buildReactionTable
void buildReactionTable(IntArray &restrDofMans, IntArray &restrDofs, IntArray &eqn, TimeStep *tStep, int di)
Definition
structengngmodel.C:144
oofem::StructuralEngngModel::updateInternalState
void updateInternalState(TimeStep *tStep)
Definition
structengngmodel.C:278
oofem::StructuralEngngModel::updateYourself
void updateYourself(TimeStep *tStep) override
Definition
structengngmodel.C:236
oofem::StructuralEngngModel::terminate
void terminate(TimeStep *tStep) override
Definition
structengngmodel.C:139
oofem::StructuralEngngModel::printReactionForces
void printReactionForces(TimeStep *tStep, int id, FILE *out)
Definition
structengngmodel.C:103
oofem::StructuralEngngModel::computeReaction
void computeReaction(FloatArray &answer, TimeStep *tStep, int di)
Definition
structengngmodel.C:183
oofem::StructuralEngngModel::StructuralEngngModel
StructuralEngngModel(int i, EngngModel *master=nullptr)
Creates new StructuralEngngModel with number i, associated to domain d.
Definition
structengngmodel.C:93
oofem::StructuralEngngModel::printOutputAt
void printOutputAt(FILE *file, TimeStep *tStep) override
Definition
structengngmodel.C:266
oofem::StructuralEngngModel::updateInternalRHS
void updateInternalRHS(FloatArray &answer, TimeStep *tStep, Domain *d, FloatArray *eNorm) override
Definition
structengngmodel.C:215
oofem::StructuralEngngModel::~StructuralEngngModel
virtual ~StructuralEngngModel()
Destructor.
Definition
structengngmodel.C:98
oofem::TimeStep
Definition
timestep.h:82
oofem::VectorAssembler
Definition
assemblercallback.h:65
oofem::oofegGraphicContext
Definition
oofeggraphiccontext.h:133
engngm.h
floatarray.h
oofem
Definition
additivemanufacturingproblem.C:83
oofem::StateCounterType
long StateCounterType
StateCounterType type used to indicate solution state.
Definition
statecountertype.h:40
gc
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
statecountertype.h
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