muMECH  1.0
esuf_Sphere.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 //
9 // name: eshelbySoluUniformFieldSphere.h
10 // author(s): Jan Novak, Lukasz Kaczmarczyk
11 // language: C, C++
12 // license: This program is free software; you can redistribute it and/or modify
13 // it under the terms of the GNU Lesser General Public License as published by
14 // the Free Software Foundation; either version 2 of the License, or
15 // (at your option) any later version.
16 //
17 // This program is distributed in the hope that it will be useful,
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU Lesser General Public License for more details.
21 //
22 // You should have received a copy of the GNU Lesser General Public License
23 // along with this program; if not, write to the Free Software
24 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 //********************************************************************************************************
32 #ifndef MUMECH_ESHELBY_SOLU_UNIFORM_FIELD_SPHERE_H
33 #define MUMECH_ESHELBY_SOLU_UNIFORM_FIELD_SPHERE_H
34 
35 #include "esuf.h"
36 #include"types.h"
37 
38 namespace mumech {
39 
42 {
43  public:
48 
49 
50  //******************************************************************************************************
51  // Function gives a component of the Eshelby tensor
52  double giveEshelbyTensCompUniformField( EshelbyTensComponent flag, double nu, double a );
53  //******************************************************************************************************
54  // Function initialize an 1D array by Eshelby tensor components
55  void eshelbyTensUniformField (double eshTens[12], const double sort_a[3], const double eSInt[13]);
56 
57  //******************************************************************************************************
58  // Function gives the inverse of the Eshelby tensor
59  void giveEshelbyTensorInverse(double SInv[12], const double S[] );
60  //******************************************************************************************************
61  // Function gives D_ijkl(x) generalized Eshelby's tensor. Function requiers "constructor1".
62  void giveDijkl(double D[12], const double S[], const double J[], const double dJi[], const double dJij[],
63  const double ddJi[], const double ddJij[], const double sort_a[3], const double x[]);
64 
65  protected:
66 
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  //******************************************************************************************************
74  //Function gives the displacement perturbation tensor of internal fields.
75  //Function requiers "constructor2"!
76  void giveLijkINT(double Lint[18], const double J[13], const double a[3], const double x[3]);
77  //******************************************************************************************************
78 
79  //******************************************************************************************************
80  //Function gives S_ijkl(x) position dependent Eshelby's tensor. (This is not the strain perturbation
81  //tensor! Just its part ). The returned members of the S_ijkl matrix are in tensorial (theoretical)
82  //notation!
83  void giveSijkl(double S[36], const double J[], const double sort_a[], double nu , bool newFormulation);
84  //******************************************************************************************************
85 
86 };
87 
88 } // end of namespace mumech
89 
90 #endif
91 
92 /*end of file*/
Class eshelbySoluUniformField.
virtual ~eshelbySoluUniformFieldSphere()
Destructor.
Definition: esuf_Sphere.h:47
file of various types and symbolic constant definitions
eshelbySoluUniformFieldSphere(const InclusionRecord3D *i)
Constructor.
Definition: esuf_Sphere.h:45
double nu
nu of matrix
Definition: esuf.h:51
void giveDijkl(double D[12], const double S[], const double J[], const double dJi[], const double dJij[], const double ddJi[], const double ddJij[], const double sort_a[3], const double x[])
3D inclusion record.
Definition: inclusion.h:278
void eshelbyTensUniformField(double eshTens[12], const double sort_a[3], const double eSInt[13])
Definition: esuf_Sphere.cpp:93
Return the Eshelby solution of a spherical inclusion loaded by the uniform strain/stress field...
Definition: esuf_Sphere.h:41
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
void giveSijkl(double S[36], const double J[], const double sort_a[], double nu, bool newFormulation)
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])
void giveLijkINT(double Lint[18], const double J[13], const double a[3], const double x[3])
void giveEshelbyTensorInverse(double SInv[12], const double S[])
double giveEshelbyTensCompUniformField(EshelbyTensComponent flag, double nu, double a)
Definition: esuf_Sphere.cpp:60