OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
ortholinearelasticmaterial.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 ortholinearelasticmaterial_h
36 #define ortholinearelasticmaterial_h
37 
39 #include "dictionary.h"
40 #include "floatarray.h"
41 #include "floatmatrix.h"
42 #include "matconst.h"
43 #include "element.h"
44 
46 
47 #define _IFT_OrthotropicLinearElasticMaterial_Name "orthole"
48 #define _IFT_OrthotropicLinearElasticMaterial_ex "ex"
49 #define _IFT_OrthotropicLinearElasticMaterial_ey "ey"
50 #define _IFT_OrthotropicLinearElasticMaterial_ez "ez"
51 #define _IFT_OrthotropicLinearElasticMaterial_nyyz "nyyz"
52 #define _IFT_OrthotropicLinearElasticMaterial_nyxz "nyxz"
53 #define _IFT_OrthotropicLinearElasticMaterial_nyxy "nyxy"
54 #define _IFT_OrthotropicLinearElasticMaterial_gyz "gyz"
55 #define _IFT_OrthotropicLinearElasticMaterial_gxz "gxz"
56 #define _IFT_OrthotropicLinearElasticMaterial_gxy "gxy"
57 #define _IFT_OrthotropicLinearElasticMaterial_talphax "talphax"
58 #define _IFT_OrthotropicLinearElasticMaterial_talphay "talphay"
59 #define _IFT_OrthotropicLinearElasticMaterial_talphaz "talphaz"
60 #define _IFT_OrthotropicLinearElasticMaterial_lcs "lcs"
61 #define _IFT_OrthotropicLinearElasticMaterial_scs "scs"
62 
63 
64 namespace oofem {
65 class GaussPoint;
66 
68 enum CS_type {
71 
81 };
82 
101 {
102 protected:
106  // in localCoordinateSystem the unity vectors are stored
107  // COLUMWISE (this is exception, but allows faster numerical
108  // implementation)
109 
110 public:
111 
113  {
114  localCoordinateSystem = NULL;
115  helpPlaneNormal = NULL;
116  cs_type = unknownCS;
117  }
119  {
120  if ( localCoordinateSystem ) {
121  delete localCoordinateSystem;
122  }
123 
124  if ( helpPlaneNormal ) {
125  delete helpPlaneNormal;
126  }
127  }
128 
129  virtual void giveThermalDilatationVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep);
130 
131  // identification and auxiliary functions
132  virtual const char *giveInputRecordName() const { return _IFT_OrthotropicLinearElasticMaterial_Name; }
133  virtual const char *giveClassName() const { return "OrthotropicLinearElasticMaterial"; }
135  void giveInputRecord(DynamicInputRecord &input);
136  virtual double give(int aProperty, GaussPoint *gp);
137 
138  virtual void give3dMaterialStiffnessMatrix(FloatMatrix &answer,
139  MatResponseMode mode, GaussPoint *gp,
140  TimeStep *tStep);
141 
143  virtual void give3dLocalMaterialStiffnessMatrix(FloatMatrix &answer,
144  MatResponseMode mode, GaussPoint *gp,
145  TimeStep *tStep);
146 
147 protected:
149  void giveRotationMatrix(FloatMatrix &answer, GaussPoint *gp);
150 
151  friend class CrossSection;
152 };
153 } // end namespace oofem
154 #endif // ortholinearelasticmaterial_h
coordinate system of principal axes is specified in shell coordinate system this is defined as follow...
This class implements a orthotropic linear elastic material in a finite element problem.
virtual void giveThermalDilatationVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Returns a vector of coefficients of thermal dilatation in direction of each material principal (local...
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Class and object Domain.
Definition: domain.h:115
#define _IFT_OrthotropicLinearElasticMaterial_Name
virtual void give3dMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Computes full 3d material stiffness matrix at given integration point, time, respecting load history ...
Defines several material constant (respective their representative number).
Coordinate system of principal axes is specified in global coordinate system (general).
MatResponseMode
Describes the character of characteristic material matrix.
This class is a abstract base class for all linear elastic material models in a finite element proble...
void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
Base abstract class representing cross section in finite element mesh.
Definition: crosssection.h:107
void giveTensorRotationMatrix(FloatMatrix &answer, GaussPoint *gp)
void giveRotationMatrix(FloatMatrix &answer, GaussPoint *gp)
virtual double give(int aProperty, GaussPoint *gp)
Returns the value of material property 'aProperty'.
Class representing vector of real numbers.
Definition: floatarray.h:82
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
Class representing the general Input Record.
Definition: inputrecord.h:101
Class representing the a dynamic Input Record.
CS_type
Coordinate system type.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void give3dLocalMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Computes local 3d stiffness matrix of the receiver.
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
Unknown coordinate system.

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