OOFEM 3.0
Loading...
Searching...
No Matches
graddamageelement.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 *
14 * Copyright (C) 1993 - 2025 Borek Patzak
15 *
16 *
17 *
18 * Czech Technical University, Faculty of Civil Engineering,
19 * Department of Structural Mechanics, 166 29 Prague, Czech Republic
20 *
21 * This library is free software; you can redistribute it and/or
22 * modify it under the terms of the GNU Lesser General Public
23 * License as published by the Free Software Foundation; either
24 * version 2.1 of the License, or (at your option) any later version.
25 *
26 * This program is distributed in the hope that it will be useful,
27 * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29 * Lesser General Public License for more details.
30 *
31 * You should have received a copy of the GNU Lesser General Public
32 * License along with this library; if not, write to the Free Software
33 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
34 */
35
36#ifndef graddamageelement_h
37#define graddamageelement_h
38
41
42#define _IFT_GradientDamageElement_penalty "penalty"
43
44
45namespace oofem {
52
53
54
55
57{
58protected:
63 double penalty;
64
65public:
68
69 virtual void initializeFrom(InputRecord &ir);
70
71protected:
74
75 virtual void computeNdMatrixAt(GaussPoint *gp, FloatArray &answer) = 0;
76 virtual void computeBdMatrixAt(GaussPoint *gp, FloatMatrix &answer) = 0;
77
78 virtual void giveDofManDofIDMask_u(IntArray &answer) const = 0;
79 virtual void giveDofManDofIDMask_d(IntArray &answer) const = 0;
80
81
82 void computeStiffnessMatrix(FloatMatrix &, MatResponseMode, TimeStep *);
83 void computeStiffnessMatrix_uu(FloatMatrix &, MatResponseMode, TimeStep *);
84 void computeStiffnessMatrix_ud(FloatMatrix &, MatResponseMode, TimeStep *);
85 void computeStiffnessMatrix_dd(FloatMatrix &, MatResponseMode, TimeStep *);
86 void computeStiffnessMatrix_du(FloatMatrix &, MatResponseMode, TimeStep *);
87
89 void computeStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep);
91
92 void computeNonlocalDegreesOfFreedom(FloatArray &answer, TimeStep *tStep, ValueModeType vmt = VM_Total);
93 void computeNonlocalDamageDrivingVariable(double &answer, GaussPoint *gp, TimeStep *tStep);
95
96
97 void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord);
98 void giveInternalForcesVector_u(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord);
99 void giveInternalForcesVector_d(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord);
100
101 void computeInternalForces_dN(double &answer, double localDamageDrivingVariable, double damage, GaussPoint *gp, TimeStep *tStep);
102 void computeInternalForces_dB(FloatArray &answer, double localDamageDrivingVariable, FloatArray damage_grad, GaussPoint *gp, TimeStep *tStep);
103
104 void computeStressVector_and_localDamageDrivingVariable(FloatArray &answer, double &localCumulatedPlasticStrain, GaussPoint *gp, TimeStep *tStep);
105
106
107 void giveLocationArrayOfDofIDs(IntArray &locationArray_u, IntArray &locationArray_d, const UnknownNumberingScheme &s, const IntArray &dofIdArray_u, const IntArray &dofIdArray_m);
108
109 virtual void giveLocationArray_u(IntArray &answer) = 0;
110 virtual void giveLocationArray_d(IntArray &answer) = 0;
111
112
113 virtual const char *giveClassName() const { return "GradientDamageElement"; }
114
115 virtual void postInitialize();
116};
117} // end namespace oofem
118
119#endif // end gradient damage element
void computeDisplacementDegreesOfFreedom(FloatArray &answer, TimeStep *tStep)
void computeInternalForces_dB(FloatArray &answer, double localDamageDrivingVariable, FloatArray damage_grad, GaussPoint *gp, TimeStep *tStep)
void computeNonlocalDegreesOfFreedom(FloatArray &answer, TimeStep *tStep, ValueModeType vmt=VM_Total)
void computeStiffnessMatrix(FloatMatrix &, MatResponseMode, TimeStep *)
virtual const char * giveClassName() const
virtual void computeBdMatrixAt(GaussPoint *gp, FloatMatrix &answer)=0
void computeInternalForces_dN(double &answer, double localDamageDrivingVariable, double damage, GaussPoint *gp, TimeStep *tStep)
void computeDeformationGradientVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord)
virtual void giveDofManDofIDMask_u(IntArray &answer) const =0
virtual StructuralElement * giveStructuralElement()=0
void computeNonlocalDamageDrivingVariable(double &answer, GaussPoint *gp, TimeStep *tStep)
void computeStressVector_and_localDamageDrivingVariable(FloatArray &answer, double &localCumulatedPlasticStrain, GaussPoint *gp, TimeStep *tStep)
void computeStiffnessMatrix_ud(FloatMatrix &, MatResponseMode, TimeStep *)
void computeNonlocalDamageDrivingVariableGradient(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
virtual void giveDofManDofIDMask_d(IntArray &answer) const =0
void computeStiffnessMatrix_du(FloatMatrix &, MatResponseMode, TimeStep *)
void computeStiffnessMatrix_uu(FloatMatrix &, MatResponseMode, TimeStep *)
virtual void initializeFrom(InputRecord &ir)
virtual void giveLocationArray_d(IntArray &answer)=0
void computeStiffnessMatrix_dd(FloatMatrix &, MatResponseMode, TimeStep *)
void giveInternalForcesVector_d(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord)
virtual void giveLocationArray_u(IntArray &answer)=0
virtual NLStructuralElement * giveNLStructuralElement()=0
void giveInternalForcesVector_u(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord)
void computeStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
void giveLocationArrayOfDofIDs(IntArray &locationArray_u, IntArray &locationArray_d, const UnknownNumberingScheme &s, const IntArray &dofIdArray_u, const IntArray &dofIdArray_m)
virtual void computeNdMatrixAt(GaussPoint *gp, FloatArray &answer)=0

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