muMECH
1.0
|
Class of function for homogenization of stress fields. More...
#include <homogenization.h>
Public Member Functions | |
Homogenization (long i, Problem *p) | |
Constructor. More... | |
virtual | ~Homogenization () |
Destructor. More... | |
virtual void | giveHomogenizedStiffnessMatrix (double *answer)=0 |
Function returning the homogenized stiffness matrix according the defined method termitovo pridat parametr s notaci. More... | |
virtual const char * | giveClassName () |
Function returning class name. More... | |
virtual const HomogenizationType | giveClassID () |
Function returning class id. 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 | |
Problem * | giveProblem () |
Functions to approach Problem Properties | |
int | giveNumberOfInclusions () const |
ProblemType | giveProblemType () const |
int | giveSizeOfSymVector () |
int | giveSizeOfReducedMatrix () |
int | giveSizeOfFullMatrix () |
double | giveTotalVolume () const |
Functions to approach Inclusion Properties | |
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) |
General Functions | |
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... | |
Protected Attributes | |
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 homogenization of stress fields.
Definition at line 46 of file homogenization.h.
mumech::Homogenization::Homogenization | ( | long | i, |
Problem * | p | ||
) |
Constructor.
Definition at line 43 of file homogenization.cpp.
References _errorr, inside, mumech::Problem::noIncl, P, and volume.
|
virtual |
void mumech::Homogenization::find_inclusions_in_BB | ( | void | ) |
Definition at line 83 of file homogenization.cpp.
References bb1, bb2, mumech::Problem::give_inclusion(), inside, mumech::Inclusion::is_inside_of_BB(), mumech::Problem::noIncl, and P.
Referenced by clanek_homog_grid(), and give_bb2().
|
inline |
Definition at line 75 of file homogenization.h.
References bb1.
|
inline |
Definition at line 76 of file homogenization.h.
References bb2, find_inclusions_in_BB(), and giveTotalVolumeFractionOfInclusions().
|
inlinevirtual |
Function returning class id.
Reimplemented in mumech::DifferentialScheme, mumech::RegGrid, mumech::VoightBound, mumech::ReussBound, mumech::MoriTanaka, and mumech::Dilute.
Definition at line 68 of file homogenization.h.
References mumech::HT_Void, and set_boundingBox().
|
inlinevirtual |
Function returning class name.
Reimplemented in mumech::DifferentialScheme, mumech::RegGrid, mumech::VoightBound, mumech::ReussBound, mumech::MoriTanaka, and mumech::Dilute.
Definition at line 66 of file homogenization.h.
Referenced by clanek_homog_grid(), x2D_1I_Ellipse_homog(), and x3D_1I_Ellipsoid_homog().
|
protected |
Definition at line 138 of file homogenization.cpp.
References mumech::Inclusion::give_EshelbyMatrixFull(), mumech::Problem::give_inclusion(), and P.
Referenced by giveProblem().
|
protected |
Function returning full matrix stored row by row in vector array.
full matrix (answer) stored in row by row 1D array
Definition at line 353 of file homogenization.cpp.
References _errorr, mumech::CleanVector(), mumech::MatrixOperations::copy2DeshelbyTensor_reduced2full(), mumech::MatrixOperations::copy3DeshelbyTensor_reduced2full(), giveSizeOfFullMatrix(), mumech::PT_2D, and mumech::PT_3D.
Referenced by giveFullMatrixInGCSFromReducedMatrixInLCS(), mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), giveProblem(), giveProductOfReducedMatrixRegularMatrix(), and giveProductOfRegularMatrixReducedMatrix().
|
protected |
Definition at line 216 of file homogenization.cpp.
References _errorr, mumech::giveMatrixMatrixProduct(), giveSizeOfFullMatrix(), giveTransformationMatrixStressStrainG2L(), and giveTransformationMatrixStressStrainL2G().
Referenced by giveFullMatrixInGCSFromReducedMatrixInLCS(), mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
protected |
Definition at line 197 of file homogenization.cpp.
References _errorr, giveFullMatrixFromReducedMatrix(), giveFullMatrixInGCSFromFullMatrixInLCS(), giveProblemType(), and giveSizeOfFullMatrix().
Referenced by mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
protected |
Definition at line 242 of file homogenization.cpp.
References _errorr, mumech::giveMatrixMatrixProduct(), giveSizeOfFullMatrix(), giveTransformationMatrixStressStrainG2L(), and giveTransformationMatrixStressStrainL2G().
Referenced by mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
protected |
Definition at line 152 of file homogenization.cpp.
References mumech::Problem::give_inclusion(), mumech::Inclusion::give_StiffnessMatrixFull(), and P.
Referenced by mumech::Dilute::giveFullDiluteConcentrationFactorOfInclusionInLC(), and giveProblem().
|
protected |
Definition at line 298 of file homogenization.cpp.
References _errorr, mumech::MatrixOperations::giveUnitSMatrixFull_2d(), mumech::MatrixOperations::giveUnitSMatrixFull_3d(), mumech::PT_2D, and mumech::PT_3D.
Referenced by mumech::Dilute::giveFullDiluteConcentrationFactorOfInclusionInLC(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
pure virtual |
Function returning the homogenized stiffness matrix according the defined method termitovo pridat parametr s notaci.
Implemented in mumech::DifferentialScheme, mumech::RegGrid, mumech::VoightBound, mumech::ReussBound, mumech::MoriTanaka, and mumech::Dilute.
Referenced by clanek_homog_grid(), x2D_1I_Ellipse_homog(), and x3D_1I_Ellipsoid_homog().
|
protected |
Definition at line 270 of file homogenization.cpp.
References _errorr, mumech::giveInverseMatrix3x3to5(), mumech::giveInverseMatrix6x6to12(), mumech::PT_2D, and mumech::PT_3D.
Referenced by mumech::Dilute::giveDiluteReducedConcentrationFactorOfInclusionInLC(), mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
protected |
Definition at line 92 of file homogenization.cpp.
References mumech::Problem::noIncl, and P.
Referenced by mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
inlineprotected |
Definition at line 84 of file homogenization.h.
References giveFullEshelbyMatrixOfInclusion(), giveFullMatrixFromReducedMatrix(), giveFullMatrixInGCSFromFullMatrixInLCS(), giveFullMatrixInGCSFromReducedMatrixInLCS(), giveFullMatrixInLCSFromFullMatrixInGCS(), giveFullStiffnessMatrixOfInclusion(), giveFullUnitMatrix(), giveInverseOfReducedMatrix(), giveNumberOfInclusions(), giveProblemType(), giveProductOfReducedMatrices(), giveProductOfReducedMatrixRegularMatrix(), giveProductOfRegularMatrixReducedMatrix(), giveReducedEshelbyMatrixOfInclusion(), giveReducedStiffnessMatrixOfInclusion(), giveReducedUnitMatrix(), giveSizeOfFullMatrix(), giveSizeOfReducedMatrix(), giveSizeOfSymVector(), giveTotalVolume(), giveTransformationMatrixStressStrainG2L(), giveTransformationMatrixStressStrainL2G(), giveVolumeFractionOfInclusion(), and P.
|
protected |
Definition at line 97 of file homogenization.cpp.
References mumech::Problems::give_twodim(), P, mumech::PT_2D, and mumech::PT_3D.
Referenced by mumech::Dilute::giveDiluteReducedConcentrationFactorOfInclusionInLC(), mumech::Dilute::giveFullDiluteConcentrationFactorOfInclusionInLC(), giveFullMatrixInGCSFromReducedMatrixInLCS(), mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
protected |
Definition at line 310 of file homogenization.cpp.
References _errorr, mumech::CleanVector(), giveSizeOfReducedMatrix(), mumech::PT_2D, and mumech::PT_3D.
Referenced by mumech::Dilute::giveDiluteReducedConcentrationFactorOfInclusionInLC(), and giveProblem().
|
protected |
Function returning full matrix stored row by row in vector array.
Definition at line 396 of file homogenization.cpp.
References _errorr, giveFullMatrixFromReducedMatrix(), mumech::giveMatrixMatrixProduct(), and giveSizeOfFullMatrix().
Referenced by mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
protected |
Function returning full matrix stored row by row in vector array.
Definition at line 377 of file homogenization.cpp.
References _errorr, giveFullMatrixFromReducedMatrix(), mumech::giveMatrixMatrixProduct(), and giveSizeOfFullMatrix().
Referenced by giveProblem().
|
protected |
Definition at line 145 of file homogenization.cpp.
References mumech::Inclusion::give_EshelbyMatrixReduced(), mumech::Problem::give_inclusion(), and P.
Referenced by mumech::Dilute::giveDiluteReducedConcentrationFactorOfInclusionInLC(), and giveProblem().
|
protected |
Definition at line 159 of file homogenization.cpp.
References mumech::Problem::give_inclusion(), mumech::Inclusion::give_StiffnessMatrixReduced(), and P.
Referenced by mumech::Dilute::giveDiluteReducedConcentrationFactorOfInclusionInLC(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), and giveProblem().
|
protected |
Definition at line 286 of file homogenization.cpp.
References _errorr, mumech::MatrixOperations::giveUnitSMatrixReduced_2d(), mumech::MatrixOperations::giveUnitSMatrixReduced_3d(), mumech::PT_2D, and mumech::PT_3D.
Referenced by mumech::Dilute::giveDiluteReducedConcentrationFactorOfInclusionInLC(), and giveProblem().
|
protected |
Definition at line 116 of file homogenization.cpp.
References mumech::Problems::give_VM_TENS_RANGE(), and P.
Referenced by mumech::Dilute::giveFullDiluteConcentrationFactorOfInclusionInLC(), giveFullMatrixFromReducedMatrix(), giveFullMatrixInGCSFromFullMatrixInLCS(), giveFullMatrixInGCSFromReducedMatrixInLCS(), giveFullMatrixInLCSFromFullMatrixInGCS(), mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix(), giveProblem(), giveProductOfReducedMatrixRegularMatrix(), and giveProductOfRegularMatrixReducedMatrix().
|
protected |
Definition at line 110 of file homogenization.cpp.
References mumech::Problems::give_ISO_C_RANGE(), and P.
Referenced by mumech::Dilute::giveDiluteReducedConcentrationFactorOfInclusionInLC(), mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), giveProblem(), and giveProductOfReducedMatrices().
|
protected |
Definition at line 104 of file homogenization.cpp.
References mumech::Problems::give_VM_TENS_RANGE(), and P.
Referenced by giveProblem().
|
protected |
Definition at line 122 of file homogenization.cpp.
References bb1, bb2, mumech::Problems::give_twodim(), P, and volume.
Referenced by giveProblem(), giveTotalVolumeFractionOfInclusions(), and giveVolumeFractionOfInclusion().
double mumech::Homogenization::giveTotalVolumeFractionOfInclusions | ( | void | ) | const |
Definition at line 172 of file homogenization.cpp.
References mumech::Inclusion::give_volume(), giveTotalVolume(), mumech::Problem::inclusions, inside, mumech::Problem::noIncl, and P.
Referenced by clanek_homog_grid(), give_bb2(), x2D_1I_Ellipse_homog(), and x3D_1I_Ellipsoid_homog().
|
protected |
answer = full transformation matrix global->local stored row by row
Definition at line 185 of file homogenization.cpp.
References mumech::Problem::give_inclusion(), mumech::Inclusion::give_TeMatrix_G2L(), and P.
Referenced by giveFullMatrixInGCSFromFullMatrixInLCS(), giveFullMatrixInLCSFromFullMatrixInGCS(), and giveProblem().
|
protected |
Definition at line 191 of file homogenization.cpp.
References mumech::Problem::give_inclusion(), mumech::Inclusion::give_TeMatrix_L2G(), and P.
Referenced by giveFullMatrixInGCSFromFullMatrixInLCS(), giveFullMatrixInLCSFromFullMatrixInGCS(), and giveProblem().
|
protected |
Definition at line 165 of file homogenization.cpp.
References mumech::Problem::give_inclusion(), mumech::Inclusion::give_volume(), giveTotalVolume(), and P.
Referenced by mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix(), and giveProblem().
void mumech::Homogenization::set_boundingBox | ( | double | x1, |
double | y1, | ||
double | x2, | ||
double | y2 | ||
) |
Definition at line 62 of file homogenization.cpp.
References bb1, bb2, mumech::Problem::check_dim(), and P.
Referenced by clanek_homog_grid(), giveClassID(), x2D_1I_Ellipse_homog(), and x3D_1I_Ellipsoid_homog().
void mumech::Homogenization::set_boundingBox | ( | double | x1, |
double | y1, | ||
double | z1, | ||
double | x2, | ||
double | y2, | ||
double | z2 | ||
) |
Definition at line 69 of file homogenization.cpp.
References bb1, bb2, mumech::Problem::check_dim(), and P.
void mumech::Homogenization::set_boundingBox | ( | const double * | p1, |
const double * | p2 | ||
) |
Definition at line 76 of file homogenization.cpp.
|
protected |
Coordinates of lower corner of the bounding box.
Definition at line 52 of file homogenization.h.
Referenced by find_inclusions_in_BB(), give_bb1(), mumech::RegGrid::giveHomogenizedStiffnessMatrix(), giveTotalVolume(), and set_boundingBox().
|
protected |
Coordinates of upper corner of the bounding box.
Definition at line 53 of file homogenization.h.
Referenced by find_inclusions_in_BB(), give_bb2(), mumech::RegGrid::giveHomogenizedStiffnessMatrix(), giveTotalVolume(), and set_boundingBox().
|
protected |
Identification number.
Definition at line 49 of file homogenization.h.
|
protected |
Flag - inclusion inside of the bounding box.
Definition at line 54 of file homogenization.h.
Referenced by find_inclusions_in_BB(), mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), giveTotalVolumeFractionOfInclusions(), Homogenization(), and ~Homogenization().
|
protected |
Problem description.
Definition at line 50 of file homogenization.h.
Referenced by find_inclusions_in_BB(), mumech::Dilute::giveFullDiluteConcentrationFactorOfInclusionInLC(), giveFullEshelbyMatrixOfInclusion(), giveFullStiffnessMatrixOfInclusion(), mumech::Dilute::giveHomogenizedStiffnessMatrix(), mumech::MoriTanaka::giveHomogenizedStiffnessMatrix(), mumech::ReussBound::giveHomogenizedStiffnessMatrix(), mumech::VoightBound::giveHomogenizedStiffnessMatrix(), mumech::RegGrid::giveHomogenizedStiffnessMatrix(), mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix(), giveNumberOfInclusions(), giveProblem(), giveProblemType(), giveReducedEshelbyMatrixOfInclusion(), giveReducedStiffnessMatrixOfInclusion(), giveSizeOfFullMatrix(), giveSizeOfReducedMatrix(), giveSizeOfSymVector(), giveTotalVolume(), giveTotalVolumeFractionOfInclusions(), giveTransformationMatrixStressStrainG2L(), giveTransformationMatrixStressStrainL2G(), giveVolumeFractionOfInclusion(), Homogenization(), set_boundingBox(), and ~Homogenization().
|
protected |
Total volume of the proble/bounding box.
Definition at line 51 of file homogenization.h.
Referenced by giveTotalVolume(), and Homogenization().