OOFEM 3.0
Loading...
Searching...
No Matches
termlibrary2.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#ifndef termlibrary2_h
35#define termlibrary2_h
36
37#include "mpm.h"
38#include "boundaryload.h"
39
40// file containing various term definitions
41
42namespace oofem {
43
53void deltaB(FloatMatrix& answer, const Variable *v, const FEInterpolation* interpol, const Element& cell, const FloatArray& coords, const MaterialMode mmode) ;
63void evalB(FloatMatrix& answer, const Variable *v, const FEInterpolation* interpol, const Element& cell, const FloatArray& coords, const MaterialMode mmode) ;
64
67 double evalVolumeFraction(const Variable*vf, MPElement& e, const FloatArray& coords, TimeStep* tstep);
68
69
70
75class NTBdivTerm : public Term {
76 protected:
77 ValueModeType m;
78 public:
79 NTBdivTerm (const Variable *testField, const Variable* unknownField, ValueModeType m) ;
80
88 void evaluate_lin (FloatMatrix& answer, MPElement& e, GaussPoint* gp, TimeStep* tstep) const override;
95 void evaluate (FloatArray&, MPElement& cell, GaussPoint* gp, TimeStep* tstep) const override;
96 void getDimensions(Element& cell) const override;
97 void initializeCell(Element& cell) const override;
98
99 protected:
100
101};
102
103
105class deltaBTfiNpTerm : public Term {
106 protected:
108 public:
109 deltaBTfiNpTerm (const Variable *testField, const Variable* unknownField, const Variable* volumeFraction) ;
110
118 void evaluate_lin (FloatMatrix& answer, MPElement& e, GaussPoint* gp, TimeStep* tstep) const override;
125 void evaluate (FloatArray&, MPElement& cell, GaussPoint* gp, TimeStep* tstep) const override;
126 void getDimensions(Element& cell) const override;
127 void initializeCell(Element& cell) const override;
128
129};
130
131
133class NdTdvfNpTerm : public Term {
134 protected:
136 public:
141 NdTdvfNpTerm (const Variable *testField, const Variable* unknownField, const Variable* volumeFraction) ;
142
150 void evaluate_lin (FloatMatrix& answer, MPElement& e, GaussPoint* gp, TimeStep* tstep) const override;
157 void evaluate (FloatArray&, MPElement& cell, GaussPoint* gp, TimeStep* tstep) const override;
158 void getDimensions(Element& cell) const override;
159 void initializeCell(Element& cell) const override;
160
161};
162
164class BTmuBTerm : public Term {
165 protected:
166 public:
170 BTmuBTerm (const Variable *testField, const Variable* unknownField) ;
171
179 void evaluate_lin (FloatMatrix& answer, MPElement& e, GaussPoint* gp, TimeStep* tstep) const override;
186 void evaluate (FloatArray&, MPElement& cell, GaussPoint* gp, TimeStep* tstep) const override;
187 void getDimensions(Element& cell) const override;
188 void initializeCell(Element& cell) const override;
189
190};
191
193class BTmuVfBTerm : public Term {
194 protected:
196 public:
201 BTmuVfBTerm (const Variable *testField, const Variable* unknownField, const Variable* volumeFraction) ;
202
210 void evaluate_lin (FloatMatrix& answer, MPElement& e, GaussPoint* gp, TimeStep* tstep) const override;
217 void evaluate (FloatArray&, MPElement& cell, GaussPoint* gp, TimeStep* tstep) const override;
218 void getDimensions(Element& cell) const override;
219 void initializeCell(Element& cell) const override;
220
221};
222
224class NTmuVfSNTerm : public Term {
225 protected:
227 public:
232 NTmuVfSNTerm (const Variable *testField, const Variable* unknownField, const Variable* volumeFraction) ;
233
241 void evaluate_lin (FloatMatrix& answer, MPElement& e, GaussPoint* gp, TimeStep* tstep) const override;
248 void evaluate (FloatArray&, MPElement& cell, GaussPoint* gp, TimeStep* tstep) const override;
249 void getDimensions(Element& cell) const override;
250 void initializeCell(Element& cell) const override;
251
252};
253
255class deltaBTNpTerm : public Term {
256 protected:
257 public:
258 deltaBTNpTerm (const Variable *testField, const Variable* unknownField) ;
259
267 void evaluate_lin (FloatMatrix& answer, MPElement& e, GaussPoint* gp, TimeStep* tstep) const override;
274 void evaluate (FloatArray&, MPElement& cell, GaussPoint* gp, TimeStep* tstep) const override;
275 void getDimensions(Element& cell) const override;
276 void initializeCell(Element& cell) const override;
277
278};
279
280} // end namespace oofem
281#endif // termlibrary_h
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
void initializeCell(Element &cell) const override
BTmuBTerm(const Variable *testField, const Variable *unknownField)
Constructor.
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
const Variable * volumeFraction
void getDimensions(Element &cell) const override
void initializeCell(Element &cell) const override
BTmuVfBTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
Constructor.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
Base class for elements based on mp (multi-physics) concept.
Definition mpm.h:282
ValueModeType m
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void initializeCell(Element &cell) const override
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
NTBdivTerm(const Variable *testField, const Variable *unknownField, ValueModeType m)
void getDimensions(Element &cell) const override
const Variable * volumeFraction
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
NTmuVfSNTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
Constructor.
void initializeCell(Element &cell) const override
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void initializeCell(Element &cell) const override
NdTdvfNpTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
Constructor.
const Variable * volumeFraction
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
const Variable * testField
Definition mpm.h:137
void initializeCell(Element &cell) const override
deltaBTNpTerm(const Variable *testField, const Variable *unknownField)
void getDimensions(Element &cell) const override
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
const Variable * volumeFraction
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void initializeCell(Element &cell) const override
deltaBTfiNpTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
void evalB(FloatMatrix &answer, const Variable *v, const FEInterpolation *interpol, const Element &cell, const FloatArray &coords, const MaterialMode mmode)
Evaluates $B$ = matrix;.
void deltaB(FloatMatrix &answer, const Variable *v, const FEInterpolation *interpol, const Element &cell, const FloatArray &coords, const MaterialMode mmode)
Evaluates $\delta B = B_{div}$ matrix;.
double evalVolumeFraction(const Variable *vf, MPElement &e, const FloatArray &coords, TimeStep *tstep)

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