muMECH  1.0
esei_EllipticCylinder.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 //
9 // name: eshelbySoluEllipticIntegralsEllipticCylinder.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_ELLIPTIC_CYLINDER_H
32 #define MUMECH_ESHELBY_SOLU_ELLIPTIC_INTEGRALS_ELLIPTIC_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 elliptic cylinder (Mura, p.80)
65  // For internal fields: lambda = 0
66  // For external fields: lambda != 0
67  double I2(double a1, double a2, double lambda);
68  double I3(double a1, double a2, double lambda);
69  double I22(double a1, double I2, double I3, double I23, double lambda);
70  double I23(double a1, double a2, double I2, double I3);
71  double I33(double a2, double I2, double I3, double I23, double lambda);
72 
73 };
74 
75 } // end of namespace mumech
76 
77 #endif
78 
79 /*end of file*/
double I3(double a1, double a2, double lambda)
file of various types and symbolic constant definitions
Class of the functions calculating the values of elliptic integrals and its derivatives of elliptic c...
eshelbySoluEllipticIntegralsEllipticCylinder(const InclusionRecord3D *i)
Constructor.
double I33(double a2, double I2, double I3, double I23, double lambda)
double I2(double a1, double a2, double lambda)
Class eshelbySoluEllipticIntegrals.
3D inclusion record.
Definition: inclusion.h:278
Single Point data structure - contribution from Single inclusion.
Definition: matrix.h:133
double I23(double a1, double a2, double I2, double I3)
void giveDerivativesOfEllipticIntegrals(Point *point, bool intpoint)
Function gives the values of Ferers-Dyson&#39;s elliptic integral derivatives of the inclusion this->I...
double getLambda(const double a[3], double x1, double x2, double x3)
Returns lambda for a given point (x1, x2, x3)
Class of the functions calculating the values of elliptic integrals and its derivatives.
Definition: esei.h:42
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.
double I22(double a1, double I2, double I3, double I23, double lambda)