OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
structuralinterfacematerialstatus.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 structuralinterfacematerialstatus_h
36 #define structuralinterfacematerialstatus_h
37 
38 #include "matstatus.h"
39 #include "floatarray.h"
40 #include "matstatmapperint.h"
41 #include "floatmatrix.h"
42 
43 namespace oofem {
44 class GaussPoint;
45 class Dictionary;
46 class Domain;
47 
67 {
68 protected:
77 
86 
89 
91 
93 
94 public:
99 
100  virtual void printOutputAt(FILE *file, TimeStep *tStep);
101 
102  virtual void initTempStatus();
103  virtual void updateYourself(TimeStep *tStep);
104 
105  virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj = NULL);
106  virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj = NULL);
107 
109  const FloatArray &giveJump() const { return jump; }
111  const FloatArray &giveTraction() const { return traction; }
113  const FloatArray &giveFirstPKTraction() const { return firstPKTraction; }
115  const FloatMatrix &giveF() const { return F; }
117  const FloatArray &giveTempJump() const { return tempJump; }
119  const FloatArray &giveTempTraction() const { return tempTraction; }
123  const FloatMatrix &giveTempF() const { return tempF; }
125  const FloatArray &giveNormal() const { return mNormalDir; }
129  void letJumpBe(FloatArray v) { jump = std :: move(v); }
131  void letTractionBe(FloatArray v) { traction = std :: move(v); }
133  void letFirstPKTractionBe(FloatArray v) { firstPKTraction = std :: move(v); }
135  void letFBe(FloatMatrix v) { F = std :: move(v); }
137  void letTempTractionBe(FloatArray v) { tempTraction = std :: move(v); }
139  void letTempJumpBe(FloatArray v) { tempJump = std :: move(v); }
141  void letTempFirstPKTractionBe(FloatArray v) { tempFirstPKTraction = std :: move(v); }
143  void letTempFBe(FloatMatrix v) { tempF = std :: move(v); }
145  void letNormalBe(FloatArray iN) { mNormalDir = std :: move(iN); }
147  void letProjectedTractionBe(FloatArray iProjectedTraction) { projectedTraction = std :: move(iProjectedTraction); }
148 
149  virtual const char *giveClassName() const { return "StructuralInterfaceMaterialStatus"; }
150 
152  virtual void copyStateVariables(const MaterialStatus &iStatus);
153  virtual void addStateVariables(const MaterialStatus &iStatus);
154 
155  bool giveNewlyInserted() const {return mNewlyInserted;}
156  void setNewlyInserted(bool iNewlyInserted) {mNewlyInserted = iNewlyInserted;}
157 
158  virtual double giveDamage() { return 0.0; } // no default damage
159  virtual double giveTempDamage() { return 0.0; } // no default damage
160 };
161 } // end namespace oofem
162 #endif // structuralinterfacematerialstatus_h
FloatArray tempJump
Temporary jump (discontinuity)
void letTempFBe(FloatMatrix v)
Assigns tempFVector to given vector v.
FloatMatrix tempF
Temporary deformation gradient in reduced form (to find balanced state)
FloatArray traction
Equilibrated (engineering) traction vector.
Class and object Domain.
Definition: domain.h:115
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
void letFirstPKTractionBe(FloatArray v)
Assigns firstPKTraction to given vector v.
const FloatArray & giveTempTraction() const
Returns the const pointer to receiver's temporary traction vector.
virtual void copyStateVariables(const MaterialStatus &iStatus)
Functions for MaterialStatusMapperInterface.
const FloatArray & giveFirstPKTraction() const
Returns the const pointer to receiver's first Piola-Kirchhoff traction vector.
void letFBe(FloatMatrix v)
Assigns FVector to given vector v.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
void letJumpBe(FloatArray v)
Assigns jump to given vector v.
void letProjectedTractionBe(FloatArray iProjectedTraction)
Assigns projeted traction.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
const FloatMatrix & giveTempF() const
Returns the const pointer to receiver's temporary deformation gradient vector.
void letTempJumpBe(FloatArray v)
Assigns tempJump to given vector v.
FloatMatrix F
Equilibrated deformation gradient in reduced form.
FloatArray tempFirstPKTraction
Temporary first Piola-Kirchhoff traction vector (to find balanced state)
This class implements a structural interface material status information.
const FloatArray & giveJump() const
Returns the const pointer to receiver's jump.
FloatArray jump
Equilibrated jump (discontinuity)
void letTempFirstPKTractionBe(FloatArray v)
Assigns tempFirstPKTraction to given vector v.
Abstract base class representing a material status information.
Definition: matstatus.h:84
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
Class representing vector of real numbers.
Definition: floatarray.h:82
const FloatArray & giveTraction() const
Returns the const pointer to receiver's traction vector.
void letTractionBe(FloatArray v)
Assigns traction to given vector v.
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
FloatArray firstPKTraction
Equilibrated first Piola-Kirchhoff traction vector T.
const FloatArray & giveProjectedTraction() const
Returns the projected traction.
StructuralInterfaceMaterialStatus(int n, Domain *d, GaussPoint *g)
Constructor. Creates new StructuralInterfaceMaterialStatus with number n, belonging to domain d and I...
virtual void addStateVariables(const MaterialStatus &iStatus)
FloatArray mNormalDir
Interface normal direction.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
const FloatArray & giveTempFirstPKTraction() const
Returns the const pointer to receiver's temporary first Piola-Kirchhoff traction vector.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Definition: contextmode.h:43
FloatArray tempTraction
Temporary (engineering) traction vector.
void letTempTractionBe(FloatArray v)
Assigns tempTraction to given vector v.
the oofem namespace is to define a context or scope in which all oofem names are defined.
const FloatArray & giveTempJump() const
Returns the const pointer to receiver's temporary jump.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
const FloatMatrix & giveF() const
Returns the const pointer to receiver's deformation gradient vector.
const FloatArray & giveNormal() const
Returns const reference to normal vector.
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
void letNormalBe(FloatArray iN)
Assigns normal vector.

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:31 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011