muMECH  1.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mumech::eshelbySoluUniformField Class Reference

Class of the functions returning the Eshelby solution of an inclusion of an ellipsoidal shape loaded by the uniform strain/stress field. More...

#include <esuf.h>

Inheritance diagram for mumech::eshelbySoluUniformField:
mumech::eshelbySoluUniformFieldCylinder mumech::eshelbySoluUniformFieldEllipticCylinder mumech::eshelbySoluUniformFieldFlatEllipsoid mumech::eshelbySoluUniformFieldOblateSpheroid mumech::eshelbySoluUniformFieldPenny mumech::eshelbySoluUniformFieldProlateSpheroid mumech::eshelbySoluUniformFieldSphere

Public Member Functions

 eshelbySoluUniformField (const InclusionRecord3D *i)
 Constructor. More...
 
virtual ~eshelbySoluUniformField ()
 Destructor. More...
 
void giveEshelbyStrainOfOnePoint (Point *point)
 Function gives the 'Eshelby' STRAIN field in an arbitrary EXTERNAL point. More...
 
void giveEshelbyFieldsOfOnePoint (Point *point, int lc, int nlc, bool disp, bool strn)
 Function gives the 'Eshelby' STRAIN and DISPLACEMENT field in an arbitrary EXTERNAL point for given load cases. More...
 
void giveEshelbyDisplacementOfOnePoint (double **globPert_displc, const double *coords, int lc, int nlc)
 Function gives the 'Eshelby' DISPLACEMENT field in an arbitrary INTERNAL point for given load cases. More...
 
void giveEshelbyTensor (double S[12], const double eInt[13])
 Function gives the Eshelby tensor of an inclusion of arbitrary shape. More...
 
virtual void giveEshelbyTensorInverse (double SInv[12], const double S[12])
 Function gives the inverse of the Eshelby tensor of an inclusion of arbitrary shape. More...
 
virtual void giveSijkl (double S[36], const double sort_a[3], const double stiffMat[36], int M_partition, int N_partition)
 

Protected Member Functions

void giveEshelbyDisplacementUniformField (double displacement[3], const double pertDispTens[18], const double unifStrain[6])
 Function gives the 'Eshelby' perturbation displacement vector of an arbitrary point of an ellipsoidal inclusion. More...
 
void giveDisplacementPerturbTensor_EXTpoint (Point *point)
 Function gives the Displacement perturbation tensor of a EXTERNAL point with respect to owner inclusion. More...
 
void giveDisplacementPerturbTensor_INTpoint (double L[18], const double x[3])
 Function gives the Displacement perturbation tensor of a INTERNAL point with respect to owner inclusion. More...
 
void giveEshelbyStrainUniformField (double strain[6], const double pertTens[36], const double unifStrain[6])
 Function gives the 'Eshelby' perturbation strain tensor of an arbitrary point of an ellipsoidal inclusion. More...
 
void giveStrainPerturbTensor (Point *point)
 Function gives the strain perturbation tensor of a point with respect to an inclusion of arbitrary shape. More...
 
virtual double eshelbyTensCompUniformField (const double sort_a[3], const double eSInt[13], double nu, EshelbyTensComponent flag)
 
virtual void eshelbyTensUniformField (double eshTens[12], const double sort_a[3], const double eInt[13])
 
virtual void giveDijkl (double D[36], const double S[12], const double J[13], const double dJi[9], const double dJij[27], const double ddJi[27], const double ddJij[81], const double sort_a[3], const double x[3])
 
virtual void giveSijkl (double S[36], const double J[13], const double sort_a[3], double nu, bool newFormulation)
 
void giveLijkEXT (double Lext[18], const double Lint[18], const double dJi[9], const double dJij[27], const double sort_a[3], const double x[3])
 Function gives the displacement perturbation tensor of external fields. More...
 
void giveLijkINT (double Lint[18], const double J[13], const double sort_a[3], const double x[3])
 Function gives the displacement perturbation tensor of internal fields. More...
 

Protected Attributes

const InclusionRecord3DI
 
double nu
 nu of matrix More...
 
double _2nu
 
double _1Plus2nu
 
double _1MinNu
 
double mult
 
double MULT
 
double multTRN
 1./mult More...
 
double _1Min2nu
 
double _2nuMin1
 
double _3Min4nu
 

Detailed Description

Class of the functions returning the Eshelby solution of an inclusion of an ellipsoidal shape loaded by the uniform strain/stress field.

Definition at line 46 of file esuf.h.

Constructor & Destructor Documentation

mumech::eshelbySoluUniformField::eshelbySoluUniformField ( const InclusionRecord3D i)
virtual mumech::eshelbySoluUniformField::~eshelbySoluUniformField ( )
inlinevirtual

Member Function Documentation

double mumech::eshelbySoluUniformField::eshelbyTensCompUniformField ( const double  sort_a[3],
const double  eSInt[13],
double  nu,
EshelbyTensComponent  flag 
)
protectedvirtual
void mumech::eshelbySoluUniformField::eshelbyTensUniformField ( double  eshTens[12],
const double  sort_a[3],
const double  eInt[13] 
)
protectedvirtual
void mumech::eshelbySoluUniformField::giveDijkl ( double  D[36],
const double  S[12],
const double  J[13],
const double  dJi[9],
const double  dJij[27],
const double  ddJi[27],
const double  ddJij[81],
const double  sort_a[3],
const double  x[3] 
)
protectedvirtual
void mumech::eshelbySoluUniformField::giveDisplacementPerturbTensor_EXTpoint ( Point point)
protected

Function gives the Displacement perturbation tensor of a EXTERNAL point with respect to owner inclusion.

Parameters
pointPoint record (data structure of a given point).

Definition at line 910 of file esuf.cpp.

References mumech::Inclusion::a, mumech::Point::dJi, mumech::Point::dJij, mumech::Point::eInt, giveLijkEXT(), giveLijkINT(), I, mumech::Point::L, and mumech::Point::loc_x.

Referenced by giveEshelbyFieldsOfOnePoint(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveDisplacementPerturbTensor_INTpoint ( double  L[18],
const double  x[3] 
)
protected

Function gives the Displacement perturbation tensor of a INTERNAL point with respect to owner inclusion.

Parameters
L[18]Perturbation (Eshelby's-like) displacement tensor to be evaluated and saved.
x[3]Local coordinates of a point.

Definition at line 922 of file esuf.cpp.

References mumech::Inclusion::a, mumech::InclusionRecord3D::eInt, giveLijkINT(), and I.

Referenced by giveEshelbyDisplacementOfOnePoint(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveEshelbyDisplacementOfOnePoint ( double **  globPert_displc,
const double *  coords,
int  lc,
int  nlc 
)

Function gives the 'Eshelby' DISPLACEMENT field in an arbitrary INTERNAL point for given load cases.

This field depends on the presence of an ellipsoidal-like inclusion.

Parameters
globPert_displcResulting displacement vector.
coordsCoordinates of the point.
lcID number of computed load case.

Definition at line 209 of file esuf.cpp.

References giveDisplacementPerturbTensor_INTpoint(), giveEshelbyDisplacementUniformField(), I, mumech::InclusionRecord3D::locEigStrain_LC, mumech::Inclusion::rotateDisplc_L2G(), and mumech::Inclusion::transformCoords_G2L().

Referenced by ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveEshelbyDisplacementUniformField ( double  displacement[3],
const double  pertDispTens[18],
const double  unifStrain[6] 
)
protected

Function gives the 'Eshelby' perturbation displacement vector of an arbitrary point of an ellipsoidal inclusion.

answer = L * unifStrain Solution derived on the basis of Toshio Mura's book (1982).

Parameters
displacement[3]Pointer to array of the displacement vector to be saved.
pertDispTens[18]L_ijkl tensor, i.e. pointer to perturbation displacemtn tensor
unifStrain[6]Uniform "transformation" strain field inside the inclusion domain.

Definition at line 79 of file esuf.cpp.

Referenced by giveEshelbyDisplacementOfOnePoint(), giveEshelbyFieldsOfOnePoint(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveEshelbyFieldsOfOnePoint ( Point point,
int  lc,
int  nlc,
bool  disp,
bool  strn 
)

Function gives the 'Eshelby' STRAIN and DISPLACEMENT field in an arbitrary EXTERNAL point for given load cases.

These fields depend on the presence of an ellipsoidal-like inclusion.

Parameters
pointPoint record (data structure of a given point).
lcID number of first computed load case.
nlcNumber of computed loadcases.
dispYES/NO flag controls computing of displacement fields.
strnYES/NO flag controls computing of strain fields.

Definition at line 162 of file esuf.cpp.

References mumech::Inclusion::a, mumech::Point::D, mumech::Point::displacement, mumech::Point::eInt, mumech::InclusionRecord3D::ellInt, mumech::eshelbySoluEllipticIntegrals::giveDerivativesOfEllipticIntegrals(), giveDisplacementPerturbTensor_EXTpoint(), mumech::eshelbySoluEllipticIntegrals::giveEllipticIntegrals(), giveEshelbyDisplacementUniformField(), giveEshelbyStrainUniformField(), giveEshelbyTensor(), mumech::eshelbySoluLambda::giveLambda(), giveStrainPerturbTensor(), I, mumech::Point::L, mumech::Point::la, mumech::Point::loc_x, mumech::InclusionRecord3D::locEigStrain_LC, mumech::Inclusion::rotateDisplc_L2G(), mumech::Inclusion::rotateStrain_L2G(), mumech::Point::S, mumech::Inclusion::shape, mumech::Point::strain, mumech::Inclusion::transformCoords_G2L(), and mumech::Point::x.

Referenced by ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveEshelbyStrainOfOnePoint ( Point point)
void mumech::eshelbySoluUniformField::giveEshelbyStrainUniformField ( double  strain[6],
const double  pertTens[36],
const double  unifStrain[6] 
)
protected

Function gives the 'Eshelby' perturbation strain tensor of an arbitrary point of an ellipsoidal inclusion.

answer = D * unifStrain Solution adopted from Toshio Mura's book (1982).

Parameters
strain[6]Pointer to array of the strain tensor to be saved
pertTens[36]Pointer to strain perturbation tensor 'D_ijkl'
unifStrain[6]Uniform "transformation" strain field inside the inclusion domain

Definition at line 107 of file esuf.cpp.

Referenced by giveEshelbyFieldsOfOnePoint(), giveEshelbyStrainOfOnePoint(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveEshelbyTensor ( double  S[12],
const double  eInt[13] 
)

Function gives the Eshelby tensor of an inclusion of arbitrary shape.

Parameters
S[12]Eshelby tensor to be calculated
eInt[13]Values of elliptical integrals for lambda = 0, (i.e. internal fields)

Definition at line 225 of file esuf.cpp.

References mumech::Inclusion::a, eshelbyTensUniformField(), and I.

Referenced by giveEshelbyFieldsOfOnePoint(), giveEshelbyStrainOfOnePoint(), mumech::InclusionRecord3D::initialize(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveEshelbyTensorInverse ( double  SInv[12],
const double  S[12] 
)
virtual

Function gives the inverse of the Eshelby tensor of an inclusion of arbitrary shape.

(last edit: 12. 12. 2009)

Parameters
SInv[12]- eshelby tensor to be calculated
S[12]- eshelby tensor

Definition at line 348 of file esuf.cpp.

References mumech::giveInverseMatrix6x6to12().

Referenced by mumech::InclusionRecord3D::initialize(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveLijkEXT ( double  Lext[18],
const double  Lint[18],
const double  dJi[9],
const double  dJij[27],
const double  sort_a[3],
const double  x[3] 
)
protected

Function gives the displacement perturbation tensor of external fields.

(last edit: 15. 07. 2010)

Parameters
Lext[18]Perturbation (generalized Eshelby's) displacement tensor to be evaluated and saved
Lint[18]Perturbation (Eshelby's-like) displacement tensor
dJi[9]first derivatives of Ferers-Dysons' elliptic integrals Ii
dJij[27]first derivatives of Ferers-Dysons' elliptic integrals Iij
sort_a[3]sorted semiaxes' dimensions
x[3]coordinates of a point

Definition at line 938 of file esuf.cpp.

References _111_, _112_, _113_, _122_, _123_, _133_, _211_, _212_, _213_, _222_, _223_, _233_, _311_, _312_, _313_, _322_, _323_, _333_, mumech::CopyVector(), J11_1, J11_2, J11_3, J12_2, J12_3, J13_3, J1_1, J1_2, J1_3, J21_1, J21_2, J21_3, J22_2, J22_3, J23_3, J2_2, J2_3, J31_1, J31_2, J31_3, J32_2, J32_3, J33_3, J3_3, multTRN, SQR, X1, X2, and X3.

Referenced by giveDisplacementPerturbTensor_EXTpoint(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveLijkINT ( double  Lint[18],
const double  J[13],
const double  sort_a[3],
const double  x[3] 
)
protected

Function gives the displacement perturbation tensor of internal fields.

Parameters
Lint[18]Perturbation (Eshelby's-like) displacement tensor to be evaluated and saved
J[13]Ferers-Dysons' elliptic integrals
sort_a[3]sorted semiaxes' dimensions
x[3]coordinates of a point

Definition at line 982 of file esuf.cpp.

References _111_, _112_, _113_, _122_, _123_, _133_, _1Min2nu, _211_, _212_, _213_, _222_, _223_, _233_, _2nu, _311_, _312_, _313_, _322_, _323_, _333_, J1, J11, J12, J13, J2, J21, J22, J23, J3, J31, J32, J33, multTRN, SQR, X1, X2, and X3.

Referenced by giveDisplacementPerturbTensor_EXTpoint(), giveDisplacementPerturbTensor_INTpoint(), and ~eshelbySoluUniformField().

void mumech::eshelbySoluUniformField::giveSijkl ( double  S[36],
const double  sort_a[3],
const double  stiffMat[36],
int  M_partition,
int  N_partition 
)
virtual
void mumech::eshelbySoluUniformField::giveSijkl ( double  S[36],
const double  J[13],
const double  sort_a[3],
double  nu,
bool  newFormulation 
)
protectedvirtual
void mumech::eshelbySoluUniformField::giveStrainPerturbTensor ( Point point)
protected

Function gives the strain perturbation tensor of a point with respect to an inclusion of arbitrary shape.

Parameters
pointPoint record (data structure of a given point)
pointPoint record (data structure of a given point)
sort_a[3]Sorted dimensions of ellipsoidal semiaxes (a1>a2,>a3)
inclGeometryGeometry of inclusion, defined in "eshelbySoluUniformField.h"

Definition at line 366 of file esuf.cpp.

References mumech::Inclusion::a, mumech::Point::D, mumech::Point::ddJi, mumech::Point::ddJij, mumech::Point::dJi, mumech::Point::dJij, mumech::Point::eInt, giveDijkl(), I, mumech::Point::loc_x, and mumech::Point::S.

Referenced by giveEshelbyFieldsOfOnePoint(), giveEshelbyStrainOfOnePoint(), and ~eshelbySoluUniformField().

Member Data Documentation

double mumech::eshelbySoluUniformField::_1Min2nu
protected
double mumech::eshelbySoluUniformField::_1MinNu
protected
double mumech::eshelbySoluUniformField::_1Plus2nu
protected
double mumech::eshelbySoluUniformField::_2nu
protected
double mumech::eshelbySoluUniformField::_2nuMin1
protected
  1. * nu - 1.

Definition at line 59 of file esuf.h.

Referenced by eshelbySoluUniformField().

double mumech::eshelbySoluUniformField::_3Min4nu
protected
  1. - 4. * nu

Definition at line 60 of file esuf.h.

Referenced by eshelbySoluUniformField().

const InclusionRecord3D* mumech::eshelbySoluUniformField::I
protected
double mumech::eshelbySoluUniformField::mult
protected
double mumech::eshelbySoluUniformField::MULT
protected
double mumech::eshelbySoluUniformField::multTRN
protected
double mumech::eshelbySoluUniformField::nu
protected

nu of matrix

Definition at line 51 of file esuf.h.

Referenced by eshelbySoluUniformField(), mumech::eshelbySoluUniformFieldCylinder::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldEllipticCylinder::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldOblateSpheroid::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldPenny::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldProlateSpheroid::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldFlatEllipsoid::eshelbyTensCompUniformField(), eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldEllipticCylinder::eshelbyTensUniformField(), mumech::eshelbySoluUniformFieldCylinder::eshelbyTensUniformField(), mumech::eshelbySoluUniformFieldSphere::eshelbyTensUniformField(), eshelbyTensUniformField(), mumech::eshelbySoluUniformFieldPenny::giveDijkl(), mumech::eshelbySoluUniformFieldOblateSpheroid::giveDijkl(), mumech::eshelbySoluUniformFieldProlateSpheroid::giveDijkl(), mumech::eshelbySoluUniformFieldFlatEllipsoid::giveDijkl(), mumech::eshelbySoluUniformFieldEllipticCylinder::giveDijkl(), mumech::eshelbySoluUniformFieldCylinder::giveDijkl(), mumech::eshelbySoluUniformFieldSphere::giveDijkl(), giveDijkl(), mumech::eshelbySoluUniformFieldSphere::giveEshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldCylinder::~eshelbySoluUniformFieldCylinder(), mumech::eshelbySoluUniformFieldEllipticCylinder::~eshelbySoluUniformFieldEllipticCylinder(), mumech::eshelbySoluUniformFieldFlatEllipsoid::~eshelbySoluUniformFieldFlatEllipsoid(), mumech::eshelbySoluUniformFieldOblateSpheroid::~eshelbySoluUniformFieldOblateSpheroid(), mumech::eshelbySoluUniformFieldPenny::~eshelbySoluUniformFieldPenny(), mumech::eshelbySoluUniformFieldProlateSpheroid::~eshelbySoluUniformFieldProlateSpheroid(), and mumech::eshelbySoluUniformFieldSphere::~eshelbySoluUniformFieldSphere().


The documentation for this class was generated from the following files: