muMECH  1.0
esei_ProlateSpheroid.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 //
9 // name: eshelbySoluEllipticIntegralsProlateSpheroid.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_PROLATE_SPHEROID_H
32 #define MUMECH_ESHELBY_SOLU_ELLIPTIC_INTEGRALS_PROLATE_SPHEROID_H
33 
34 #include "types.h"
35 #include "esei.h"
36 #include <complex>
37 
38 
39 namespace mumech {
40 
46 {
47  public:
52 
53  //Function gives the the values of all elliptic integrals
54  void giveEllipticIntegrals (double J[13], double lambda, bool intpoint);
55  //Function gives the derivatives of Ferers-Dysons integrals
56  void giveDerivativesOfEllipticIntegrals (Point * point, bool intpoint);
57 
58  private:
59  // Function returning integrals Ii and Iij for prolate spheroid (Mura, p.84)
60  // For internal fields: intpoint == true
61  // For external fields: intpoint == false
62  double eI(double a[3], double k, double Theta, double mult);
63  double I1(double a1, double a3, double I13, double lambda, bool intpoint);
64  double I2(double a1, double a3, double lambda, bool intpoint);
65  double I3(double I2);
66  double I11(double a1, double a3, double I13, double lambda, bool intpoint);
67  double I12(double I3);
68  double I13(double a1, double a3, double I1, double I3);
69  double I22(double I33);
70  double I23(double I33);
71  double I33(double a1, double a3, double I13, double lambda, bool intpoint);
72 
73  // Helper functions
74  double get_b(double a1, double a3, double lambda); // Auxiliary number b (Mura, p.94)
75  double get_d(double a1, double a3, double lambda); // Auxiliary number d (Mura, p.94)
76  double get_delta_lambda(double a1, double a3, double lambda); // Delta lambda (Mura, p.93)
77  double getLambda(const double a[3], double x1, double x2, double x3);
78 };
79 
80 } // end of namespace mumech
81 
82 #endif
83 
84 /*end of file*/
void giveDerivativesOfEllipticIntegrals(Point *point, bool intpoint)
Function gives the values of Ferers-Dyson&#39;s elliptic integral derivatives of the inclusion this->I...
double get_b(double a1, double a3, double lambda)
file of various types and symbolic constant definitions
double I1(double a1, double a3, double I13, double lambda, bool intpoint)
double I11(double a1, double a3, double I13, double lambda, bool intpoint)
Class eshelbySoluEllipticIntegrals.
3D inclusion record.
Definition: inclusion.h:278
double I2(double a1, double a3, double lambda, bool intpoint)
double I33(double a1, double a3, double I13, double lambda, bool intpoint)
Single Point data structure - contribution from Single inclusion.
Definition: matrix.h:133
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 eI(double a[3], double k, double Theta, double mult)
Class of the functions calculating the values of elliptic integrals and its derivatives.
Definition: esei.h:42
double I13(double a1, double a3, double I1, double I3)
double get_d(double a1, double a3, double lambda)
double get_delta_lambda(double a1, double a3, double lambda)
double getLambda(const double a[3], double x1, double x2, double x3)
Returns lambda for a given point (x1, x2, x3)
eshelbySoluEllipticIntegralsProlateSpheroid(const InclusionRecord3D *i)
Constructor.
Class of the functions calculating the values of elliptic integrals and its derivatives of prolate sp...