OOFEM 3.0
Loading...
Searching...
No Matches
supgelement2.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 supgelement2_h
36#define supgelement2_h
37
38#include "supgelement.h"
39
40namespace oofem {
41class TimeStep;
42class Node;
43class Material;
44class GaussPoint;
45class FloatMatrix;
46class FloatArray;
47class IntArray;
48
58{
59public:
60 SUPGElement2(int n, Domain * aDomain);
61
62 void initializeFrom(InputRecord &ir, int priority) override;
63 void giveInputRecord(DynamicInputRecord &input) override;
64
65 // characteristic matrix
66 void giveCharacteristicMatrix(FloatMatrix &answer, CharType, TimeStep *tStep) override;
67 void giveCharacteristicVector(FloatArray &answer, CharType, ValueModeType, TimeStep *tStep) override;
69
70 void computeAccelerationTerm_MB(FloatMatrix &answer, TimeStep *tStep) override;
71 void computeAdvectionTerm_MB(FloatArray &answer, TimeStep *tStep) override;
72 void computeAdvectionDerivativeTerm_MB(FloatMatrix &answer, TimeStep *tStep) override;
73 void computeDiffusionTerm_MB(FloatArray &answer, TimeStep *tStep) override;
74 void computeDiffusionDerivativeTerm_MB(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep) override;
75 void computePressureTerm_MB(FloatMatrix &answer, TimeStep *tStep) override;
76 void computeLSICStabilizationTerm_MB(FloatMatrix &answer, TimeStep *tStep) override;
77 void computeLinearAdvectionTerm_MC(FloatMatrix &answer, TimeStep *tStep) override;
78 void computeAdvectionTerm_MC(FloatArray &answer, TimeStep *tStep) override;
79 void computeAdvectionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep) override;
80 void computeDiffusionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep) override;
81 void computeDiffusionTerm_MC(FloatArray &answer, TimeStep *tStep) override;
82 void computeAccelerationTerm_MC(FloatMatrix &answer, TimeStep *tStep) override;
83 void computePressureTerm_MC(FloatMatrix &answer, TimeStep *tStep) override;
84 void computeBCRhsTerm_MB(FloatArray &answer, TimeStep *tStep) override;
85 void computeBCRhsTerm_MC(FloatArray &answer, TimeStep *tStep) override;
86 void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep) override;
87
88 double computeCriticalTimeStep(TimeStep *tStep) override = 0;
89
90 // time step termination
91 void updateInternalState(TimeStep *tStep) override;
92 int checkConsistency() override;
93
94#ifdef __OOFEG
96 int node, TimeStep *tStep) override;
97#endif
98
99protected:
100 void computeDeviatoricStrain(FloatArray &answer, GaussPoint *gp, TimeStep *tStep) override;
101 virtual void computeNuMatrix(FloatMatrix &answer, GaussPoint *gp) = 0;
102 virtual void computeUDotGradUMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep) = 0;
103 virtual void computeBMatrix(FloatMatrix &anwer, GaussPoint *gp) = 0;
104 virtual void computeDivUMatrix(FloatMatrix &answer, GaussPoint *gp) = 0;
105 virtual void computeNpMatrix(FloatMatrix &answer, GaussPoint *gp) = 0;
106 virtual void computeGradPMatrix(FloatMatrix &answer, GaussPoint *gp) = 0;
107 virtual void computeDivTauMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep) = 0;
108 virtual void computeGradUMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep) = 0;
110
111 //virtual void computeEdgeNuMatrix (FloatMatrix& answer, GaussPoint* gp) = 0;
112 //virtual double computeSurfaceVolumeAround (GaussPoint*, int iedge) = 0;
113 //virtual int computeLoadLBToLRotationMatrix (FloatMatrix& answer, int iedge, GaussPoint* gp) = 0;
114 //virtual void giveEdgeUDofMapping (IntArray& answer, int iedge) = 0;
115 //virtual int giveUApproxOrder () = 0;
116 virtual void computeEdgeLoadVector_MB(FloatArray &answer, Load *load, int id, TimeStep *tStep);
117 virtual void computeSurfaceLoadVector_MB(FloatArray &answer, Load *load, int id, TimeStep *tStep);
118 virtual void computeEdgeLoadVector_MC(FloatArray &answer, Load *load, int id, TimeStep *tStep);
119 virtual void computeSurfaceLoadVector_MC(FloatArray &answer, Load *load, int id, TimeStep *tStep);
120};
121} // end namespace oofem
122#endif // supgelement2_h
int checkConsistency() override
void giveInputRecord(DynamicInputRecord &input) override
void giveCharacteristicVector(FloatArray &answer, CharType, ValueModeType, TimeStep *tStep) override
void computeAccelerationTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
void computeAdvectionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
void computeLSICStabilizationTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
double computeCriticalTimeStep(TimeStep *tStep) override=0
Computes the critical time increment.
void initializeFrom(InputRecord &ir, int priority) override
virtual void computeEdgeLoadVector_MB(FloatArray &answer, Load *load, int id, TimeStep *tStep)
void computePressureTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
SUPGElement2(int n, Domain *aDomain)
virtual void computeDivTauMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep)=0
void computeBCRhsTerm_MB(FloatArray &answer, TimeStep *tStep) override
virtual void computeUDotGradUMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep)=0
void updateElementForNewInterfacePosition(TimeStep *tStep) override
void computeAdvectionDerivativeTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
int giveInternalStateAtNode(FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *tStep) override
virtual void computeNpMatrix(FloatMatrix &answer, GaussPoint *gp)=0
virtual int giveNumberOfSpatialDimensions()=0
void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep) override
void computeAccelerationTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
void computeLinearAdvectionTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
virtual void computeGradPMatrix(FloatMatrix &answer, GaussPoint *gp)=0
void computePressureTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
void updateInternalState(TimeStep *tStep) override
void computeDeviatoricStrain(FloatArray &answer, GaussPoint *gp, TimeStep *tStep) override
virtual void computeBMatrix(FloatMatrix &anwer, GaussPoint *gp)=0
void computeAdvectionTerm_MC(FloatArray &answer, TimeStep *tStep) override
virtual void computeGradUMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep)=0
virtual void computeSurfaceLoadVector_MC(FloatArray &answer, Load *load, int id, TimeStep *tStep)
void computeDiffusionTerm_MB(FloatArray &answer, TimeStep *tStep) override
void computeAdvectionTerm_MB(FloatArray &answer, TimeStep *tStep) override
virtual void computeEdgeLoadVector_MC(FloatArray &answer, Load *load, int id, TimeStep *tStep)
virtual void computeDivUMatrix(FloatMatrix &answer, GaussPoint *gp)=0
void giveCharacteristicMatrix(FloatMatrix &answer, CharType, TimeStep *tStep) override
void computeDiffusionDerivativeTerm_MB(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep) override
void computeDiffusionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
virtual void computeSurfaceLoadVector_MB(FloatArray &answer, Load *load, int id, TimeStep *tStep)
virtual void computeNuMatrix(FloatMatrix &answer, GaussPoint *gp)=0
void computeBCRhsTerm_MC(FloatArray &answer, TimeStep *tStep) override
void computeDiffusionTerm_MC(FloatArray &answer, TimeStep *tStep) override
SUPGElement(int n, Domain *aDomain)
Definition supgelement.C:61
InternalStateMode
Determines the mode of internal variable.

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