OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
trabbonenlembed.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 trabbonenlembed_h
36 #define trabbonenlembed_h
37 
38 #include "trabboneembed.h"
41 #include "cltypes.h"
42 
44 
45 #define _IFT_TrabBoneNLEmbed_Name "trabbonenlembed"
46 #define _IFT_TrabBoneNLEmbed_r "r"
47 #define _IFT_TrabBoneNLEmbed_m "m"
48 
49 
50 namespace oofem {
51 class GaussPoint;
52 
57 {
58 protected:
61 
62 public:
63  TrabBoneNLEmbedStatus(int n, Domain * d, GaussPoint * g);
64  virtual ~TrabBoneNLEmbedStatus();
65 
66  virtual void printOutputAt(FILE *file, TimeStep *tStep);
67 
71  void setLocalCumPlastStrainForAverage(double ls) { localCumPlastStrainForAverage = ls; }
72 
73  // definition
74  virtual const char *giveClassName() const { return "TrabBoneNLEmbedStatus"; }
75 
76  virtual void initTempStatus();
77  virtual void updateYourself(TimeStep *tStep);
78 
79  virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj = NULL);
80  virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj = NULL);
81 
83 };
84 
89 {
90 protected:
91  double R;
92  double mParam;
93 
94 public:
95  TrabBoneNLEmbed(int n, Domain * d);
96  virtual ~TrabBoneNLEmbed();
97 
98  virtual const char *giveClassName() const { return "TrabBoneNLEmbed"; }
99  virtual const char *giveInputRecordName() const { return _IFT_TrabBoneNLEmbed_Name; }
100 
102  virtual void giveInputRecord(DynamicInputRecord &input);
103 
105 
106  virtual void computeCumPlastStrain(double &alpha, GaussPoint *gp, TimeStep *tStep);
107 
108  virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &strainVector, TimeStep *tStep);
109 
110  void computeLocalCumPlastStrain(double &alpha, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
111  {
112  TrabBoneEmbed :: computeCumPlastStrain(alpha, gp, tStep);
113  }
114 
115  virtual void updateBeforeNonlocAverage(const FloatArray &strainVector, GaussPoint *gp, TimeStep *tStep);
116  virtual double computeWeightFunction(const FloatArray &src, const FloatArray &coord);
117 
118  virtual int hasBoundedSupport() { return 1; }
119 
121  virtual void giveSupportRadius(double &radius) { radius = this->R; }
122 
123 protected:
125 };
126 } // end namespace oofem
127 #endif
Abstract base class for all nonlocal structural materials.
virtual const char * giveClassName() const
GaussPoint * gp
Associated integration point.
Class and object Domain.
Definition: domain.h:115
Domain * domain
Link to domain object, useful for communicating with other FEM components.
Definition: femcmpnn.h:82
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
virtual int hasBoundedSupport()
Determines, whether receiver has bounded weighting function (limited support).
void setLocalCumPlastStrainForAverage(double ls)
Sets the local cumulative plastic strain.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
Definition: femcmpnn.C:77
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.
virtual const char * giveClassName() const
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
virtual MaterialStatus * CreateStatus(GaussPoint *gp) const
Creates new copy of associated status and inserts it into given integration point.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: matstatus.h:140
#define _IFT_TrabBoneNLEmbed_Name
This class implements associated Material Status to TrabBoneEmbed.
Definition: trabboneembed.h:58
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
TrabBoneNLEmbedStatus(int n, Domain *d, GaussPoint *g)
virtual const char * giveInputRecordName() const
Abstract base class representing a material status information.
Definition: matstatus.h:84
Trabecular bone nonlocal material status.
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
FloatArray strainVector
Equilibrated strain vector in reduced form.
Definition: structuralms.h:69
Trabecular bone embedding material model.
Definition: trabboneembed.h:98
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
virtual void computeCumPlastStrain(double &alpha, GaussPoint *gp, TimeStep *tStep)
Definition: trabboneembed.C:49
Class representing the general Input Record.
Definition: inputrecord.h:101
Base class for all nonlocal structural material statuses.
Class Interface.
Definition: interface.h:82
Class representing the a dynamic Input Record.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Definition: contextmode.h:43
InterfaceType
Enumerative type, used to identify interface type.
Definition: interfacetype.h:43
virtual void giveSupportRadius(double &radius)
Determines the width (radius) of limited support of weighting function.
the oofem namespace is to define a context or scope in which all oofem names are defined.
void computeLocalCumPlastStrain(double &alpha, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
double localCumPlastStrainForAverage
Equivalent strain for averaging.
Trabecular bone nonlocal material.
double giveLocalCumPlastStrainForAverage()
Gives the local cumulative plastic strain.

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