OOFEM 3.0
Loading...
Searching...
No Matches
shell7base.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 Shell7Base_h
36#define Shell7Base_h
37
42#include "vtkxmlexportmodule.h"
44#include "fei3dwedgequad.h"
45#include "fei3dtrquad.h"
46#include "fracturemanager.h"
47#include "cltypes.h"
48#include <vector>
50
52
53#define _IFT_Shell7base_recoverStress "recoverstress"
55
56namespace oofem {
57class BoundaryLoad;
58class ParamKey;
59
60#define _ExportCZ
61
71{
72protected:
74public:
75 Shell7Base(int n, Domain *d); // constructor
76
77 void giveDofManDofIDMask(int inode, IntArray &) const override;
78 int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords) override;
79 virtual int computeGlobalCoordinatesOnEdge(FloatArray &answer, const FloatArray &lcoords, const int iEdge);
80 int computeNumberOfDofs() override { return this->giveNumberOfDofs(); }
81 int checkConsistency() override;
82 void postInitialize() override;
83 void printOutputAt(FILE *file, TimeStep *tStep) override;
84
85 // Definition & identification
86 const char *giveClassName() const override { return "Shell7Base"; }
87 MaterialMode giveMaterialMode() override { return _3dMat; }
88
89
90 // Element specific
91 virtual int giveNumberOfInPlaneIP() { return numInPlaneIP; };
92 int giveNumberOfDofs() override;
93 virtual int giveNumberOfEdgeDofs() = 0;
94 virtual int giveNumberOfEdgeDofManagers() = 0;
96
98 FloatArrayF< 3 > &dmdxi2, FloatArrayF< 3 > &m, double &dgamdxi1, double &dgamdxi2, double &gam);
101
102 // Overloaded, as the element is using enhanced approximation
103 void computeBoundaryEdgeLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global) override;
104
105 void computeConstitutiveMatrix_dPdF_At(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
106 { OOFEM_ERROR("calling of this funciton is not allowed"); }
107
108protected:
109 // Recover transverse stresses using momentum balance, cf. Främby, Fagerström & Bouzoulis, 'Adaptive modelling of delamination initiation and propagation using an equivalent single-layer shell approach', IJNME, 2016
111
114
117
119
120 virtual const IntArray &giveOrderingDofTypes() const = 0;
121 virtual const IntArray &giveOrderingNodes() const = 0;
122 virtual const IntArray &giveOrderingEdgeNodes() const = 0;
123
124 std::vector< FloatArrayF< 3 > >initialNodeDirectors;
126 return this->initialNodeDirectors [ i - 1 ];
127 }
128
131 return this->initialSolutionVector;
132 }
133
134 std::vector< FloatArray >initialEdgeSolutionVectors;
136 return this->initialEdgeSolutionVectors [ i - 1 ];
137 }
138
139 // Element specific methods
141 void computeGaussPoints() override = 0;
142 virtual double computeVolumeAroundLayer(GaussPoint *mastergp, int layer) = 0;
143 virtual double computeAreaAround(GaussPoint *gp, double xi) = 0;
144 void giveSurfaceDofMapping(IntArray &answer, int iSurf) const override = 0;
145 void giveEdgeDofMapping(IntArray &answer, int iEdge) const override = 0;
146
147 void initializeFrom(InputRecord &ir, int priority) override;
148
149 // Integration
150 virtual double edgeComputeLengthAround(GaussPoint *gp, const int iedge);
151
152
153 // Base vectors and directors
154 virtual void setupInitialNodeDirectors();
156
157
158
160
162
163 virtual FloatArrayF< 3 >evalCovarNormalAt(const FloatArrayF< 3 > &lCoords, FloatArray &genEpsC, TimeStep *tStep);
165
166 FloatArrayF< 3 >edgeEvalInitialDirectorAt(const FloatArrayF< 1 > &lCoords, const int iEdge);
167
168 std::pair< FloatArrayF< 3 >, FloatArrayF< 3 > >edgeEvalInitialCovarBaseVectorsAt(const FloatArrayF< 1 > &lCoords, const int iedge);
169
170 FloatMatrixF< 3, 3 >edgeEvalCovarBaseVectorsAt(const FloatArrayF< 3 > &lCoords, const int iedge, TimeStep *tStep);
171
172 virtual double giveGlobalZcoord(const FloatArrayF< 3 > &lCoords);
173 virtual double giveGlobalZcoordInLayer(double xi, int layer);
174
176
177 // Stress and strain
180
181 virtual void computeCauchyStressVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep);
182
183 // Mass matrices
184 void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep) override;
185 void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep) override; // analytically integrated through the thickness
186 virtual void computeMassMatrixNum(FloatMatrix &answer, TimeStep *tStep); // numerical integration in B_X
187 virtual void giveMassFactorsAt(GaussPoint *gp, FloatArray &answer, double &gam);
188 void computeConvectiveMassForce(FloatArray &answer, TimeStep *tStep);
189 void computeThicknessMappingCoeff(GaussPoint *gp, FloatArray &answer); // for analytically integrated mass matrix
190
191
192 // Tangent matrices
193 void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override;
194 virtual void computeBulkTangentMatrix(FloatMatrix &answer, FloatArray &solVec, TimeStep *tStep);
196 void computePressureTangentMatrix(FloatMatrix &answer, Load *load, const int iSurf, TimeStep *tStep);
197 std::array< FloatMatrixF< 3, 18 >, 3 >computeLambdaGMatrices(FloatArray &genEps, double zeta);
199
200 // Internal forces
201 void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord = 0) override;
202 void computeSectionalForces(FloatArray &answer, TimeStep *tStep, FloatArray &solVec, int useUpdatedGpRecord = 0);
203 void computeSectionalForcesAt(FloatArray &sectionalForces, IntegrationPoint *ip, Material *mat, TimeStep *tStep, FloatArray &genEpsC, double zeta);
204
205 // External forces
206 void computeBodyLoadVectorAt(FloatArray &answer, Load *forLoad, TimeStep *tStep, ValueModeType mode) override;
207 void computePressureForce(FloatArray &answer, FloatArray solVec, const int iSurf, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode);
208 void computePressureForceAt(GaussPoint *gp, FloatArray &answer, const int iSurf, FloatArray genEps, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode);
209 virtual void computeTractionForce(FloatArray &answer, const int iedge, BoundaryLoad *edgeLoad, TimeStep *tStep, ValueModeType mode, bool map2elementDOFs = false);
210
211
212 // Solution vectors
213 void computeVectorOfDofIDs(const IntArray &dofIdArray, ValueModeType u, TimeStep *tStep, FloatArray &answer);
214 void temp_computeBoundaryVectorOf(IntArray &dofIdArray, int boundary, ValueModeType u, TimeStep *tStep, FloatArray &answer);
215
216 virtual void edgeGiveUpdatedSolutionVector(FloatArray &answer, const int iedge, TimeStep *tStep);
217
220
221 //void giveInitialSolutionVector(FloatArray &answer);
222 void giveUpdatedSolutionVector(FloatArray &answer, TimeStep *tStep);
223 void giveUnknownsAt(const FloatArrayF< 3 > &lcoords, const FloatArray &solVec, FloatArrayF< 3 > &x, FloatArrayF< 3 > &m, double &gam, TimeStep *tStep);
224
225 // Nodal averaging interface:
226 void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep) override;
227
228 // ZZ recovery
230 void NodalRecoveryMI_computeNValProduct(FloatMatrix &answer, int layer, InternalStateType type, TimeStep *tStep);
231 void NodalRecoveryMI_computeNNMatrix(FloatArray &answer, int layer, InternalStateType type);
232 void NodalRecoveryMI_recoverValues(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep);
233
234 // VTK interface
235 virtual FloatArrayF< 3 >vtkEvalInitialGlobalCoordinateAt(const FloatArrayF< 3 > &localCoords, int layer);
236 virtual FloatArrayF< 3 >vtkEvalUpdatedGlobalCoordinateAt(const FloatArrayF< 3 > &localCoords, int layer, TimeStep *tStep);
237 virtual FloatArrayF< 3 >vtkEvalInitialGlobalCZCoordinateAt(const FloatArrayF< 3 > &localCoords, int interface);
238
239 void giveCompositeExportData(std::vector< ExportRegion > &vtkPieces, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep ) override;
240 virtual void giveShellExportData(ExportRegion &vtkPiece, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep );
241
242 std::vector< FloatArray >giveFictiousNodeCoordsForExport(int layer);
243 std::vector< FloatArray >giveFictiousCZNodeCoordsForExport(int interface);
244 std::vector< FloatArray >giveFictiousUpdatedNodeCoordsForExport(int layer, TimeStep *tStep);
245 //void giveLocalNodeCoordsForExport(FloatArray &nodeLocalXi1Coords, FloatArray &nodeLocalXi2Coords, FloatArray &nodeLocalXi3Coords);
246
247 // Recovery of through thickness stresses by momentum balance
249 virtual void giveRecoveredTransverseInterfaceStress(std::vector< FloatMatrix > &transverseStress, TimeStep *tStep);
250 void giveTractionBC(FloatMatrix &tractionTop, FloatMatrix &tractionBtm, TimeStep *tStep);
251 void recoverValuesFromIP(std::vector< FloatArray > &nodes, int layer, InternalStateType type, TimeStep *tStep, stressRecoveryType SRtype = copyIPvalue);
252 void CopyIPvaluesToNodes(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep);
253 void nodalLeastSquareFitFromIP(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep);
254 virtual void recoverShearStress(TimeStep *tStep);
255 void giveLayerContributionToSR(FloatMatrix &dSmat, FloatMatrix &dSmatLayerIP, int layer, double zeroThicknessLevel, TimeStep *tStep);
256 void fitRecoveredStress2BC(std::vector< FloatMatrix > &answer1, std::vector< FloatMatrix > &answer2, std::vector< FloatMatrix > &dSmat, std::vector< FloatMatrix > &dSmatIP, FloatMatrix &SmatOld, FloatMatrix &tractionBtm, FloatMatrix &tractionTop, double zeroThicknessLevel, FloatArray fulfillBC, int startLayer, int endLayer);
257 void updateLayerTransvStressesSR(FloatMatrix &dSmatLayerIP, int layer);
258 void updateLayerTransvShearStressesSR(FloatMatrix &dSmatLayerIP, FloatMatrix &SmatOld, int layer);
259 void updateLayerTransvNormalStressSR(FloatMatrix &dSzzMatLayerIP, FloatArray &SzzMatOld, int layer);
260 // void computeBmatrixForStressRecAt(FloatArray &lcoords, FloatMatrix &answer, int layer, bool intSzz = false);
261 // void givePolynomial2GradientForStressRecAt(FloatArray &answer, FloatArray &coords);
263 // void giveZintegratedPolynomial2GradientForStressRecAt(FloatArray &answer, FloatArray &coords);
265 void giveL2contribution(FloatMatrix &ipValues, FloatMatrix &Nbar, int layer, InternalStateType type, TimeStep *tStep);
266 void giveSPRcontribution(FloatMatrix &eltIPvalues, FloatMatrix &eltPolynomialValues, int layer, InternalStateType type, TimeStep *tStep);
267
268 // N and B matrices
269 void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int li = 1, int ui = ALL_STRAINS) override { answer.clear(); }
270
271 virtual void computeBmatrixAt(const FloatArray &lCoords, FloatMatrix &answer, int li = 1, int ui = ALL_STRAINS);
272 void computeNmatrixAt(const FloatArray &iLocCoords, FloatMatrix &answer) override;
273 virtual void edgeComputeNmatrixAt(const FloatArray &lCoords, FloatMatrix &answer);
274
275 void computeStrainVectorInLayer(FloatArray &answer, const FloatArray &masterGpStrain, GaussPoint *masterGp, GaussPoint *slaveGp, TimeStep *tStep) override
276 {
277 OOFEM_ERROR("ComputeStrainVectorInLayer - Should not be called! Not meaningful for this element.");
278 }
279 virtual void edgeComputeBmatrixAt(const FloatArray &lCoords, FloatMatrix &answer, int li = 1, int ui = ALL_STRAINS);
280
282
283 int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override;
284 void computeInterLaminarStressesAt(int interfaceNum, TimeStep *tStep, std::vector< FloatArray > &interLamStresses);
286 int giveSymVoigtIndex(int ind1, int ind2);
287 int giveVoigtIndex(int ind1, int ind2);
288 std::vector< std::vector< int > >voigtIndices;
289};
290} // end namespace oofem
291#endif
Stores all neccessary data (of a region) in a VTKPiece so it can be exported later.
*Sets size of receiver to be an empty matrix It will have zero rows and zero columns size void clear()
NLStructuralElement(int n, Domain *d)
FloatArray initialSolutionVector
Definition shell7base.h:129
FloatMatrixF< 3, 3 > computeStressMatrix(FloatArray &genEps, GaussPoint *gp, Material *mat, TimeStep *tStep)
Definition shell7base.C:701
void giveCompositeExportData(std::vector< ExportRegion > &vtkPieces, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep) override
virtual FloatArrayF< 3 > evalCovarNormalAt(const FloatArrayF< 3 > &lCoords, FloatArray &genEpsC, TimeStep *tStep)
void giveLayerContributionToSR(FloatMatrix &dSmat, FloatMatrix &dSmatLayerIP, int layer, double zeroThicknessLevel, TimeStep *tStep)
virtual double edgeComputeLengthAround(GaussPoint *gp, const int iedge)
FloatMatrixF< 3, 7 > computeLambdaNMatrix(FloatArray &genEps, double zeta)
Definition shell7base.C:492
virtual void evaluateFailureCriteriaQuantities(FailureCriteriaStatus *fc, TimeStep *tStep)
void computePressureForceAt(GaussPoint *gp, FloatArray &answer, const int iSurf, FloatArray genEps, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode)
FloatArrayF< 3 > & giveInitialNodeDirector(int i)
Definition shell7base.h:125
void NodalRecoveryMI_computeNValProduct(FloatMatrix &answer, int layer, InternalStateType type, TimeStep *tStep)
static FEI3dWedgeQuad interpolationForExport
Definition shell7base.h:116
std::array< FloatMatrixF< 3, 18 >, 3 > computeLambdaGMatrices(FloatArray &genEps, double zeta)
Definition shell7base.C:447
virtual void giveShellExportData(ExportRegion &vtkPiece, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep)
virtual FloatMatrixF< 3, 3 > evalCovarBaseVectorsAt(const FloatArrayF< 3 > &lCoords, FloatArray &genEps, TimeStep *tStep)
Definition shell7base.C:350
virtual double giveGlobalZcoord(const FloatArrayF< 3 > &lCoords)
Definition shell7base.C:201
FloatArray & giveInitialSolutionVector()
Definition shell7base.h:130
void computePressureForce(FloatArray &answer, FloatArray solVec, const int iSurf, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode)
void giveTractionBC(FloatMatrix &tractionTop, FloatMatrix &tractionBtm, TimeStep *tStep)
static void giveGeneralizedStrainComponents(FloatArray genEps, FloatArrayF< 3 > &dphidxi1, FloatArrayF< 3 > &dphidxi2, FloatArrayF< 3 > &dmdxi1, FloatArrayF< 3 > &dmdxi2, FloatArrayF< 3 > &m, double &dgamdxi1, double &dgamdxi2, double &gam)
virtual FloatArrayF< 3 > vtkEvalUpdatedGlobalCoordinateAt(const FloatArrayF< 3 > &localCoords, int layer, TimeStep *tStep)
Shell7Base(int n, Domain *d)
Definition shell7base.C:63
void computeGaussPoints() override=0
virtual void computeMassMatrixNum(FloatMatrix &answer, TimeStep *tStep)
Definition shell7base.C:966
virtual void recoverShearStress(TimeStep *tStep)
void NodalRecoveryMI_recoverValues(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
virtual double computeVolumeAroundLayer(GaussPoint *mastergp, int layer)=0
std::vector< std::vector< int > > voigtIndices
Definition shell7base.h:288
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
Definition shell7base.C:737
virtual void edgeGiveUpdatedSolutionVector(FloatArray &answer, const int iedge, TimeStep *tStep)
static ParamKey IPK_Shell7Base_recoverStress
Definition shell7base.h:73
virtual void setupInitialNodeDirectors()
Definition shell7base.C:323
virtual double giveGlobalZcoordInLayer(double xi, int layer)
Definition shell7base.C:208
virtual FloatArrayF< 3 > vtkEvalInitialGlobalCoordinateAt(const FloatArrayF< 3 > &localCoords, int layer)
void computeThicknessMappingCoeff(GaussPoint *gp, FloatArray &answer)
Definition shell7base.C:835
void giveSPRcontribution(FloatMatrix &eltIPvalues, FloatMatrix &eltPolynomialValues, int layer, InternalStateType type, TimeStep *tStep)
LayeredCrossSection * giveLayeredCS()
Definition shell7base.h:100
void recoverValuesFromIP(std::vector< FloatArray > &nodes, int layer, InternalStateType type, TimeStep *tStep, stressRecoveryType SRtype=copyIPvalue)
void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override
Definition shell7base.C:421
void computeConstitutiveMatrix_dPdF_At(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
Definition shell7base.h:105
virtual const IntArray & giveOrderingNodes() const =0
void postInitialize() override
Performs post initialization steps.
Definition shell7base.C:88
void computePressureTangentMatrix(FloatMatrix &answer, Load *load, const int iSurf, TimeStep *tStep)
Definition shell7base.C:607
FloatMatrixF< 3, 3 > evalInitialCovarBaseVectorsAt(const FloatArrayF< 3 > &lCoords)
Definition shell7base.C:220
const char * giveClassName() const override
Definition shell7base.h:86
void nodalLeastSquareFitFromIP(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
FloatMatrixF< 3, 3 > evalInitialContravarBaseVectorsAt(const FloatArrayF< 3 > &lCoords)
Definition shell7base.C:274
FloatArray & giveInitialEdgeSolutionVector(int i)
Definition shell7base.h:135
virtual void computeBulkTangentMatrix(FloatMatrix &answer, FloatArray &solVec, TimeStep *tStep)
Definition shell7base.C:514
virtual void computeTractionForce(FloatArray &answer, const int iedge, BoundaryLoad *edgeLoad, TimeStep *tStep, ValueModeType mode, bool map2elementDOFs=false)
void computeSectionalForces(FloatArray &answer, TimeStep *tStep, FloatArray &solVec, int useUpdatedGpRecord=0)
Definition shell7base.C:773
void setupInitialEdgeSolutionVector()
void CopyIPvaluesToNodes(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
LayeredCrossSection * layeredCS
Definition shell7base.h:113
FloatMatrixF< 3, 3 > computeFAt(const FloatArrayF< 3 > &lCoords, FloatArray &genEps, TimeStep *tStep)
Definition shell7base.C:691
static FloatArrayF< 9 > convV6ToV9Stress(const FloatArrayF< 6 > &V6)
virtual void edgeComputeBmatrixAt(const FloatArray &lCoords, FloatMatrix &answer, int li=1, int ui=ALL_STRAINS)
Interface * giveInterface(InterfaceType it) override
Definition shell7base.C:120
void computeVectorOfDofIDs(const IntArray &dofIdArray, ValueModeType u, TimeStep *tStep, FloatArray &answer)
virtual FloatArrayF< 3 > evalInitialCovarNormalAt(const FloatArrayF< 3 > &lCoords)
virtual int giveNumberOfEdgeDofs()=0
void computeSectionalForcesAt(FloatArray &sectionalForces, IntegrationPoint *ip, Material *mat, TimeStep *tStep, FloatArray &genEpsC, double zeta)
Definition shell7base.C:806
void updateLayerTransvStressesSR(FloatMatrix &dSmatLayerIP, int layer)
virtual void giveRecoveredTransverseInterfaceStress(std::vector< FloatMatrix > &transverseStress, TimeStep *tStep)
static FloatMatrixF< 3, 3 > giveDualBase(FloatMatrixF< 3, 3 > &base1)
Definition shell7base.C:282
void initializeFrom(InputRecord &ir, int priority) override
Definition shell7base.C:68
void computeStrainVectorInLayer(FloatArray &answer, const FloatArray &masterGpStrain, GaussPoint *masterGp, GaussPoint *slaveGp, TimeStep *tStep) override
Definition shell7base.h:275
void updateLayerTransvShearStressesSR(FloatMatrix &dSmatLayerIP, FloatMatrix &SmatOld, int layer)
virtual double computeAreaAround(GaussPoint *gp, double xi)=0
int computeNumberOfDofs() override
Definition shell7base.h:80
MaterialMode giveMaterialMode() override
Definition shell7base.h:87
void giveEdgeDofMapping(IntArray &answer, int iEdge) const override=0
virtual void giveMassFactorsAt(GaussPoint *gp, FloatArray &answer, double &gam)
Definition shell7base.C:942
void giveDofManDofIDMask(int inode, IntArray &) const override
Definition shell7base.C:145
void giveSurfaceDofMapping(IntArray &answer, int iSurf) const override=0
virtual void computeCauchyStressVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Definition shell7base.C:711
void computeLinearizedStiffness(GaussPoint *gp, StructuralMaterial *mat, TimeStep *tStep, FloatMatrix A[3][3])
Definition shell7base.C:567
void printOutputAt(FILE *file, TimeStep *tStep) override
Definition shell7base.C:109
void computeBoundaryEdgeLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global) override
void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
Definition shell7base.C:876
FloatMatrixF< 3, 3 > edgeEvalCovarBaseVectorsAt(const FloatArrayF< 3 > &lCoords, const int iedge, TimeStep *tStep)
Definition shell7base.C:375
int checkConsistency() override
Definition shell7base.C:76
void computeNmatrixAt(const FloatArray &iLocCoords, FloatMatrix &answer) override
std::vector< FloatArray > giveFictiousCZNodeCoordsForExport(int interface)
FloatMatrixF< 3, 3 > giveAxialMatrix(const FloatArrayF< 3 > &vec)
Definition shell7base.C:664
virtual const IntArray & giveOrderingDofTypes() const =0
std::vector< FloatArray > initialEdgeSolutionVectors
Definition shell7base.h:134
void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
Definition shell7base.C:868
void giveUpdatedSolutionVector(FloatArray &answer, TimeStep *tStep)
void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int li=1, int ui=ALL_STRAINS) override
Definition shell7base.h:269
FloatArrayF< 3 > evalInitialDirectorAt(const FloatArrayF< 3 > &lCoords)
Definition shell7base.C:292
void temp_computeBoundaryVectorOf(IntArray &dofIdArray, int boundary, ValueModeType u, TimeStep *tStep, FloatArray &answer)
int giveNumberOfDofs() override
Definition shell7base.C:152
void fitRecoveredStress2BC(std::vector< FloatMatrix > &answer1, std::vector< FloatMatrix > &answer2, std::vector< FloatMatrix > &dSmat, std::vector< FloatMatrix > &dSmatIP, FloatMatrix &SmatOld, FloatMatrix &tractionBtm, FloatMatrix &tractionTop, double zeroThicknessLevel, FloatArray fulfillBC, int startLayer, int endLayer)
void giveL2contribution(FloatMatrix &ipValues, FloatMatrix &Nbar, int layer, InternalStateType type, TimeStep *tStep)
void giveZ2integratedPolynomial2GradientForStressRecAt(FloatArray &answer, FloatArray &coords)
int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords) override
Definition shell7base.C:159
FEInterpolation3d * fei
Definition shell7base.h:118
int giveSymVoigtIndex(int ind1, int ind2)
virtual int giveNumberOfEdgeDofManagers()=0
void giveUnknownsAt(const FloatArrayF< 3 > &lcoords, const FloatArray &solVec, FloatArrayF< 3 > &x, FloatArrayF< 3 > &m, double &gam, TimeStep *tStep)
virtual int giveNumberOfInPlaneIP()
Definition shell7base.h:91
void ZZNodalRecoveryMI_ComputeEstimatedInterpolationMtrx(FloatArray &answer, GaussPoint *gp, InternalStateType type)
std::vector< FloatArray > giveFictiousUpdatedNodeCoordsForExport(int layer, TimeStep *tStep)
virtual const IntArray & giveOrderingEdgeNodes() const =0
void updateLayerTransvNormalStressSR(FloatMatrix &dSzzMatLayerIP, FloatArray &SzzMatOld, int layer)
void giveZintegratedPolynomialGradientForStressRecAt(FloatArray &answer, FloatArray &coords)
static FEI3dTrQuad interpolationForCZExport
Definition shell7base.h:115
void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0) override
Definition shell7base.C:760
std::vector< FloatArray > giveFictiousNodeCoordsForExport(int layer)
virtual void edgeComputeNmatrixAt(const FloatArray &lCoords, FloatMatrix &answer)
FloatArrayF< 3 > edgeEvalInitialDirectorAt(const FloatArrayF< 1 > &lCoords, const int iEdge)
Definition shell7base.C:306
void setupInitialSolutionVector()
void computeBodyLoadVectorAt(FloatArray &answer, Load *forLoad, TimeStep *tStep, ValueModeType mode) override
void computeInterLaminarStressesAt(int interfaceNum, TimeStep *tStep, std::vector< FloatArray > &interLamStresses)
void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep) override
std::vector< FloatArrayF< 3 > > initialNodeDirectors
Definition shell7base.h:124
void NodalRecoveryMI_computeNNMatrix(FloatArray &answer, int layer, InternalStateType type)
void computeConvectiveMassForce(FloatArray &answer, TimeStep *tStep)
virtual FloatArrayF< 3 > vtkEvalInitialGlobalCZCoordinateAt(const FloatArrayF< 3 > &localCoords, int interface)
std::pair< FloatArrayF< 3 >, FloatArrayF< 3 > > edgeEvalInitialCovarBaseVectorsAt(const FloatArrayF< 1 > &lCoords, const int iedge)
Definition shell7base.C:249
int giveVoigtIndex(int ind1, int ind2)
virtual int computeGlobalCoordinatesOnEdge(FloatArray &answer, const FloatArray &lcoords, const int iEdge)
Definition shell7base.C:183
ZZNodalRecoveryModelInterface(Element *element)
Constructor.
#define OOFEM_ERROR(...)
Definition error.h:79
GaussPoint IntegrationPoint
Definition gausspoint.h:272
#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