OOFEM
3.0
Loading...
Searching...
No Matches
src
sm
Elements
LatticeElements
lattice2dboundary.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
36
#ifndef lattice2dboundary_h
37
#define lattice2dboundary_h
38
39
#include "
../sm/Elements/LatticeElements/lattice2d.h
"
40
42
43
#define _IFT_Lattice2dBoundary_Name "latticeboundary2d"
44
#define _IFT_Lattice2dBoundary_location "location"
46
47
#define TOL 1.e-8
48
49
namespace
oofem
{
50
class
ParamKey;
51
class
Lattice2dBoundary
:
public
Lattice2d
52
{
53
/*
54
* This class implements a 2-dimensional lattice element for the
55
* boundaries of periodic cells. The theory for this element is
56
* described in the "P. Grassl and M. Jirásek. "Meso-scale approach
57
* to modelling the fracture process zone of concrete subjected to
58
* uniaxial tension". International Journal of Solids and Structures.
59
* Volume 47, Issues 7-8, pp. 957-968, 2010"
60
* The unknowns of the control node are Exx, Eyy and Gxy.
61
* Exx = axial strain x-direction
62
* Eyy = axial strain y-direction
63
* Gxy = 2Exy (assuming symmetry)
64
*/
65
protected
:
66
int
location
;
67
static
ParamKey
IPK_Lattice2dBoundary_location
;
68
69
public
:
70
Lattice2dBoundary
(
int
,
Domain
*);
// constructor
71
~Lattice2dBoundary
();
// destructor
72
73
void
giveInternalForcesVector
(
FloatArray
&answer,
74
TimeStep
*,
int
useUpdatedGpRecord = 0)
override
;
75
76
const
IntArray
giveLocation
()
override
;
77
78
int
computeNumberOfDofs
()
override
{
return
9; }
79
void
giveDofManDofIDMask
(
int
inode,
IntArray
&)
const override
;
80
double
computeVolumeAround
(
GaussPoint
*)
override
;
81
82
//
83
// definition & identification
84
//
85
const
char
*
giveInputRecordName
()
const override
{
return
_IFT_Lattice2dBoundary_Name
; }
86
const
char
*
giveClassName
()
const override
{
return
"Lattice2dBoundary"
; }
87
void
initializeFrom
(
InputRecord
&ir,
int
priority)
override
;
88
void
postInitialize
()
override
;
89
90
void
saveContext
(
DataStream
&stream,
ContextMode
mode)
override
;
91
void
restoreContext
(
DataStream
&stream,
ContextMode
mode)
override
;
92
93
#ifdef __OOFEG
94
void
drawYourself
(
oofegGraphicContext
&context,
TimeStep
*tStep)
override
;
95
void
drawRawGeometry
(
oofegGraphicContext
&,
TimeStep
*tStep)
override
;
96
void
drawRawCrossSections
(
oofegGraphicContext
&,
TimeStep
*tStep);
97
void
drawDeformedGeometry
(
oofegGraphicContext
&,
TimeStep
*tStep,
UnknownType
)
override
;
98
void
drawSpecial
(
oofegGraphicContext
&
gc
,
TimeStep
*tStep)
override
;
99
void
giveCrossSectionCoordinates
(
FloatArray
&coords)
override
;
100
#endif
101
102
103
protected
:
104
void
computeBmatrixAt
(
GaussPoint
*,
FloatMatrix
&,
int
= 1,
int
=
ALL_STRAINS
)
override
;
105
bool
computeGtoLRotationMatrix
(
FloatMatrix
&)
override
;
106
107
void
computeStiffnessMatrix
(
FloatMatrix
&answer, MatResponseMode rMode,
TimeStep
*tStep)
override
;
108
109
void
computeStrainVector
(
FloatArray
&answer,
GaussPoint
*gp,
TimeStep
*stepN)
override
;
110
111
double
giveLength
()
override
;
112
double
givePitch
();
113
void
recalculateCoordinates
(
int
nodeNumber,
FloatArray
&coords)
override
;
114
void
giveSwitches
(
FloatArray
&answer);
115
};
116
}
// end namespace oofem
117
118
#endif
oofem::DataStream
Definition
datastream.h:55
oofem::Domain
Definition
domain.h:121
oofem::FloatArray
Definition
floatarray.h:92
oofem::FloatMatrix
Definition
floatmatrix.h:87
oofem::GaussPoint
Definition
gausspoint.h:95
oofem::InputRecord
Definition
inputrecord.h:98
oofem::IntArray
Definition
intarray.h:63
oofem::Lattice2dBoundary::giveInputRecordName
const char * giveInputRecordName() const override
Definition
lattice2dboundary.h:85
oofem::Lattice2dBoundary::computeStrainVector
void computeStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *stepN) override
Definition
lattice2dboundary.C:296
oofem::Lattice2dBoundary::giveCrossSectionCoordinates
void giveCrossSectionCoordinates(FloatArray &coords) override
Definition
lattice2dboundary.C:867
oofem::Lattice2dBoundary::givePitch
double givePitch()
Definition
lattice2dboundary.C:411
oofem::Lattice2dBoundary::giveSwitches
void giveSwitches(FloatArray &answer)
Definition
lattice2dboundary.C:532
oofem::Lattice2dBoundary::IPK_Lattice2dBoundary_location
static ParamKey IPK_Lattice2dBoundary_location
Definition
lattice2dboundary.h:67
oofem::Lattice2dBoundary::computeBmatrixAt
void computeBmatrixAt(GaussPoint *, FloatMatrix &, int=1, int=ALL_STRAINS) override
Definition
lattice2dboundary.C:79
oofem::Lattice2dBoundary::drawSpecial
void drawSpecial(oofegGraphicContext &gc, TimeStep *tStep) override
Definition
lattice2dboundary.C:790
oofem::Lattice2dBoundary::computeStiffnessMatrix
void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override
Definition
lattice2dboundary.C:199
oofem::Lattice2dBoundary::drawRawGeometry
void drawRawGeometry(oofegGraphicContext &, TimeStep *tStep) override
Definition
lattice2dboundary.C:680
oofem::Lattice2dBoundary::Lattice2dBoundary
Lattice2dBoundary(int, Domain *)
Definition
lattice2dboundary.C:63
oofem::Lattice2dBoundary::computeGtoLRotationMatrix
bool computeGtoLRotationMatrix(FloatMatrix &) override
Definition
lattice2dboundary.C:341
oofem::Lattice2dBoundary::initializeFrom
void initializeFrom(InputRecord &ir, int priority) override
Definition
lattice2dboundary.C:440
oofem::Lattice2dBoundary::saveContext
void saveContext(DataStream &stream, ContextMode mode) override
Definition
lattice2dboundary.C:563
oofem::Lattice2dBoundary::drawDeformedGeometry
void drawDeformedGeometry(oofegGraphicContext &, TimeStep *tStep, UnknownType) override
Definition
lattice2dboundary.C:719
oofem::Lattice2dBoundary::location
int location
Definition
lattice2dboundary.h:66
oofem::Lattice2dBoundary::restoreContext
void restoreContext(DataStream &stream, ContextMode mode) override
Definition
lattice2dboundary.C:577
oofem::Lattice2dBoundary::giveClassName
const char * giveClassName() const override
Definition
lattice2dboundary.h:86
oofem::Lattice2dBoundary::drawRawCrossSections
void drawRawCrossSections(oofegGraphicContext &, TimeStep *tStep)
Definition
lattice2dboundary.C:609
oofem::Lattice2dBoundary::recalculateCoordinates
void recalculateCoordinates(int nodeNumber, FloatArray &coords) override
Definition
lattice2dboundary.C:173
oofem::Lattice2dBoundary::giveLength
double giveLength() override
Definition
lattice2dboundary.C:386
oofem::Lattice2dBoundary::computeNumberOfDofs
int computeNumberOfDofs() override
Definition
lattice2dboundary.h:78
oofem::Lattice2dBoundary::giveInternalForcesVector
void giveInternalForcesVector(FloatArray &answer, TimeStep *, int useUpdatedGpRecord=0) override
Definition
lattice2dboundary.C:461
oofem::Lattice2dBoundary::giveLocation
const IntArray giveLocation() override
Definition
lattice2dboundary.C:144
oofem::Lattice2dBoundary::computeVolumeAround
double computeVolumeAround(GaussPoint *) override
Definition
lattice2dboundary.C:368
oofem::Lattice2dBoundary::postInitialize
void postInitialize() override
Performs post initialization steps.
Definition
lattice2dboundary.C:449
oofem::Lattice2dBoundary::drawYourself
void drawYourself(oofegGraphicContext &context, TimeStep *tStep) override
Definition
lattice2dboundary.C:592
oofem::Lattice2dBoundary::giveDofManDofIDMask
void giveDofManDofIDMask(int inode, IntArray &) const override
Definition
lattice2dboundary.C:376
oofem::Lattice2dBoundary::~Lattice2dBoundary
~Lattice2dBoundary()
Definition
lattice2dboundary.C:73
oofem::Lattice2d::Lattice2d
Lattice2d(int n, Domain *d)
Definition
lattice2d.C:69
oofem::ParamKey
Definition
paramkey.h:51
oofem::TimeStep
Definition
timestep.h:82
oofem::oofegGraphicContext
Definition
oofeggraphiccontext.h:133
lattice2d.h
_IFT_Lattice2dBoundary_Name
#define _IFT_Lattice2dBoundary_Name
Definition
lattice2dboundary.h:43
oofem
Definition
additivemanufacturingproblem.C:83
oofem::ContextMode
long ContextMode
Definition
contextmode.h:43
oofem::UnknownType
UnknownType
Definition
unknowntype.h:59
gc
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
ALL_STRAINS
#define ALL_STRAINS
Definition
structuralelement.h:48
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