OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
tet21ghostsolid.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 TET21GHOSTSOLID_H
36 #define TET21GHOSTSOLID_H
37 
38 #include "../sm/Elements/nlstructuralelement.h"
39 #include "floatmatrix.h"
41 #include "spatiallocalizer.h"
43 
44 #define _IFT_tet21ghostsolid_Name "tet21ghostsolid"
45 
46 namespace oofem {
47 class FEI3dTetQuad;
48 class FEI3dTetLin;
49 
54 {
55 private:
61 
62  void giveUnknownData(FloatArray &u_prev, FloatArray &u, FloatArray &inc, TimeStep *tStep);
63 
64 public:
65  tet21ghostsolid(int n, Domain *d);
66 
67  virtual FEInterpolation *giveInterpolation() const;
68  virtual FEInterpolation *giveInterpolation(DofIDItem id) const;
69 
70  virtual void giveDofManDofIDMask(int inode, IntArray &answer) const;
71  virtual const char *giveInputRecordName() const { return _IFT_tet21ghostsolid_Name; }
72  virtual int computeNumberOfDofs() { return 70; }
73  virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep);
74  virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep);
75  virtual MaterialMode giveMaterialMode() { return _3dMat; }
76  virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep);
77  virtual void computeNumericStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep);
78  virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord = 0);
79  virtual void giveInternalForcesVectorGivenSolution(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord, FloatArray &SolutionVector);
80  virtual void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep);
81  virtual void computeBoundarySurfaceLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global=true);
82 
84  virtual void computeDeformationGradientVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep);
85  virtual void computeDeformationGradientVectorAt(FloatArray &answer, FloatArray lcoord, TimeStep *tStep);
86 
87  virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep);
88  virtual double computeVolumeAround(GaussPoint *gp);
89  virtual bool giveRowTransformationMatrix(TimeStep *tStep);
90  virtual const char *giveClassName() const { return "tet21ghostsolid"; }
91 
92  virtual void computeNumericStiffnessMatrixDebug(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep);
93  virtual void giveInternalForcesVectorGivenSolutionDebug(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord, FloatArray &SolutionVector, bool ExtraLogging);
94 
96 
97  // Element interpolation interface:
99  TimeStep *tStep, const FloatArray &coords, FloatArray &answer);
100 
101  // Nodal averaging interface:
103 
104 protected:
107 
108  virtual void computeBmatrixAt(GaussPoint *, FloatMatrix &, int = 1, int = ALL_STRAINS);
109  virtual void computeBHmatrixAt(GaussPoint *, FloatMatrix &);
110  virtual void computeGaussPoints();
111 
118 };
119 }
120 #endif // TET21GHOSTSOLID_H
virtual void computeDeformationGradientVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Computes the deformation gradient in Voigt form at integration point ip and at time step tStep...
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
Class and object Domain.
Definition: domain.h:115
virtual void giveInternalForcesVectorGivenSolutionDebug(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord, FloatArray &SolutionVector, bool ExtraLogging)
Abstract base class for "structural" finite elements with geometrical nonlinearities.
virtual bool giveRowTransformationMatrix(TimeStep *tStep)
virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Computes the stress vector of receiver at given integration point, at time step tStep.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
Class implementing element body load, acting over whole element volume (e.g., the dead weight)...
Definition: bodyload.h:49
Class representing implementation of quadratic tetrahedra interpolation class.
Definition: fei3dtetquad.h:46
Class representing implementation of linear tetrahedra interpolation class.
Definition: fei3dtetlin.h:44
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
Computes the stiffness matrix of receiver.
static IntArray momentum_ordering
Ordering of momentum balance equations in element. Used to assemble the element stiffness.
virtual void computeBmatrixAt(GaussPoint *, FloatMatrix &, int=1, int=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
virtual void computeDeformationGradientVectorFromDispl(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, FloatArray &u)
MaterialMode
Type representing material mode of integration point.
Definition: materialmode.h:89
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
virtual const char * giveInputRecordName() const
Class implementing an array of integers.
Definition: intarray.h:61
MatResponseMode
Describes the character of characteristic material matrix.
virtual void computeDeformationGradientVectorAt(FloatArray &answer, FloatArray lcoord, TimeStep *tStep)
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
virtual void computeBHmatrixAt(GaussPoint *, FloatMatrix &)
Computes a matrix which, multiplied by the column matrix of nodal displacements, gives the displaceme...
Class representing a general abstraction for finite element interpolation class.
Definition: feinterpol.h:132
virtual void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep)
Computes the contribution of the given body load (volumetric).
Abstract base class representing a boundary load (force, momentum, ...) that acts directly on a bound...
Definition: boundaryload.h:110
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
DofIDItem
Type representing particular dof type.
Definition: dofiditem.h:86
static IntArray displacementdofsonside
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
Returns dofmanager dof mask for node.
virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
Evaluates nodal representation of real internal forces.
virtual void EIPrimaryUnknownMI_computePrimaryUnknownVectorAtLocal(ValueModeType u, TimeStep *tStep, const FloatArray &coords, FloatArray &answer)
Computes the element vector of primary unknowns at given point in the local coordinate system...
virtual void computeNumericStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
void giveUnknownData(FloatArray &u_prev, FloatArray &u, FloatArray &inc, TimeStep *tStep)
virtual const char * giveClassName() const
static IntArray conservation_ordering
Ordering of conservation equations in element. Used to assemble the element stiffness.
#define ALL_STRAINS
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual FEInterpolation * giveInterpolation() const
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
static IntArray velocitydofsonside
CharType
Definition: chartype.h:87
#define _IFT_tet21ghostsolid_Name
Class Interface.
Definition: interface.h:82
static FEI3dTetLin interpolation_lin
The spatial localizer element interface associated to spatial localizer.
virtual void computeNumericStiffnessMatrixDebug(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
The element interface class related to Element Interpolation Mappers.
InterfaceType
Enumerative type, used to identify interface type.
Definition: interfacetype.h:43
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void giveInternalForcesVectorGivenSolution(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord, FloatArray &SolutionVector)
static FEI3dTetQuad interpolation
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
tet21ghostsolid(int n, Domain *d)
virtual void computeBoundarySurfaceLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global=true)
Computes the contribution of the given load at the given boundary surface in global coordinate system...
static IntArray ghostdisplacement_ordering
Ordering of ghost displacements equations.
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.

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