OOFEM
3.0
Loading...
Searching...
No Matches
src
sm
Elements
Interfaces
cohsur3d.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 cohsur3d_h
36
#define cohsur3d_h
37
38
#include "
sm/Elements/structuralelement.h
"
39
41
42
#define _IFT_CohesiveSurface3d_Name "cohsur3d"
43
#define _IFT_CohSur3d_kx "kx"
44
#define _IFT_CohSur3d_ky "ky"
45
#define _IFT_CohSur3d_kz "kz"
46
#define _IFT_CohSur3d_area "area"
48
49
namespace
oofem
{
50
class
ParamKey;
57
class
CohesiveSurface3d
:
public
StructuralElement
58
{
59
protected
:
60
double
area
,
length
;
61
FloatArray
center
;
62
FloatMatrix
lcs
;
63
65
66
int
kx
,
ky
,
kz
;
67
double
kxa
,
kyb
,
kzc
;
69
70
static
ParamKey
IPK_CohesiveSurface3d_kx
;
71
static
ParamKey
IPK_CohesiveSurface3d_ky
;
72
static
ParamKey
IPK_CohesiveSurface3d_kz
;
73
static
ParamKey
IPK_CohesiveSurface3d_area
;
74
75
public
:
76
CohesiveSurface3d
(
int
n,
Domain
* d);
77
virtual
~CohesiveSurface3d
() { }
78
79
void
computeBmatrixAt
(
GaussPoint
*gp,
FloatMatrix
&answer,
int
li,
int
ui)
override
;
80
double
computeVolumeAround
(
GaussPoint
*gp)
override
;
81
int
computeNumberOfDofs
()
override
{
return
6 *
giveNumberOfNodes
(); }
82
void
giveDofManDofIDMask
(
int
inode,
IntArray
&answer)
const override
;
83
double
giveLength
();
84
void
computeNmatrixAt
(
const
FloatArray
&iLocCoord,
FloatMatrix
&answer)
override
{ }
85
int
computeGlobalCoordinates
(
FloatArray
&answer,
const
FloatArray
&lcoords)
override
;
86
87
// definition & identification
88
const
char
*
giveClassName
()
const override
{
return
"CohesiveSurface3d"
; }
89
const
char
*
giveInputRecordName
()
const override
{
return
_IFT_CohesiveSurface3d_Name
; }
90
Element_Geometry_Type
giveGeometryType
()
const override
{
return
EGT_unknown;}
91
92
93
// input and output
94
void
initializeFrom
(
InputRecord
&ir,
int
priority)
override
;
95
void
postInitialize
()
override
;
96
97
#ifdef __OOFEG
98
void
drawRawGeometry
(
oofegGraphicContext
&
gc
,
TimeStep
*tStep)
override
;
99
void
drawDeformedGeometry
(
oofegGraphicContext
&
gc
,
TimeStep
*tStep,
UnknownType
)
override
;
100
void
drawScalar
(
oofegGraphicContext
&
gc
,
TimeStep
*tStep)
override
;
101
#endif
102
103
protected
:
104
void
computeGaussPoints
()
override
;
105
void
evaluateCenter
();
106
void
evaluateLocalCoordinateSystem
();
107
108
void
computeStressVector
(
FloatArray
&answer,
const
FloatArray
&strain,
GaussPoint
*gp,
TimeStep
*tStep)
override
;
109
void
computeConstitutiveMatrixAt
(
FloatMatrix
&answer, MatResponseMode rMode,
GaussPoint
*gp,
TimeStep
*tStep)
override
;
110
MaterialMode
giveMaterialMode
()
override
{
return
_3dInterface; }
111
};
112
}
// namespace oofem
113
#endif
oofem::CohesiveSurface3d::length
double length
Definition
cohsur3d.h:60
oofem::CohesiveSurface3d::kx
int kx
Definition
cohsur3d.h:66
oofem::CohesiveSurface3d::computeGlobalCoordinates
int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords) override
Definition
cohsur3d.C:430
oofem::CohesiveSurface3d::computeBmatrixAt
void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int li, int ui) override
Definition
cohsur3d.C:77
oofem::CohesiveSurface3d::computeStressVector
void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep) override
Definition
cohsur3d.C:241
oofem::CohesiveSurface3d::kxa
double kxa
Definition
cohsur3d.h:67
oofem::CohesiveSurface3d::kz
int kz
Definition
cohsur3d.h:66
oofem::CohesiveSurface3d::IPK_CohesiveSurface3d_area
static ParamKey IPK_CohesiveSurface3d_area
Definition
cohsur3d.h:73
oofem::CohesiveSurface3d::postInitialize
void postInitialize() override
Performs post initialization steps. Called after all components are created and initialized.
Definition
cohsur3d.C:386
oofem::CohesiveSurface3d::computeVolumeAround
double computeVolumeAround(GaussPoint *gp) override
Definition
cohsur3d.C:227
oofem::CohesiveSurface3d::area
double area
Definition
cohsur3d.h:60
oofem::CohesiveSurface3d::drawRawGeometry
void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep) override
Definition
cohsur3d.C:438
oofem::CohesiveSurface3d::kzc
double kzc
Definition
cohsur3d.h:67
oofem::CohesiveSurface3d::computeGaussPoints
void computeGaussPoints() override
Definition
cohsur3d.C:215
oofem::CohesiveSurface3d::IPK_CohesiveSurface3d_ky
static ParamKey IPK_CohesiveSurface3d_ky
Definition
cohsur3d.h:71
oofem::CohesiveSurface3d::initializeFrom
void initializeFrom(InputRecord &ir, int priority) override
Definition
cohsur3d.C:374
oofem::CohesiveSurface3d::giveClassName
const char * giveClassName() const override
Definition
cohsur3d.h:88
oofem::CohesiveSurface3d::giveInputRecordName
const char * giveInputRecordName() const override
Definition
cohsur3d.h:89
oofem::CohesiveSurface3d::computeConstitutiveMatrixAt
void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
Definition
cohsur3d.C:248
oofem::CohesiveSurface3d::giveLength
double giveLength()
Definition
cohsur3d.C:255
oofem::CohesiveSurface3d::IPK_CohesiveSurface3d_kx
static ParamKey IPK_CohesiveSurface3d_kx
Definition
cohsur3d.h:70
oofem::CohesiveSurface3d::~CohesiveSurface3d
virtual ~CohesiveSurface3d()
Definition
cohsur3d.h:77
oofem::CohesiveSurface3d::giveGeometryType
Element_Geometry_Type giveGeometryType() const override
Definition
cohsur3d.h:90
oofem::CohesiveSurface3d::giveMaterialMode
MaterialMode giveMaterialMode() override
Definition
cohsur3d.h:110
oofem::CohesiveSurface3d::ky
int ky
Definition
cohsur3d.h:66
oofem::CohesiveSurface3d::drawScalar
void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override
Definition
cohsur3d.C:534
oofem::CohesiveSurface3d::evaluateCenter
void evaluateCenter()
Definition
cohsur3d.C:293
oofem::CohesiveSurface3d::evaluateLocalCoordinateSystem
void evaluateLocalCoordinateSystem()
Definition
cohsur3d.C:325
oofem::CohesiveSurface3d::giveDofManDofIDMask
void giveDofManDofIDMask(int inode, IntArray &answer) const override
Definition
cohsur3d.C:234
oofem::CohesiveSurface3d::center
FloatArray center
Coordinates of the center of the cohesive surface.
Definition
cohsur3d.h:61
oofem::CohesiveSurface3d::computeNumberOfDofs
int computeNumberOfDofs() override
Definition
cohsur3d.h:81
oofem::CohesiveSurface3d::drawDeformedGeometry
void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType) override
Definition
cohsur3d.C:482
oofem::CohesiveSurface3d::CohesiveSurface3d
CohesiveSurface3d(int n, Domain *d)
Definition
cohsur3d.C:66
oofem::CohesiveSurface3d::lcs
FloatMatrix lcs
Matrix defining the local coordinate system.
Definition
cohsur3d.h:62
oofem::CohesiveSurface3d::computeNmatrixAt
void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer) override
Definition
cohsur3d.h:84
oofem::CohesiveSurface3d::kyb
double kyb
Definition
cohsur3d.h:67
oofem::CohesiveSurface3d::IPK_CohesiveSurface3d_kz
static ParamKey IPK_CohesiveSurface3d_kz
Definition
cohsur3d.h:72
oofem::Domain
Definition
domain.h:121
oofem::Element::giveNumberOfNodes
virtual int giveNumberOfNodes() const
Definition
element.h:703
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::ParamKey
Definition
paramkey.h:51
oofem::StructuralElement::StructuralElement
StructuralElement(int n, Domain *d)
Definition
structuralelement.C:69
oofem::TimeStep
Definition
timestep.h:82
oofem::oofegGraphicContext
Definition
oofeggraphiccontext.h:133
_IFT_CohesiveSurface3d_Name
#define _IFT_CohesiveSurface3d_Name
Definition
cohsur3d.h:42
oofem
Definition
additivemanufacturingproblem.C:83
oofem::Element_Geometry_Type
Element_Geometry_Type
Definition
elementgeometrytype.h:82
oofem::UnknownType
UnknownType
Definition
unknowntype.h:59
gc
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
structuralelement.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