31 #ifndef MUMECH_ESHELBY_SOLU_ELLIPTIC_INTEGRALS_ELLIPSOID_H 32 #define MUMECH_ESHELBY_SOLU_ELLIPTIC_INTEGRALS_ELLIPSOID_H 80 double eI(
double a[3],
double k,
double Theta,
double mult );
83 double I1(
const double a[3],
double k,
double Theta,
double mult );
86 double I2(
double I1,
double I3,
double lambda,
double mult,
double Dla,
bool intpoint);
89 double I3(
const double a[3],
double k,
double Theta,
double lambda,
double mult,
bool intpoint);
92 double I11(
const double a[3],
double I12,
double I13,
double lambda,
double mult,
double Dla,
bool intpoint);
95 double I12(
const double a[3],
double I1,
double I2 );
98 double I13(
const double a[3],
double I1,
double I3 );
101 double I22(
const double a[3],
double I21,
double I23,
double lambda,
double mult,
double Dla,
bool intpoint );
104 double I23(
const double a[3],
double I2,
double I3 );
107 double I33(
const double a[3],
double I32,
double I31,
double lambda,
double mult,
double Dla,
bool intpoint);
112 void give_Ii_and_Iij(
double J[13],
const double sort_a[3],
double lambda );
149 void give_dIi(
double dJi[9],
const double sort_a[3],
const double x[3],
aLambda aLa );
152 void give_dIij(
double dJij[27],
const double sort_a[3],
const double x[3],
aLambda aLa );
155 void give_ddIi(
double ddJi[27],
const double sort_a[3],
const double x[3],
aLambda aLa );
158 void give_ddIij(
double ddJi[27],
const double sort_a[3],
const double x[3],
aLambda aLa );
166 std::complex<double>
cIi_i(
const double a[3], std::complex<double> la, std::complex<double> Dla,
170 std::complex<double>
cIij_i(
const double a[3], std::complex<double> la, std::complex<double> Dla,
180 void give_cdIi(
double RedJi[9],
double ImdJi[27],
const double sort_a[3],
cLambda CLa );
185 void give_cdIij(
double RedJij[27],
double ImdJij[81],
const double sort_a[3],
cLambda CLa );
189 void give_cddIi(
double ddJi[27],
double ImdJi[27] );
193 void give_cddIij(
double ddJij[81],
double ImdJij[81] );
205 double nIi_i(
const double a[3],
double la,
double Dla,
double dla_i,
double mult,
209 double nIij_i(
const double a[3],
double la,
double Dla,
double dla_i,
double mult,
214 void give_ndIi(
double dJi[9],
double ddJih[27],
const double sort_a[3],
nLambda nLa );
221 double getLambda(
const double a[3],
double x1,
double x2,
double x3);
double eI(double a[3], double k, double Theta, double mult)
void give_ndIi(double dJi[9], double ddJih[27], const double sort_a[3], nLambda nLa)
double I33(const double a[3], double I32, double I31, double lambda, double mult, double Dla, bool intpoint)
file of various types and symbolic constant definitions
void give_dIi(double dJi[9], const double sort_a[3], const double x[3], aLambda aLa)
double I2(double I1, double I3, double lambda, double mult, double Dla, bool intpoint)
double give_Ip_Derivative(aLambda aLa, derivativeDirection p)
double I12(const double a[3], double I1, double I2)
double give_Iip_Derivative(const double a[3], aLambda aLa, ellipticIntegralComponent component, derivativeDirection p)
double I3(const double a[3], double k, double Theta, double lambda, double mult, bool intpoint)
std::complex< double > cIij_i(const double a[3], std::complex< double > la, std::complex< double > Dla, std::complex< double > cdla_i, double mult, ellipticIntegralComponent component)
virtual ~eshelbySoluEllipticIntegralsEllipsoid()
Destructor.
double give_Iijp_Derivative(const double a[3], aLambda aLa, ellipticIntegralComponent component, derivativeDirection p)
double nIi_i(const double a[3], double la, double Dla, double dla_i, double mult, ellipticIntegralComponent component)
void give_cddIi(double ddJi[27], double ImdJi[27])
ellipticIntegralComponent
Class eshelbySoluEllipticIntegrals.
double I1(const double a[3], double k, double Theta, double mult)
Single Point data structure - contribution from Single inclusion.
void give_cdIi(double RedJi[9], double ImdJi[27], const double sort_a[3], cLambda CLa)
double I11(const double a[3], double I12, double I13, double lambda, double mult, double Dla, bool intpoint)
double I23(const double a[3], double I2, double I3)
double giveEllipticIntegralFirstDerivative(const double a[3], const double x[3], aLambda aLa, ellipticIntegralComponent component, derivativeDirection direction)
void give_ddIi(double ddJi[27], const double sort_a[3], const double x[3], aLambda aLa)
double giveEllipticIntegralSeccondDerivative(const double a[3], const double x[3], aLambda aLa, ellipticIntegralComponent component, derivativeDirection direction_1, derivativeDirection direction_2)
void giveDerivativesOfEllipticIntegrals(Point *point, bool intpoint)
Function gives the values of Ferers-Dyson's elliptic integral derivatives of the inclusion this->I...
double I22(const double a[3], double I21, double I23, double lambda, double mult, double Dla, bool intpoint)
Class of the functions calculating the values of elliptic integrals and its derivatives.
void give_cddIij(double ddJij[81], double ImdJij[81])
double giveEllipticIntegralDerivative(const double a[3], const double x[3], aLambda aLa, ellipticIntegralComponent component, derivativeDirection direction_1, derivativeDirection direction_2)
void give_cdIij(double RedJij[27], double ImdJij[81], const double sort_a[3], cLambda CLa)
void give_ddIij(double ddJi[27], const double sort_a[3], const double x[3], aLambda aLa)
double getLambda(const double a[3], double x1, double x2, double x3)
Returns lambda for a given point (x1, x2, x3)
std::complex< double > cIi_i(const double a[3], std::complex< double > la, std::complex< double > Dla, std::complex< double > cdla_i, double mult, ellipticIntegralComponent component)
void give_Ii_and_Iij(double J[13], const double sort_a[3], double lambda)
double give_Iijpq_Derivative(const double a[3], aLambda aLa, ellipticIntegralComponent component, derivativeDirection p, derivativeDirection q)
double give_Iipq_Derivative(const double a[3], aLambda aLa, ellipticIntegralComponent component, derivativeDirection p, derivativeDirection q)
Class of the functions calculating the values of elliptic integrals and its derivatives of general el...
double I13(const double a[3], double I1, double I3)
double nIij_i(const double a[3], double la, double Dla, double dla_i, double mult, ellipticIntegralComponent component)
void give_dIij(double dJij[27], const double sort_a[3], const double x[3], aLambda aLa)
eshelbySoluEllipticIntegralsEllipsoid(const InclusionRecord3D *i)
Constructor.
void giveEllipticIntegrals(double J[13], double lambda, bool intpoint)
Function gives the values of Ferers-Dyson's elliptic integrals of the inclusion this->I.