muMECH  1.0
esuf_EllipticCylinder.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 //
9 // name: eshelbySoluUniformEllipticCylinder.h
10 // description: header file of the function returning the Eshelby solution of an elliptic-cylindrical inclusion
11 // loaded by the uniform strain/stress field
12 // author(s): Jan Novak, Tomas Janda
13 
14 // last edit: 14-1-2014
15 // language: C, C++
16 // license: This program is free software; you can redistribute it and/or modify
17 // it under the terms of the GNU Lesser General Public License as published by
18 // the Free Software Foundation; either version 2 of the License, or
19 // (at your option) any later version.
20 //
21 // This program is distributed in the hope that it will be useful,
22 // but WITHOUT ANY WARRANTY; without even the implied warranty of
23 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 // GNU Lesser General Public License for more details.
25 //
26 // You should have received a copy of the GNU Lesser General Public License
27 // along with this program; if not, write to the Free Software
28 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
29 //********************************************************************************************************
30 
31 #ifndef MUMECH_ESHELBY_SOLU_UNIFORM_FIELD_ELLIPTIC_CYLINDER_H
32 #define MUMECH_ESHELBY_SOLU_UNIFORM_FIELD_ELLIPTIC_CYLINDER_H
33 
34 #include "esuf.h"
35 #include "types.h"
36 
37 
38 namespace mumech {
39 
42 {
43  public:
48 
49  //******************************************************************************************************
50  //Function gives a component of the Eshelby tensor
51  double eshelbyTensCompUniformField( const double sort_a[3], const double eInt[13], double nu,
52  EshelbyTensComponent flag );
53  //******************************************************************************************************
54  //Function initialize an 1D array by Eshelby tensor components
55  void eshelbyTensUniformField( double eshTens[12], const double sort_a[3], const double eInt[13]);
56  //******************************************************************************************************
57  //Function gives D_ijkl(x) generalized Eshelby's tensor. Function requiers "constructor2"
58  void giveDijkl( double D[36], const double S[12], const double J[13], const double dJi[9], const double dJij[27],
59  const double ddJi[27], const double ddJij[81], const double sort_a[3], const double x[3]);
60 
61  protected:
62 
63  //******************************************************************************************************
64  //Function gives the displacement perturbation tensor of internal fields.
65  //Function requiers "constructor2"
66  void giveLijkINT( double Lint[18], const double J[13], const double sort_a[3], const double x[3] );
67  //******************************************************************************************************
68  //Function gives the displacement perturbation tensor of external fields.
69  //Function requiers "constructor2"
70  void giveLijkEXT(double Lext[18], const double Lint[18], const double dJi[9], const double dJij[27], const double sort_a[3],
71  const double x[3]);
72  //******************************************************************************************************
73  //Function gives S_ijkl(x) position dependent Eshelby's tensor. (This is not
74  //the strain perturbation tensor! Just its part ). The returned members of the
75  //S_ijkl matrix are in tensorial (theoretical) notation!
76  //Function requiers "constructor2"
77  void giveSijkl( double S[36], const double J[13], const double sort_a[3], double nu, bool newFormulation );
78  //******************************************************************************************************
79 
80 };//end of class declaration
81 
82 } // end of namespace mumech
83 
84 #endif
85 
86 /*end of file*/
Class eshelbySoluUniformField.
void giveLijkINT(double Lint[18], const double J[13], const double sort_a[3], const double x[3])
file of various types and symbolic constant definitions
void giveSijkl(double S[36], const double J[13], const double sort_a[3], double nu, bool newFormulation)
double nu
nu of matrix
Definition: esuf.h:51
void giveDijkl(double D[36], const double S[12], const double J[13], const double dJi[9], const double dJij[27], const double ddJi[27], const double ddJij[81], const double sort_a[3], const double x[3])
void eshelbyTensUniformField(double eshTens[12], const double sort_a[3], const double eInt[13])
3D inclusion record.
Definition: inclusion.h:278
eshelbySoluUniformFieldEllipticCylinder(const InclusionRecord3D *i)
Constructor.
Class of the functions returning the Eshelby solution of an inclusion of an ellipsoidal shape loaded ...
Definition: esuf.h:46
EshelbyTensComponent
Definition: types.h:221
eshelbySoluUniformFieldEllipticCylinder class declaration
void giveLijkEXT(double Lext[18], const double Lint[18], const double dJi[9], const double dJij[27], const double sort_a[3], const double x[3])
double eshelbyTensCompUniformField(const double sort_a[3], const double eInt[13], double nu, EshelbyTensComponent flag)