OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
trabboneembed.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 - 2013 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 trabboneembed_h
36 #define trabboneembed_h
37 
38 #include "../sm/Materials/structuralmaterial.h"
39 #include "floatarray.h"
40 #include "floatmatrix.h"
41 #include "cltypes.h"
42 #include "matconst.h"
43 #include "matstatus.h"
44 #include "../sm/Materials/structuralms.h"
45 #include "cltypes.h"
46 
48 
49 #define _IFT_TrabBoneEmbed_Name "trabboneembed"
50 #define _IFT_TrabBoneEmbed_eps0 "eps0"
51 #define _IFT_TrabBoneEmbed_nu0 "nu0"
52 
53 
54 namespace oofem {
59 {
60 protected:
61  double tempAlpha, alpha;
62  double tempDam, dam;
63  double tempPSED, psed;
64  double tempTSED, tsed;
67 
68 public:
69  TrabBoneEmbedStatus(int n, Domain * d, GaussPoint * g);
70  virtual ~TrabBoneEmbedStatus();
71 
72  virtual void printOutputAt(FILE *file, TimeStep *tStep);
73 
74  double giveTempTSED();
75 
76  void setTempDam(double da) { tempDam = da; }
77  void setTempTSED(double tse) { tempTSED = tse; }
78  void setTempAlpha(double al) { tempAlpha = al; }
79  void setTempPlasDef(FloatArray epsip) { tempPlasDef = epsip; }
80  void setSmtrx(FloatMatrix smt) { smtrx = smt; }
81 
82  const FloatArray &givePlasDef() const { return plasDef; }
83 
84  // definition
85  virtual const char *giveClassName() const { return "TrabBoneEmbedStatus"; }
86 
87  virtual void initTempStatus();
88  virtual void updateYourself(TimeStep *tStep);
89 
90  virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj = NULL);
91  virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj = NULL);
92 };
93 
94 
99 {
100 protected:
101  double eps0, nu0;
102 
103 public:
104  TrabBoneEmbed(int n, Domain * d);
105 
106  void performPlasticityReturn(GaussPoint *gp, const FloatArray &totalStrain);
107 
108  double computeDamageParam(double alpha, GaussPoint *gp);
109 
110  double computeDamage(GaussPoint *gp, TimeStep *tStep);
111 
112  virtual void computeCumPlastStrain(double &alpha, GaussPoint *gp, TimeStep *tStep);
113 
115  void constructIsoComplTensor(FloatMatrix &answer, const double eps0, const double nu0);
116 
117  virtual void give3dMaterialStiffnessMatrix(FloatMatrix &answer,
119  TimeStep *tStep);
120 
121  virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp,
122  const FloatArray &reducedStrain, TimeStep *tStep);
123 
124  virtual const char *giveInputRecordName() const { return _IFT_TrabBoneEmbed_Name; }
125  virtual const char *giveClassName() const { return "TrabBoneEmbed"; }
126 
128 
129  virtual MaterialStatus *CreateStatus(GaussPoint *gp) const;
130 
131  virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep);
132 };
133 } // end namespace oofem
134 #endif
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
const FloatArray & givePlasDef() const
Definition: trabboneembed.h:82
GaussPoint * gp
Associated integration point.
Class and object Domain.
Definition: domain.h:115
void setTempDam(double da)
Definition: trabboneembed.h:76
virtual const char * giveClassName() const
Definition: trabboneembed.h:85
void setSmtrx(FloatMatrix smt)
Definition: trabboneembed.h:80
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
Defines several material constant (respective their representative number).
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
This class implements a structural material status information.
Definition: structuralms.h:65
void setTempAlpha(double al)
Definition: trabboneembed.h:78
MatResponseMode
Describes the character of characteristic material matrix.
virtual const char * giveInputRecordName() const
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: matstatus.h:140
This class implements associated Material Status to TrabBoneEmbed.
Definition: trabboneembed.h:58
TrabBoneEmbedStatus(int n, Domain *d, GaussPoint *g)
Abstract base class representing a material status information.
Definition: matstatus.h:84
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
Class representing vector of real numbers.
Definition: floatarray.h:82
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
Trabecular bone embedding material model.
Definition: trabboneembed.h:98
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
#define _IFT_TrabBoneEmbed_Name
Definition: trabboneembed.h:49
Class representing the general Input Record.
Definition: inputrecord.h:101
virtual const char * giveClassName() const
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Definition: contextmode.h:43
Abstract base class for all "structural" constitutive models.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
void setTempTSED(double tse)
Definition: trabboneembed.h:77
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
void setTempPlasDef(FloatArray epsip)
Definition: trabboneembed.h:79

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:32 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011