OOFEM 3.0
Loading...
Searching...
No Matches
cbselement.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 cbselement_h
36#define cbselement_h
37
38#include "fmelement.h"
39
40namespace oofem {
41class TimeStep;
42class GaussPoint;
43class FloatMatrix;
44class FloatArray;
45class ParamKey;
46
51class CBSElement : public FMElement
52{
53protected:
58
61
62public:
63 CBSElement(int n, Domain * aDomain);
64
65 void initializeFrom(InputRecord &ir, int priority) override;
66 void initializeFinish() override;
67 void giveInputRecord(DynamicInputRecord &input) override;
68
69 void giveCharacteristicMatrix(FloatMatrix &answer, CharType type, TimeStep *tStep) override;
70 void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *tStep) override;
71
73 virtual void computeConsistentMassMtrx(FloatMatrix &answer, TimeStep *tStep) = 0;
75 virtual void computeDiagonalMassMtrx(FloatArray &answer, TimeStep *tStep) = 0;
77 virtual void computePrescribedTermsI(FloatArray &answer, TimeStep *tStep);
78 /* Calculates rhs due to prescribed density/pressure. */
79 //virtual void computePrescribedTermsII(FloatArray& answer, ValueModeType, TimeStep*);
81 virtual void computeConvectionTermsI(FloatArray &answer, TimeStep *tStep) = 0;
83 virtual void computeDiffusionTermsI(FloatArray &answer, TimeStep *tStep) = 0;
85 virtual void computeDensityRhsVelocityTerms(FloatArray &answer, TimeStep *tStep) = 0;
87 virtual void computeDensityRhsPressureTerms(FloatArray &answer, TimeStep *tStep) = 0;
89 virtual void computePrescribedTractionPressure(FloatArray &answer, TimeStep *tStep) = 0;
93 virtual void computePressureLhs(FloatMatrix &answer, TimeStep *tStep) = 0;
95 virtual void computeCorrectionRhs(FloatArray &answer, TimeStep *tStep) = 0;
97 virtual double computeCriticalTimeStep(TimeStep *tStep) = 0;
98
99 // time step termination
100 void updateInternalState(TimeStep *tStep) override;
101 int checkConsistency() override;
102
103#ifdef __OOFEG
105 int node, TimeStep *tStep) override;
106#endif
107
108protected:
110 virtual void computeDeviatoricStress(FloatArray &answer, GaussPoint *gp, TimeStep *tStep) = 0;
111};
112} // end namespace oofem
113#endif // cbselement_h
IntArray boundaryCodes
Boundary sides codes.
Definition cbselement.h:57
virtual double computeCriticalTimeStep(TimeStep *tStep)=0
Calculates critical time step.
virtual void computeNumberOfNodalPrescribedTractionPressureContributions(FloatArray &answer, TimeStep *tStep)=0
Computes number of edges/sides with prescribed traction contributing to node with prescribed pressure...
void initializeFrom(InputRecord &ir, int priority) override
Definition cbselement.C:61
virtual void computeDiagonalMassMtrx(FloatArray &answer, TimeStep *tStep)=0
IntArray boundarySides
Array of boundary sides.
Definition cbselement.h:55
virtual void computePrescribedTractionPressure(FloatArray &answer, TimeStep *tStep)=0
Computes prescribed pressure due to applied tractions.
virtual void computeDensityRhsPressureTerms(FloatArray &answer, TimeStep *tStep)=0
Computes pressure terms on RHS for density equation.
virtual void computePressureLhs(FloatMatrix &answer, TimeStep *tStep)=0
Calculates the pressure LHS.
static ParamKey IPK_CBSElement_bcodes
Definition cbselement.h:60
void initializeFinish() override
Definition cbselement.C:70
virtual void computeDensityRhsVelocityTerms(FloatArray &answer, TimeStep *tStep)=0
Computes velocity terms on RHS for density equation.
CBSElement(int n, Domain *aDomain)
Definition cbselement.C:55
virtual void computeCorrectionRhs(FloatArray &answer, TimeStep *tStep)=0
Calculates the RHS of velocity correction step.
int checkConsistency() override
Definition cbselement.C:149
virtual void computeConvectionTermsI(FloatArray &answer, TimeStep *tStep)=0
virtual void computePrescribedTermsI(FloatArray &answer, TimeStep *tStep)
Definition cbselement.C:125
void updateInternalState(TimeStep *tStep) override
Definition cbselement.C:162
virtual void computeConsistentMassMtrx(FloatMatrix &answer, TimeStep *tStep)=0
virtual void computeDeviatoricStress(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)=0
Computes deviatoric stress vector in given integration point and solution step from given total strai...
int giveInternalStateAtNode(FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *tStep) override
Definition cbselement.C:177
virtual void computeDiffusionTermsI(FloatArray &answer, TimeStep *tStep)=0
void giveInputRecord(DynamicInputRecord &input) override
Definition cbselement.C:81
void giveCharacteristicMatrix(FloatMatrix &answer, CharType type, TimeStep *tStep) override
Definition cbselement.C:92
void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *tStep) override
Definition cbselement.C:107
static ParamKey IPK_CBSElement_bsides
Definition cbselement.h:59
FMElement(int n, Domain *aDomain)
Definition fmelement.C:38
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