OOFEM 3.0
Loading...
Searching...
No Matches
dof.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 dof_h
36#define dof_h
37
38#include <cstdio>
39
40#include "oofemenv.h"
41#include "floatarray.h"
42#include "intarray.h"
43#include "unknowntype.h"
44#include "valuemodetype.h"
45#include "dofiditem.h"
46#include "doftype.h"
47#include "contextioresulttype.h"
48
49namespace oofem {
50class DataStream;
51class Dictionary;
52class PrimaryField;
53class Domain;
54class DofManager;
55class TimeStep;
60
94{
95protected:
100
101public:
102
110 Dof(DofManager * aNode, DofIDItem id = Undef);
112 virtual ~Dof() { }
113
115 virtual dofType giveDofType() = 0;
117 virtual const char *giveClassName() const { return "Dof"; }
118
120 int giveDofManNumber() const;
121
124
125 int giveDofManGlobalNumber() const;
126
135 virtual double giveBcValue(ValueModeType mode, TimeStep *tStep);
141 int giveEquationNumber(const UnknownNumberingScheme &s);
153 virtual int __giveEquationNumber() const = 0;
167 virtual void giveEquationNumbers(IntArray &masterEqNumbers, const UnknownNumberingScheme &s);
172 virtual void giveDofIDs(IntArray &masterDofIDs);
173
187
196 virtual int askNewEquationNumber(TimeStep *tStep) = 0;
209 virtual double giveUnknown(ValueModeType mode, TimeStep *tStep) = 0;
221 virtual double giveUnknown(PrimaryField &field, ValueModeType mode, TimeStep *tStep) = 0;
230 virtual void giveUnknowns(FloatArray &masterUnknowns, ValueModeType mode, TimeStep *tStep);
240 virtual void giveUnknowns(FloatArray &masterUnknowns, PrimaryField &field, ValueModeType mode, TimeStep *tStep);
241
248 virtual void computeDofTransformation(FloatArray &masterContribs);
252 virtual int giveNumberOfPrimaryMasterDofs() { return 1; }
253
259 virtual bool hasBc(TimeStep *tStep) = 0;
264 virtual bool hasIc() = 0;
271 virtual bool hasIcOn(ValueModeType u) = 0;
276 DofIDItem giveDofID() const { return dofID; }
280 void setDofID(DofIDItem id) { this->dofID = id; }
287 virtual bool isPrimaryDof() { return false; }
294 virtual int giveBcId() = 0;
301 virtual int giveIcId() = 0;
302
306 virtual void giveMasterDofManArray(IntArray &answer);
316
322 virtual void printSingleOutputAt(FILE *file, TimeStep *tStep, char ch, ValueModeType mode, double scale = 1.0);
328 virtual void printMultipleOutputAt(FILE *File, TimeStep *tStep, char *ch, ValueModeType *mode, int nite);
329 void printSingleOutputWithAdditionAt(FILE *File, TimeStep *tStep, char ch, ValueModeType mode, double addend);
331 virtual void printYourself();
336 virtual void updateYourself(TimeStep *tStep) { }
366 virtual void updateUnknownsDictionary(TimeStep *tStep, ValueModeType mode, double dofValue) { }
373 virtual double giveUnknownsDictionaryValue(TimeStep *tStep, ValueModeType mode) { return 0; }
374
376 std :: string errorInfo(const char *func) const;
378 virtual void saveContext(DataStream &stream, ContextMode mode);
380 virtual void restoreContext(DataStream &stream, ContextMode mode);
382 virtual void setBcId(int bcId) { }
384 virtual void setIcId(int icId) { }
385
390 virtual void setEquationNumber(int equationNumber) { }
391
396 virtual void setUnknowns(Dictionary *unknowns) { }
401 virtual Dictionary *giveUnknowns() { return NULL; }
402
407 virtual int giveEqn() { return 0; }
408
421 virtual int packUnknowns(DataStream &buff, ValueModeType mode, TimeStep *tStep)
422 { return 1; }
423
441 ValueModeType mode, TimeStep *tStep) { return 1; }
442
443protected:
448 virtual BoundaryCondition *giveBc() { return NULL; }
453 virtual InitialCondition *giveIc() { return NULL; }
454
455 friend class SimpleSlaveDof;
456};
457} // end namespace oofem
458#endif // dof_h
virtual int giveNumberOfPrimaryMasterDofs()
Definition dof.h:252
virtual void setUnknowns(Dictionary *unknowns)
Definition dof.h:396
virtual double giveUnknown(PrimaryField &field, ValueModeType mode, TimeStep *tStep)=0
virtual bool hasIc()=0
DofIDItem dofID
Physical meaning of DOF.
Definition dof.h:99
void setDofID(DofIDItem id)
Definition dof.h:280
friend class SimpleSlaveDof
Definition dof.h:455
virtual void giveMasterDofManArray(IntArray &answer)
Definition dof.C:180
virtual void giveEquationNumbers(IntArray &masterEqNumbers, const UnknownNumberingScheme &s)
Definition dof.C:61
virtual int askNewEquationNumber(TimeStep *tStep)=0
DofIDItem giveDofID() const
Definition dof.h:276
Dof(DofManager *aNode, DofIDItem id=Undef)
Definition dof.C:50
virtual int packUnknowns(DataStream &buff, ValueModeType mode, TimeStep *tStep)
Definition dof.h:421
virtual void updateUnknownsDictionary(TimeStep *tStep, ValueModeType mode, double dofValue)
Definition dof.h:366
virtual int __giveEquationNumber() const =0
virtual double giveUnknown(ValueModeType mode, TimeStep *tStep)=0
DofManager * dofManager
Link to related DofManager.
Definition dof.h:97
virtual void giveUnknowns(FloatArray &masterUnknowns, ValueModeType mode, TimeStep *tStep)
Definition dof.C:159
virtual dofType giveDofType()=0
Returns the type of the receiver.
virtual Dictionary * giveUnknowns()
Definition dof.h:401
DofManager * giveDofManager() const
Definition dof.h:123
virtual void setIcId(int icId)
Overwrites the initial condition id (0-inactive IC).
Definition dof.h:384
virtual void updateLocalNumbering(EntityRenumberingFunctor &f)
Definition dof.h:315
virtual bool isPrimaryDof()
Definition dof.h:287
virtual void computeDofTransformation(FloatArray &masterContribs)
Definition dof.C:173
virtual void setEquationNumber(int equationNumber)
Definition dof.h:390
virtual ~Dof()
Destructor.
Definition dof.h:112
virtual int __givePrescribedEquationNumber()=0
virtual int giveIcId()=0
virtual int unpackAndUpdateUnknown(DataStream &buff, ValueModeType mode, TimeStep *tStep)
Definition dof.h:440
virtual void updateYourself(TimeStep *tStep)
Definition dof.h:336
virtual double giveUnknownsDictionaryValue(TimeStep *tStep, ValueModeType mode)
Definition dof.h:373
virtual bool hasIcOn(ValueModeType u)=0
virtual bool hasBc(TimeStep *tStep)=0
virtual int giveEqn()
Definition dof.h:407
virtual BoundaryCondition * giveBc()
Definition dof.h:448
virtual void giveDofIDs(IntArray &masterDofIDs)
Definition dof.C:67
virtual void setBcId(int bcId)
Overwrites the boundary condition id (0-inactive BC), intended for specific purposes such as coupling...
Definition dof.h:382
virtual const char * giveClassName() const
Returns class name of the receiver.
Definition dof.h:117
virtual InitialCondition * giveIc()
Definition dof.h:453
virtual int giveBcId()=0
long ContextMode
Definition contextmode.h:43
std::string errorInfo(const char *func)
Definition error.C:47
dofType
Dof Type, determines the type of DOF created.
Definition doftype.h:48
#define OOFEM_EXPORT
Definition oofemcfg.h:7

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