muMECH  1.0
esei_Cylinder.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 //
9 // name: eshelbySoluEllipticIntegralsCylinder.h
10 // author(s): Jan Novak, Tomas Janda
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 //********************************************************************************************************
31 #ifndef MUMECH_ESHELBY_SOLU_ELLIPTIC_INTEGRALS_CYLINDER_H
32 #define MUMECH_ESHELBY_SOLU_ELLIPTIC_INTEGRALS_CYLINDER_H
33 
34 #include "types.h"
35 #include "esei.h"
36 #include <complex>
37 
38 
39 namespace mumech {
40 
46 {
47  private:
48  bool log;
49 
50  public:
55 
56  //Function gives the the values of all elliptic integrals
57  void giveEllipticIntegrals(double J[13], double lambda, bool intpoint);
58  //Function gives the derivatives of Ferers-Dysons integrals
59  void giveDerivativesOfEllipticIntegrals(Point * point, bool intpoint);
60  // Returns lambda for a given point (x1, x2, x3)
61  double getLambda(const double a[3], double x1, double x2, double x3);
62 
63  private:
64  // Function returning integrals Ii and Iij for cylinder (Mura, p.80)
65  // For internal fields: lambda = 0
66  // For external fields: lambda != 0
67 
68  // I2 = I3 due to the symmetry of cylinder
69  double I2(double a2, double lambda);
70  // I22 = I23 = I33 due to the symmetry of cylinder
71  double I22(double a1, double lambda);
72 
73 };
74 
75 } // end of namespace mumech
76 
77 #endif
78 
79 /*end of file*/
double getLambda(const double a[3], double x1, double x2, double x3)
Returns lambda for a given point (x1, x2, x3)
file of various types and symbolic constant definitions
virtual ~eshelbySoluEllipticIntegralsCylinder()
Destructor.
Definition: esei_Cylinder.h:54
Class of the functions calculating the values of elliptic integrals and its derivatives of circular c...
Definition: esei_Cylinder.h:45
void giveEllipticIntegrals(double J[13], double lambda, bool intpoint)
Function gives the values of Ferers-Dyson&#39;s elliptic integrals of the inclusion this->I.
eshelbySoluEllipticIntegralsCylinder(const InclusionRecord3D *i)
Constructor.
Definition: esei_Cylinder.h:52
Class eshelbySoluEllipticIntegrals.
3D inclusion record.
Definition: inclusion.h:278
Single Point data structure - contribution from Single inclusion.
Definition: matrix.h:133
Class of the functions calculating the values of elliptic integrals and its derivatives.
Definition: esei.h:42
double I2(double a2, double lambda)
void giveDerivativesOfEllipticIntegrals(Point *point, bool intpoint)
Function gives the values of Ferers-Dyson&#39;s elliptic integral derivatives of the inclusion this->I...
double I22(double a1, double lambda)