muMECH
1.0
|
Class of function for Mori-Tanaka homogenization. More...
#include <homogenizationMethods.h>
Public Member Functions | |
Dilute (long i, Problem *p) | |
Constructor. More... | |
virtual | ~Dilute () |
Destructor. More... | |
virtual void | giveHomogenizedStiffnessMatrix (double *answer) |
Function returning the homogenized stiffness matrix according the defined method. More... | |
virtual const char * | giveClassName () |
Function returning class name. More... | |
virtual const HomogenizationType | giveClassID () |
Function returning class id. More... | |
![]() | |
Homogenization (long i, Problem *p) | |
Constructor. More... | |
virtual | ~Homogenization () |
Destructor. More... | |
void | set_boundingBox (double x1, double y1, double x2, double y2) |
void | set_boundingBox (double x1, double y1, double z1, double x2, double y2, double z2) |
void | set_boundingBox (const double *p1, const double *p2) |
const double * | give_bb1 (void) const |
const double * | give_bb2 (void) const |
double | giveTotalVolumeFractionOfInclusions (void) const |
void | find_inclusions_in_BB (void) |
Protected Member Functions | |
void | giveDiluteReducedConcentrationFactorOfInclusionInLC (double *answer, double *matrix_inclStiffmat, double *matrixStiffMat, double *matrixComplMat, const long inclusionNumber) |
!!! Everything is calculated in local coordinate system More... | |
void | giveFullDiluteConcentrationFactorOfInclusionInLC (double *answer, double *matrix_inclStiffmat, double *matrixStiffMat, double *matrixComplMat, const long inclusionNumber) |
!!! Everything is calculated in local coordinate system More... | |
![]() | |
Problem * | giveProblem () |
int | giveNumberOfInclusions () const |
ProblemType | giveProblemType () const |
int | giveSizeOfSymVector () |
int | giveSizeOfReducedMatrix () |
int | giveSizeOfFullMatrix () |
double | giveTotalVolume () const |
void | giveFullEshelbyMatrixOfInclusion (double **answer, const long inclusionNumber) |
void | giveReducedEshelbyMatrixOfInclusion (double *answer, const long inclusionNumber) |
void | giveFullStiffnessMatrixOfInclusion (double *answer, const long inclusionNumber) |
void | giveReducedStiffnessMatrixOfInclusion (double *answer, const long inclusionNumber) |
double | giveVolumeFractionOfInclusion (const long inclusionNumber) |
void | giveTransformationMatrixStressStrainG2L (double *answer, const long inclusionNumber) |
answer = full transformation matrix global->local stored row by row More... | |
void | giveTransformationMatrixStressStrainL2G (double *answer, const long inclusionNumber) |
void | giveFullMatrixInGCSFromFullMatrixInLCS (double *answer, double *ALoc, const long inclusionNumber) |
void | giveFullMatrixInLCSFromFullMatrixInGCS (double *answer, double *AGlob, const long inclusionNumber) |
void | giveFullMatrixInGCSFromReducedMatrixInLCS (double *answer, double *ALoc, const long inclusionNumber) |
void | giveInverseOfReducedMatrix (double *answer, const double *rM, ProblemType pT) |
void | giveReducedUnitMatrix (double *answer, ProblemType pT) |
void | giveFullUnitMatrix (double *answer, ProblemType pT) |
void | giveProductOfReducedMatrices (double *answer, double *A, double *B, ProblemType pT) |
void | giveFullMatrixFromReducedMatrix (double *answer, const double *A, ProblemType pT) |
Function returning full matrix stored row by row in vector array. More... | |
void | giveProductOfRegularMatrixReducedMatrix (double *answer, double *A, double *redB, int n, ProblemType pT) |
Function returning full matrix stored row by row in vector array. More... | |
void | giveProductOfReducedMatrixRegularMatrix (double *answer, double *redA, double *B, ProblemType pT, int n) |
Function returning full matrix stored row by row in vector array. More... | |
Additional Inherited Members | |
![]() | |
long | id |
Identification number. More... | |
Problem * | P |
Problem description. More... | |
double | volume |
Total volume of the proble/bounding box. More... | |
double | bb1 [3] |
Coordinates of lower corner of the bounding box. More... | |
double | bb2 [3] |
Coordinates of upper corner of the bounding box. More... | |
bool * | inside |
Flag - inclusion inside of the bounding box. More... | |
Class of function for Mori-Tanaka homogenization.
Definition at line 42 of file homogenizationMethods.h.
|
inline |
Constructor.
Definition at line 46 of file homogenizationMethods.h.
|
inlinevirtual |
Destructor.
Definition at line 48 of file homogenizationMethods.h.
References giveHomogenizedStiffnessMatrix().
|
inlinevirtual |
Function returning class id.
Reimplemented from mumech::Homogenization.
Reimplemented in mumech::DifferentialScheme, and mumech::MoriTanaka.
Definition at line 55 of file homogenizationMethods.h.
References giveDiluteReducedConcentrationFactorOfInclusionInLC(), giveFullDiluteConcentrationFactorOfInclusionInLC(), and mumech::HT_Dilute.
|
inlinevirtual |
Function returning class name.
Reimplemented from mumech::Homogenization.
Reimplemented in mumech::DifferentialScheme, and mumech::MoriTanaka.
Definition at line 53 of file homogenizationMethods.h.
|
protected |
!!! Everything is calculated in local coordinate system
return: concentration factor: answer = [I+S*Cm^{-1}(Ci-Cm)]^{-1} inclusion stiffness matrix - matrix stiffness matrix = matrix_inclStiffmat (Ci_Cm) input: matrixStiffMat = matrix reduced stiffness matrix (Cm) matrixComplMat = matrix reduced compliance matrix (CmInv)
Definition at line 116 of file homogenizationMethods.cpp.
References _errorr, mumech::AddVector(), mumech::AddVectorMultipledBy(), mumech::CopyVector(), mumech::Homogenization::giveInverseOfReducedMatrix(), mumech::Homogenization::giveProblemType(), mumech::Homogenization::giveProductOfReducedMatrices(), mumech::Homogenization::giveReducedEshelbyMatrixOfInclusion(), mumech::Homogenization::giveReducedStiffnessMatrixOfInclusion(), mumech::Homogenization::giveReducedUnitMatrix(), and mumech::Homogenization::giveSizeOfReducedMatrix().
Referenced by giveClassID(), giveHomogenizedStiffnessMatrix(), and mumech::MoriTanaka::giveHomogenizedStiffnessMatrix().
|
protected |
!!! Everything is calculated in local coordinate system
return: concentration factor: answer = [I+S*Cm^{-1}(Ci-Cm)]^{-1} = full matrix (stored row by row) inclusion stiffness matrix - matrix stiffness matrix = matrix_inclStiffmat (Ci_Cm) = full matrix (stored row by row) input: matrixStiffMat = matrix full stiffness matrix (Cm) - assumed to be anisotropic (stored row by row) - should be already rotated to LC of inclusion matrixComplMat = matrix full compliance matrix (CmInv) (stored row by row) - should be already rotated to LC of inclusion
Definition at line 164 of file homogenizationMethods.cpp.
References _errorr, mumech::Inclusion::a, mumech::AddVector(), mumech::AddVectorMultipledBy(), mumech::CopyVector(), mumech::InclusionRecord3D::esuf, mumech::Problem::give_inclusion(), mumech::Homogenization::giveFullStiffnessMatrixOfInclusion(), mumech::Homogenization::giveFullUnitMatrix(), mumech::MatrixOperations::giveInverseMatrix(), mumech::giveMatrixMatrixProduct(), mumech::Homogenization::giveProblemType(), mumech::eshelbySoluUniformField::giveSijkl(), mumech::Homogenization::giveSizeOfFullMatrix(), mumech::Homogenization::P, and mumech::PT_3D.
Referenced by giveClassID(), and mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix().
|
virtual |
Function returning the homogenized stiffness matrix according the defined method.
answer = Cm +Sum_i (ci*(Ci-Cm)*Ai)
Implements mumech::Homogenization.
Reimplemented in mumech::DifferentialScheme, and mumech::MoriTanaka.
Definition at line 49 of file homogenizationMethods.cpp.
References _errorr, _errorr1, mumech::AddVectorMultipledBy(), giveDiluteReducedConcentrationFactorOfInclusionInLC(), mumech::Homogenization::giveFullMatrixFromReducedMatrix(), mumech::Homogenization::giveFullMatrixInGCSFromReducedMatrixInLCS(), mumech::Homogenization::giveInverseOfReducedMatrix(), mumech::Homogenization::giveNumberOfInclusions(), mumech::Homogenization::giveProblemType(), mumech::Homogenization::giveProductOfReducedMatrixRegularMatrix(), mumech::Homogenization::giveSizeOfFullMatrix(), mumech::Homogenization::giveSizeOfReducedMatrix(), mumech::Homogenization::giveVolumeFractionOfInclusion(), mumech::Homogenization::inside, mumech::Problem::matrix_giveReducedStiffMatrix(), and mumech::Homogenization::P.
Referenced by mumech::DifferentialScheme::~DifferentialScheme(), ~Dilute(), mumech::MoriTanaka::~MoriTanaka(), mumech::RegGrid::~RegGrid(), mumech::ReussBound::~ReussBound(), and mumech::VoightBound::~VoightBound().