muMECH  1.0
esei_OblateSpheroid.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 //
9 // name: eshelbySoluEllipticIntegralsOblateSpheroid.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_OBLATE_SPHEROID_H
32 #define MUMECH_ESHELBY_SOLU_ELLIPTIC_INTEGRALS_OBLATE_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 oblate spheroid (Mura, p.84)
60  // For internal fields: lambda = 0
61  // For external fields: lambda != 0
62  double eI(double a[3], double k, double Theta, double mult);
63  double I1(double a1, double a3, double lambda, bool intpoint);
64  double I2(double I1);
65  double I3(double a1, double a3, double I1, double lambda, bool intpoint);
66  double I11(double I12);
67  double I12(double a1, double a3, double I13, double lambda, bool intpoint);
68  double I13(double a1, double a3, double I1, double I3);
69  double I22(double I12);
70  double I23(double I13);
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); // Returns lambda for a given point (x1, x2, 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...
file of various types and symbolic constant definitions
Class of the functions calculating the values of elliptic integrals and its derivatives of oblate sph...
double I1(double a1, double a3, double lambda, bool intpoint)
double I13(double a1, double a3, double I1, double I3)
eshelbySoluEllipticIntegralsOblateSpheroid(const InclusionRecord3D *i)
Constructor.
double I12(double a1, double a3, double I13, double lambda, bool intpoint)
Class eshelbySoluEllipticIntegrals.
3D inclusion record.
Definition: inclusion.h:278
double get_b(double a1, double a3, double lambda)
Single Point data structure - contribution from Single inclusion.
Definition: matrix.h:133
double I3(double a1, double a3, double I1, double lambda, bool intpoint)
double get_d(double a1, double a3, double lambda)
double get_delta_lambda(double a1, double a3, double lambda)
Class of the functions calculating the values of elliptic integrals and its derivatives.
Definition: esei.h:42
double getLambda(const double a[3], double x1, double x2, double x3)
Returns lambda for a given point (x1, x2, x3)
double eI(double a[3], double k, double Theta, double mult)
double I33(double a1, double a3, double I13, double lambda, bool intpoint)
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.