muMECH  1.0
eshelbySoluLambda.h
Go to the documentation of this file.
1 //********************************************************************************************************
2 // code: ### ### ##### #### ## ##
3 // ## ## ######## ## ## ## ## ##
4 // ## ## ## ## ## ### ## ######
5 // ## ## ## ## ## ## ## ## ##
6 // ##### ## ## ##### #### ## ##
7 // ##
8 // name: eshelbySoluLambda.h
9 // author(s): Jan Novak
10 // language: C, C++
11 // license: This program is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Lesser General Public License as published by
13 // the Free Software Foundation; either version 2 of the License, or
14 // (at your option) any later version.
15 //
16 // This program is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public License
22 // along with this program; if not, write to the Free Software
23 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 //********************************************************************************************************
25 //eshelbySoluLambda class definition
26 
27 #ifndef MUMECH_ESHELBY_LAMBDA_SOLU_H
28 #define MUMECH_ESHELBY_LAMBDA_SOLU_H
29 
30 #include "types.h"
31 #include <ccomplex>
32 
33 namespace mumech {
34 
37 {
38  public:
43 
44  //******************************************************************************************************
45  //Function gives the lambda value, see Mura's book (1982), page 72-73
46  static double giveLambda (const double a[3], const double x[3], InclusionGeometry shape );
47  static double giveLambda (const double a[3], const double x1, const double x2, const double x3, InclusionGeometry shape );
48  //******************************************************************************************************
49  //Function gives generally complex lambda value
50  std::complex<double> giveLambda( const double a[3], std::complex<double> x[3], InclusionGeometry shape );
51  //******************************************************************************************************
52  //Function gives the first or seccond derivative of Lambda
53  double giveLambdaDerivative( const double a[3], const double x[3], double lambda, derivativeDirection direction );
54  //******************************************************************************************************
55  //Function gives the first or seccond derivative of Lambda
56  double giveLambdaDerivative( const double a[3], const double x[3], double lambda, derivativeDirection direction_1,
57  derivativeDirection direction_2 );
58  //******************************************************************************************************
59  //Function gives the first complex derivative of Lambda
60  std::complex<double> c_dLambda( const double a[3], std::complex<double> x[3], std::complex<double> lambda,
61  derivativeDirection direction );
62 
63  protected:
64 
65  //******************************************************************************************************
66  //Function gives the first derivative of Lambda
67  double giveLambdaFirstDerivative( const double a[3], const double x[3], double lambda,
68  derivativeDirection direction );
69  //******************************************************************************************************
70  //Function gives the seccond derivative of Lambda
71  double giveLambdaSeccondDerivative( const double a[3], const double x[3], double lambda,
72  derivativeDirection direction );
73 
74 };//end of class declaration
75 
76 } // end of namespace mumech
77 
78 #endif
79 
80 /*end of file*/
file of various types and symbolic constant definitions
double giveLambdaFirstDerivative(const double a[3], const double x[3], double lambda, derivativeDirection direction)
derivativeDirection
Definition: types.h:208
double giveLambdaDerivative(const double a[3], const double x[3], double lambda, derivativeDirection direction)
static double giveLambda(const double a[3], const double x[3], InclusionGeometry shape)
Class of functions calculating the values of &#39;lambda&#39; parameter and its derivatives.
InclusionGeometry
Inclusion shapes&#39; type.
Definition: types.h:161
double giveLambdaSeccondDerivative(const double a[3], const double x[3], double lambda, derivativeDirection direction)
std::complex< double > c_dLambda(const double a[3], std::complex< double > x[3], std::complex< double > lambda, derivativeDirection direction)