OOFEM 3.0
Loading...
Searching...
No Matches
lattice3d.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 program is free software; you can redistribute it and/or modify
21 * it under the terms of the GNU General Public License as published by
22 * the Free Software Foundation; either version 2 of the License, or
23 * (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
28 * GNU General Public License for more details.
29 *
30 * You should have received a copy of the GNU General Public License
31 * along with this program; if not, write to the Free Software
32 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
33 */
34
35#ifndef lattice3d_h
36#define lattice3d_h
37
39
41
42#define _IFT_Lattice3d_Name "lattice3d"
43#define _IFT_Lattice3d_mlength "mlength"
44#define _IFT_Lattice3d_polycoords "polycoords"
45#define _IFT_Lattice3d_couplingflag "couplingflag"
46#define _IFT_Lattice3d_couplingnumber "couplingnumber"
47#define _IFT_Lattice3d_pressures "pressures"
49
50namespace oofem {
51class ParamKey;
55
57{
58protected:
59 double minLength;
60 double kappa, length;
61 double I1, I2, Ip;
65 double eccS, eccT, area;
71
77public:
78 Lattice3d(int n, Domain *);
79 virtual ~Lattice3d();
80
81
82 int giveLocalCoordinateSystem(FloatMatrix &answer) override;
83
84 int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords) override;
85
86 double giveLength() override;
87
88 double giveNormalStress() override;
89
90 double giveArea() override;
91
92 int computeNumberOfDofs() override { return 12; }
93
94 void giveDofManDofIDMask(int inode, IntArray &) const override;
95
96 double computeVolumeAround(GaussPoint *) override;
97
99
100 int giveCrackFlag() override;
101
102 double giveCrackWidth() override;
103
104 void givePlasticStrain(FloatArray &plas) override;
105 void giveOldPlasticStrain(FloatArray &plas) override;
106
107 void givePressures(FloatArray &pres) override { pres = pressures; }
108
109 int giveCouplingFlag() override { return couplingFlag; }
110
111 void giveCouplingNumbers(IntArray &numbers) override { numbers = this->couplingNumbers; }
112
116 void giveCrossSectionCoordinates(FloatArray &coords) override { coords = polygonCoords; }
117
118 virtual void giveGPCoordinates(FloatArray &coords);
119
120 virtual void computeGeometryProperties();
121
122 virtual void computeCrossSectionProperties();
123
124 const char *giveInputRecordName() const override { return _IFT_Lattice3d_Name; }
125 const char *giveClassName() const override { return "Lattice3d"; }
126 void initializeFrom(InputRecord &ir, int priority) override;
127 void postInitialize() override;
128
129 Element_Geometry_Type giveGeometryType() const override { return EGT_line_1; }
130
131 void saveContext(DataStream &stream, ContextMode mode) override;
132
133 void restoreContext(DataStream &stream, ContextMode mode) override;
134
135#ifdef __OOFEG
136 void drawYourself(oofegGraphicContext &context, TimeStep *tStep) override;
137 void drawRawGeometry(oofegGraphicContext &, TimeStep *tStep) override;
140#endif
141
142
143protected:
144 void computeBmatrixAt(GaussPoint *, FloatMatrix &, int = 1, int = ALL_STRAINS) override;
145 bool computeGtoLRotationMatrix(FloatMatrix &) override;
146 void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep) override;
147 void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
148 { this->computeLumpedMassMatrix(answer, tStep); }
149 void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override;
150 void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override;
151 void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep) override;
152
157
158 void computeGaussPoints() override;
159 integrationDomain giveIntegrationDomain() const override { return _Line; }
160};
161} // end namespace oofem
162#endif
void drawRawCrossSections(oofegGraphicContext &, TimeStep *tStep)
Definition lattice3d.C:801
void giveDofManDofIDMask(int inode, IntArray &) const override
Definition lattice3d.C:376
integrationDomain giveIntegrationDomain() const override
Definition lattice3d.h:159
int giveCouplingFlag() override
Definition lattice3d.h:109
double giveLength() override
Definition lattice3d.C:210
FloatArray normal
Definition lattice3d.h:66
Lattice3d(int n, Domain *)
Definition lattice3d.C:70
FloatArray midPoint
Definition lattice3d.h:66
double giveNormalStress() override
Definition lattice3d.C:341
void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
Definition lattice3d.h:147
static ParamKey IPK_Lattice3d_mlength
Definition lattice3d.h:76
Element_Geometry_Type giveGeometryType() const override
Definition lattice3d.h:129
IntArray couplingNumbers
Definition lattice3d.h:69
int giveNumberOfCrossSectionNodes() override
Definition lattice3d.h:98
FloatArray polygonCoords
Definition lattice3d.h:62
double giveArea() override
Definition lattice3d.C:308
void giveCrossSectionCoordinates(FloatArray &coords) override
Definition lattice3d.h:116
FloatArray centroid
Definition lattice3d.h:66
int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords) override
Definition lattice3d.C:404
void drawDeformedGeometry(oofegGraphicContext &, TimeStep *tStep, UnknownType) override
Definition lattice3d.C:843
bool computeGtoLRotationMatrix(FloatMatrix &) override
Definition lattice3d.C:318
void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep) override
Definition lattice3d.C:268
int computeNumberOfDofs() override
Definition lattice3d.h:92
static ParamKey IPK_Lattice3d_pressures
Definition lattice3d.h:75
int giveCrackFlag() override
Definition lattice3d.C:221
const char * giveClassName() const override
Definition lattice3d.h:125
void computeBmatrixAt(GaussPoint *, FloatMatrix &, int=1, int=ALL_STRAINS) override
Definition lattice3d.C:86
void initializeFrom(InputRecord &ir, int priority) override
Definition lattice3d.C:384
void computeGaussPoints() override
Definition lattice3d.C:298
static ParamKey IPK_Lattice3d_couplingnumber
Definition lattice3d.h:74
double computeVolumeAround(GaussPoint *) override
Definition lattice3d.C:366
static ParamKey IPK_Lattice3d_polycoords
Definition lattice3d.h:72
virtual ~Lattice3d()
Definition lattice3d.C:81
void computePropertiesOfCrossSection()
void giveCouplingNumbers(IntArray &numbers) override
Definition lattice3d.h:111
void drawRawGeometry(oofegGraphicContext &, TimeStep *tStep) override
Definition lattice3d.C:773
virtual void computeCrossSectionProperties()
Definition lattice3d.C:478
void givePlasticStrain(FloatArray &plas) override
Definition lattice3d.C:244
const char * giveInputRecordName() const override
Definition lattice3d.h:124
FloatMatrix localCoordinateSystem
Definition lattice3d.h:64
double giveCrackWidth() override
Definition lattice3d.C:233
void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override
Definition lattice3d.C:274
void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
Definition lattice3d.C:262
FloatArray pressures
Definition lattice3d.h:70
void giveOldPlasticStrain(FloatArray &plas) override
Definition lattice3d.C:253
int giveLocalCoordinateSystem(FloatMatrix &answer) override
Definition lattice3d.C:353
void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
Definition lattice3d.C:462
virtual void giveGPCoordinates(FloatArray &coords)
Definition lattice3d.C:199
void givePressures(FloatArray &pres) override
Definition lattice3d.h:107
void postInitialize() override
Performs post initialization steps.
Definition lattice3d.C:397
void saveContext(DataStream &stream, ContextMode mode) override
Definition lattice3d.C:703
void drawYourself(oofegGraphicContext &context, TimeStep *tStep) override
Definition lattice3d.C:750
virtual void computeGeometryProperties()
Definition lattice3d.C:418
FloatArray globalCentroid
Definition lattice3d.h:66
void restoreContext(DataStream &stream, ContextMode mode) override
Definition lattice3d.C:726
static ParamKey IPK_Lattice3d_couplingflag
Definition lattice3d.h:73
int numberOfPolygonVertices
Definition lattice3d.h:63
#define _IFT_Lattice3d_Name
Definition lattice3d.h:42
long ContextMode
Definition contextmode.h:43
#define ALL_STRAINS

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