muMECH
1.0
|
Class InclusionRecord contains and handles all inclusion data. More...
#include <inclusion.h>
Public Member Functions | |
Inclusion (long i, const Problem *p) | |
Constructor. More... | |
virtual | ~Inclusion () |
Destructor. More... | |
bool | scan_eAngles_RAD (Stream *stream) |
bool | scan_eAngles_DEG (Stream *stream) |
virtual bool | scan_locEigStrain_LC (Stream *stream, int lc)=0 |
virtual void | allocate_nlc_fields (void) |
virtual InclusionGeometry | giveInclusionGeometry (InclusionGeometry shp_o) const =0 |
Function detects the inclusion geometry according the mutual aspect ratio among the semiaxes. More... | |
virtual void | input_data_initialize_and_check_consistency (void) |
virtual void | initialize (const Inclusion *prevInclRec)=0 |
virtual void | SBA_computeInitialStrains (int lc)=0 |
Function computes basic/own eigen strains (not influenced by other inclusions) of lc-th load case. More... | |
virtual bool | point_is_affected (const double *point) const =0 |
Returns true, if the given point is inside of the action radius of the receiver. More... | |
bool | point_is_inside (const double *coords, double epsilon=0.0) const |
Function returns the position of a given point related to an inclusion. More... | |
void | transformCoords_G2L (const double *glob, double *loc) const |
Function transforms (shift according to origin and rotate) global coordinates to local. More... | |
void | transformCoords_L2G (const double *loc, double *glob) const |
Function transforms (shift according to origin and rotate) local coordinates to global. More... | |
void | rotateStrain_G2L (const double *glob, double *loc) const |
void | rotateStrain_L2G (const double *loc, double *glob) const |
Function rotate local strain to global. More... | |
void | rotateDisplc_L2G (const double *loc, double *glob) const |
void | ActingIncls_allocate (void) |
int | find_overlap (const Inclusion *incl) const |
Check overlap of the receiver and 'incl' inclusion. More... | |
bool | is_inside_of_BB (const double *bb1, const double *bb2) const |
check the receiver is inside of the bounding box defined by lower left bb1 and upper right bb2 corners. More... | |
void | set_centroids (double x, double y) |
void | set_centroids (double x, double y, double z) |
void | set_Inclusion_shape (InclusionGeometry val) |
void | set_Youngs_modulus (double val) |
void | set_Poissons_ratio (double val) |
void | set_Semiaxes_dimensions (double x, double y) |
void | set_Semiaxes_dimensions (double x, double y, double z) |
void | set_Euller_angles_deg (double x) |
void | set_Euller_angles_deg (double x, double y, double z) |
void | set_all_2d (double x, double y, double e, double n, double a1, double a2, double e1) |
void | set_all_3d (double x, double y, double z, double e, double n, double a1, double a2, double a3, double e1, double e2, double e3) |
double | give_volume (void) |
void | update_approximations (int lc) |
void | Eps02EpsTau (double *e_tau, const double *e_0) |
void | give_StiffnessMatrixFull (double *answer) const |
Copy stiffness tensor into full matrix answer. More... | |
void | give_StiffnessMatrixReduced (double *answer) const |
Copy stiffness tensor into reduced vector answer. More... | |
const double ** | give_EshelbyPertDisplc_internal (int lc, int nlc, const double *coords) |
const double ** | give_EshelbyPertStrain_internal (int lc, int nlc) |
const double ** | give_EshelbyPertStress_internal (int lc, int nlc) |
void | add_EshelbyPertStrain_internal_SIFCM (double **strain, int lc, int nlc, double **e_t_SIFCM) |
void | add_EshelbyPertStress_internal_SIFCM (double **stress, int lc, int nlc, double **e_t_SIFCM, double **e_s_ext_add) |
void | give_EshelbyPertFields_external (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... | |
double | compute_supplement_energy (int lc) |
Public Attributes | |
long | id |
identification number More... | |
const Problem * | P |
problem description More... | |
InclusionGeometry | shape |
inclusion shape More... | |
double | E |
Young's modulus. More... | |
double | nu |
Poisson's ratio. More... | |
double * | origin |
coordinates of the inclusions' centorids More... | |
double * | a |
Inclusion semiaxes' dimensions in global arrangement. More... | |
double * | eAngles |
Euller angles. More... | |
bool | rotated |
double | volume |
double * | C |
Isotropic elastic stiffness tensor of an inclusion stored in reduced form (from the total 9/36 matrix componets - only 5/12 non-zero components are stored for 2d/3d). More... | |
double * | S |
Eshelby tensor. More... | |
double * | SInv |
Inverse of Eshelby tensor. More... | |
double * | T |
GLOBAL->LOCAL displacement vector transfrmation matrix; 3x3 or 2x2 for 3d or 2d. More... | |
double * | TInv |
LOCAL->GLOBAL displacement vector transfrmation matrix; TInv = T^-1 (inversion) = T^T (transposed) More... | |
double * | Te |
GLOBAL->LOCAL strain/stress tensor transfrmation matrix; full matrix 6x6 or 3x3 for 3d or 2d. More... | |
double * | TeInv |
LOCAL->GLOBAL strain/stress tensor transfrmation matrix; full matrix 6x6 or 3x3 for 3d or 2d. More... | |
double | actionRadius |
Action radius of the inclusion. More... | |
double | SQRactionRadius |
Action radius of the inclusion ^2. More... | |
double | ndiff_1 |
derivative step for the first derivations More... | |
double | ndiff_2 |
derivative step for the second derivations More... | |
int | noActingIncls |
Number of acting inclusions. More... | |
int * | actingIncls |
Set of inclusions which act to the "this" one. More... | |
double ** | Epsilon_Tau |
field of epsilon tau, set by SBalgorithm for every load More... | |
int | n_approx_points |
double ** | approx_points |
double ** | approx_points_eps_tau |
double *** | approx_coef |
double ** | globPert_displc |
u star - Global perturbation displacement. Toto muze byt alokovany v problemu a odtud jen ukazovatko, pac u neni pro celou incl. stejny jako strain a stress. Usetrim na kezde inkluci toto pole. More... | |
double ** | globPert_strain |
epsilon star - Global perturbation strain. More... | |
double ** | globPert_stress |
sigma star - Global perturbation stress. More... | |
Protected Member Functions | |
void | EAdeg2rad (void) |
Euller angles conversion from degrees to radians. More... | |
void | giveTransformationStrainOperator (double oper[12], const double C[12], const double C1[12], const double S[12]) |
Function gives the operator converting remote field to transformation eigenstrain of an inclusion. More... | |
void | give_EshelbyMatrixFull (double **answer) const |
Copy Eshelby tensor into full matrix answer. More... | |
void | give_EshelbyMatrixReduced (double *answer) const |
Copy Eshelby tensor into reduced vector answer. More... | |
void | give_TeMatrix_G2L (double *answer) const |
Copy Te (G2L strain transformation matrix) tensor into full matrix answer. More... | |
void | give_TeMatrix_L2G (double *answer) const |
Copy TeInv (L2G strain transformation matrix) tensor into full matrix answer. More... | |
Private Member Functions | |
virtual void | computeVolume ()=0 |
Friends | |
class | Homogenization |
Class InclusionRecord contains and handles all inclusion data.
Definition at line 60 of file inclusion.h.
mumech::Inclusion::Inclusion | ( | long | i, |
const Problem * | p | ||
) |
Constructor.
Definition at line 66 of file inclusion.cpp.
References a, actingIncls, actionRadius, approx_coef, approx_points, approx_points_eps_tau, C, E, eAngles, Epsilon_Tau, mumech::Problems::give_EA_RANGE(), mumech::Problems::give_ISO_C_RANGE(), mumech::Problems::give_VECT_RANGE(), mumech::Problems::give_VM_TENS_RANGE(), globPert_displc, globPert_strain, globPert_stress, mumech::IS_VOID, n_approx_points, noActingIncls, nu, origin, P, rotated, S, shape, SInv, SQRactionRadius, T, Te, TeInv, TInv, and volume.
|
virtual |
Destructor.
Definition at line 119 of file inclusion.cpp.
References a, actingIncls, C, mumech::DeleteArray2D(), eAngles, Epsilon_Tau, mumech::Problem::give_nLC(), globPert_displc, globPert_strain, globPert_stress, origin, P, S, SInv, T, Te, TeInv, and TInv.
void mumech::Inclusion::ActingIncls_allocate | ( | void | ) |
Definition at line 185 of file inclusion.cpp.
References _errorr, actingIncls, and noActingIncls.
void mumech::Inclusion::add_EshelbyPertStrain_internal_SIFCM | ( | double ** | strain, |
int | lc, | ||
int | nlc, | ||
double ** | e_t_SIFCM | ||
) |
Definition at line 938 of file inclusion.cpp.
References mumech::AddVector(), mumech::Problems::give_VM_TENS_RANGE(), mumech::MatrixOperations::giveTVproduct_3is3x3to5and3(), mumech::MatrixOperations::giveTVproduct_6is6x6to12and6(), P, rotateStrain_L2G(), S, and mumech::Problems::twodim.
void mumech::Inclusion::add_EshelbyPertStress_internal_SIFCM | ( | double ** | stress, |
int | lc, | ||
int | nlc, | ||
double ** | e_t_SIFCM, | ||
double ** | e_s_ext_add | ||
) |
Definition at line 953 of file inclusion.cpp.
References mumech::AddVector(), mumech::MatrixRecord::C, eAngles, errol, mumech::Problems::give_VM_TENS_RANGE(), mumech::MatrixOperations::giveTVproduct_3is3x3to5and3(), mumech::Problem::matrix, P, mumech::rotate_vector(), mumech::Problems::twodim, and mumech::vektor::v.
|
virtual |
Reimplemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
Definition at line 165 of file inclusion.cpp.
References _errorr, mumech::AllocateArray2D(), mumech::CleanArray2d(), Epsilon_Tau, mumech::Problem::give_nLC(), mumech::Problems::give_VECT_RANGE(), mumech::Problems::give_VM_TENS_RANGE(), globPert_displc, and P.
Referenced by mumech::InclusionRecord3D::allocate_nlc_fields(), mumech::InclusionRecord2D::allocate_nlc_fields(), and input_data_initialize_and_check_consistency().
double mumech::Inclusion::compute_supplement_energy | ( | int | lc | ) |
Definition at line 998 of file inclusion.cpp.
References mumech::MatrixRecord::C, C, E, mumech::Problems::give_ISO_C_RANGE(), mumech::give_VectorVectorProduct(), give_volume(), mumech::MatrixOperations::giveTVproduct_3is3x3to5and3(), mumech::MatrixOperations::giveTVproduct_6is6x6to12and6(), mumech::Problem::matrix, mumech::Problems::nstrain_one(), P, mumech::MatrixRecord::remote_strains(), mumech::SubtractTwoVectors(), and mumech::Problems::twodim.
|
privatepure virtual |
Implemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
Referenced by give_volume().
|
protected |
Euller angles conversion from degrees to radians.
Definition at line 571 of file inclusion.cpp.
References DEG2RAD, eAngles, mumech::Problems::give_EA_RANGE(), and P.
Referenced by scan_eAngles_DEG(), and set_Euller_angles_deg().
void mumech::Inclusion::Eps02EpsTau | ( | double * | e_tau, |
const double * | e_0 | ||
) |
Definition at line 543 of file inclusion.cpp.
References _errorr, mumech::AddVector(), mumech::MatrixRecord::C, C, mumech::Problems::give_dimension(), mumech::giveInverseMatrix3x3to5(), mumech::MatrixOperations::giveTTproduct_3x3to5is3x3to5and3x3to5(), mumech::MatrixOperations::giveTVproduct_3is3x3to5and3(), mumech::Problem::matrix, mumech::MultiplyVector(), P, rotateStrain_G2L(), S, and mumech::SubtractTwoVectors().
int mumech::Inclusion::find_overlap | ( | const Inclusion * | incl | ) | const |
Check overlap of the receiver and 'incl' inclusion.
Definition at line 195 of file inclusion.cpp.
References a, DIST_POINTS_SQR_2D, DIST_POINTS_SQR_3D, mumech::MesoFace::ellipses_overlap(), mumech::MesoFace::ellipsoids_overlap(), meso2d::epsilon, mumech::IS_CIRCLE, mumech::IS_SPHERE, origin, P, shape, and mumech::Problems::twodim.
|
protected |
Copy Eshelby tensor into full matrix answer.
Definition at line 778 of file inclusion.cpp.
References _errorr, mumech::MatrixOperations::copy2DeshelbyTensor_reduced2full(), mumech::MatrixOperations::copy3DeshelbyTensor_reduced2full(), P, S, and mumech::Problems::twodim.
Referenced by mumech::Homogenization::giveFullEshelbyMatrixOfInclusion().
|
protected |
Copy Eshelby tensor into reduced vector answer.
Definition at line 789 of file inclusion.cpp.
References _errorr, mumech::CopyVector(), mumech::Problems::give_ISO_C_RANGE(), P, and S.
Referenced by mumech::Homogenization::giveReducedEshelbyMatrixOfInclusion().
const double ** mumech::Inclusion::give_EshelbyPertDisplc_internal | ( | int | lc, |
int | nlc, | ||
const double * | coords | ||
) |
Definition at line 845 of file inclusion.cpp.
References globPert_displc, P, and mumech::Problems::twodim.
void mumech::Inclusion::give_EshelbyPertFields_external | ( | 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.
point | Point record (data structure of a given point). |
lc | ID number of first computed load case. |
nlc | Number of computed loadcases. |
disp | YES/NO flag controls computing of displacement fields. |
strn | YES/NO flag controls computing of strain fields. |
Definition at line 986 of file inclusion.cpp.
References mumech::Point::displacement, P, mumech::Point::strain, mumech::Problems::twodim, and mumech::Point::x.
Referenced by mumech::Problem::give_EshelbyPertFieldsOnePoint_external().
const double ** mumech::Inclusion::give_EshelbyPertStrain_internal | ( | int | lc, |
int | nlc | ||
) |
Definition at line 861 of file inclusion.cpp.
References Epsilon_Tau, mumech::Problem::give_nLC(), mumech::Problems::give_VM_TENS_RANGE(), mumech::MatrixOperations::giveTVproduct_3is3x3to5and3(), mumech::MatrixOperations::giveTVproduct_6is6x6to12and6(), globPert_strain, P, rotateStrain_L2G(), S, and mumech::Problems::twodim.
Referenced by give_EshelbyPertStress_internal().
const double ** mumech::Inclusion::give_EshelbyPertStress_internal | ( | int | lc, |
int | nlc | ||
) |
Definition at line 889 of file inclusion.cpp.
References mumech::AddVector(), mumech::MatrixRecord::C, eAngles, Epsilon_Tau, give_EshelbyPertStrain_internal(), mumech::Problem::give_nLC(), mumech::Problems::give_VM_TENS_RANGE(), mumech::MatrixOperations::giveTVproduct_3is3x3to5and3(), mumech::MatrixOperations::giveTVproduct_6is6x6to12and6(), globPert_stress, mumech::Problem::matrix, P, mumech::rotate_vector(), mumech::SubtractTwoVectors(), mumech::Problems::twodim, mumech::vektor::v, and mumech::vektor::vynulovat().
void mumech::Inclusion::give_StiffnessMatrixFull | ( | double * | answer | ) | const |
Copy stiffness tensor into full matrix answer.
Definition at line 799 of file inclusion.cpp.
References _errorr, C, mumech::MatrixOperations::copy2DeshelbyTensor_reduced2full(), mumech::MatrixOperations::copy3DeshelbyTensor_reduced2full(), P, and mumech::Problems::twodim.
Referenced by clanek_homog_grid(), mumech::Homogenization::giveFullStiffnessMatrixOfInclusion(), x2D_1I_Ellipse_homog(), and x3D_1I_Ellipsoid_homog().
void mumech::Inclusion::give_StiffnessMatrixReduced | ( | double * | answer | ) | const |
Copy stiffness tensor into reduced vector answer.
Definition at line 810 of file inclusion.cpp.
References _errorr, C, mumech::CopyVector(), mumech::Problems::give_ISO_C_RANGE(), and P.
Referenced by mumech::mElement::giveReducedStiffMatrix(), and mumech::Homogenization::giveReducedStiffnessMatrixOfInclusion().
|
protected |
Copy Te (G2L strain transformation matrix) tensor into full matrix answer.
Copy Te (G2L strain transfrmation matrix) tensor into full matrix answer.
Definition at line 820 of file inclusion.cpp.
References _errorr, mumech::CopyVector(), mumech::Problems::give_VM_TENS_RANGE(), P, and Te.
Referenced by mumech::Homogenization::giveTransformationMatrixStressStrainG2L().
|
protected |
Copy TeInv (L2G strain transformation matrix) tensor into full matrix answer.
Definition at line 829 of file inclusion.cpp.
References _errorr, mumech::CopyVector(), mumech::Problems::give_VM_TENS_RANGE(), P, and TeInv.
Referenced by mumech::Homogenization::giveTransformationMatrixStressStrainL2G().
double mumech::Inclusion::give_volume | ( | void | ) |
Definition at line 416 of file inclusion.cpp.
References computeVolume(), and volume.
Referenced by mumech::DifferentialScheme::ascendingSort(), compute_supplement_energy(), mumech::DifferentialScheme::descendingSort(), mumech::Homogenization::giveTotalVolumeFractionOfInclusions(), and mumech::Homogenization::giveVolumeFractionOfInclusion().
|
pure virtual |
Function detects the inclusion geometry according the mutual aspect ratio among the semiaxes.
Implemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
Referenced by input_data_initialize_and_check_consistency().
|
protected |
Function gives the operator converting remote field to transformation eigenstrain of an inclusion.
oper | The operator to be calculated: oper = -[(C1:S + C)^(-1)]:C1 |
C | Stifness tensor of the isotropic infinite medium. |
C1 | Complement of the stiffness tensor of an isotropic inclusion. |
S | Eshelby tensor of isotropic inclusion. |
Definition at line 646 of file inclusion.cpp.
References __1111_, __1122_, __1133_, __1212_, __1313_, __2211_, __2222_, __2233_, __2323_, __3311_, __3322_, __3333_, L1111, L1122, L1212, Ll1111, Ll1122, Ll1212, Power, S1111, S1122, S1133, S1212, S1313, S2211, S2222, S2233, S2323, S3311, S3322, and S3333.
Referenced by mumech::InclusionRecord3D::SBA_computeInitialStrains().
|
pure virtual |
Implemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
Referenced by mumech::Problem::convert_to_equivalent_problem().
|
virtual |
Reimplemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
Definition at line 267 of file inclusion.cpp.
References _errorr, a, actionRadius, allocate_nlc_fields(), eAngles, mumech::TransformTensors::give_TInv(), mumech::Problems::give_VECT_RANGE(), giveInclusionGeometry(), INFTY, mumech::IS_CIRCLE, mumech::Problem::is_converted_to_equivalent(), mumech::IS_SPHERE, mumech::IS_VOID, ndiff_1, ndiff_2, P, rotated, shape, SQR, SQRactionRadius, T, TInv, and mumech::Problems::twodim.
Referenced by mumech::InclusionRecord3D::input_data_initialize_and_check_consistency(), and mumech::InclusionRecord2D::input_data_initialize_and_check_consistency().
bool mumech::Inclusion::is_inside_of_BB | ( | const double * | bb1, |
const double * | bb2 | ||
) | const |
check the receiver is inside of the bounding box defined by lower left bb1 and upper right bb2 corners.
Definition at line 218 of file inclusion.cpp.
References a, mumech::e(), errol, mumech::IS_CIRCLE, mumech::IS_SPHERE, origin, P, shape, and mumech::Problems::twodim.
Referenced by mumech::Homogenization::find_inclusions_in_BB().
|
pure virtual |
Returns true, if the given point is inside of the action radius of the receiver.
Implemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
bool mumech::Inclusion::point_is_inside | ( | const double * | coords, |
double | epsilon = 0.0 |
||
) | const |
Function returns the position of a given point related to an inclusion.
coords | Global coordinates of the point related to an inclusion. |
Definition at line 329 of file inclusion.cpp.
References _errorr, a, mumech::IS_CIRCLE, mumech::IS_ELLIPSE, mumech::IS_ELLIPSOID, mumech::IS_OBLATE_SPHEROID, mumech::IS_PROLATE_SPHEROID, mumech::IS_SPHERE, shape, SQR, and transformCoords_G2L().
Referenced by print_graf().
void mumech::Inclusion::rotateDisplc_L2G | ( | const double * | loc, |
double * | glob | ||
) | const |
Definition at line 387 of file inclusion.cpp.
References mumech::CopyVector(), mumech::Problems::give_VECT_RANGE(), mumech::giveMatrixVectorProduct(), P, rotated, and TInv.
Referenced by mumech::InclusionRecord2D::getDisplacement(), mumech::eshelbySoluUniformField::giveEshelbyDisplacementOfOnePoint(), and mumech::eshelbySoluUniformField::giveEshelbyFieldsOfOnePoint().
void mumech::Inclusion::rotateStrain_G2L | ( | const double * | glob, |
double * | loc | ||
) | const |
Definition at line 397 of file inclusion.cpp.
References mumech::CopyVector(), mumech::Problems::give_VM_TENS_RANGE(), mumech::giveMatrixVectorProduct(), P, rotated, and Te.
Referenced by mumech::InclusionRecord2D::compute_eps_tau(), mumech::InclusionRecord2D::compute_eps_tau_back(), mumech::InclusionRecord2D::compute_initial_eps_tau(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_ext(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_int(), Eps02EpsTau(), mumech::InclusionRecord3D::SBA_computeInitialStrains(), mumech::InclusionRecord3D::SBA_updateGlobAndLocStrains(), and mumech::InclusionRecord2D::update_eps_tau().
void mumech::Inclusion::rotateStrain_L2G | ( | const double * | loc, |
double * | glob | ||
) | const |
Function rotate local strain to global.
Definition at line 405 of file inclusion.cpp.
References mumech::CopyVector(), mumech::Problems::give_VM_TENS_RANGE(), mumech::giveMatrixVectorProduct(), P, rotated, and TeInv.
Referenced by add_EshelbyPertStrain_internal_SIFCM(), mumech::InclusionRecord3D::addtot(), mumech::InclusionRecord2D::compute_from_eps_tau(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_ext(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_int(), give_EshelbyPertStrain_internal(), mumech::eshelbySoluUniformField::giveEshelbyFieldsOfOnePoint(), mumech::eshelbySoluUniformField::giveEshelbyStrainOfOnePoint(), mumech::InclusionRecord2D::giveExtStrainPert(), and mumech::InclusionRecord3D::SBA_computeInitialStrains().
|
pure virtual |
Function computes basic/own eigen strains (not influenced by other inclusions) of lc-th load case.
Implemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
bool mumech::Inclusion::scan_eAngles_DEG | ( | Stream * | stream | ) |
Definition at line 156 of file inclusion.cpp.
References EAdeg2rad(), and scan_eAngles_RAD().
bool mumech::Inclusion::scan_eAngles_RAD | ( | Stream * | stream | ) |
Definition at line 151 of file inclusion.cpp.
References eAngles, mumech::Problems::give_EA_RANGE(), P, and gelibspace::ST_scan_array().
Referenced by scan_eAngles_DEG().
|
pure virtual |
Implemented in mumech::InclusionRecord2D, and mumech::InclusionRecord3D.
void mumech::Inclusion::set_all_2d | ( | double | x, |
double | y, | ||
double | e, | ||
double | n, | ||
double | a1, | ||
double | a2, | ||
double | e1 | ||
) |
Definition at line 242 of file inclusion.cpp.
References set_centroids(), set_Euller_angles_deg(), set_Poissons_ratio(), set_Semiaxes_dimensions(), and set_Youngs_modulus().
Referenced by mumech::Problem::set_inclusion_all().
void mumech::Inclusion::set_all_3d | ( | double | x, |
double | y, | ||
double | z, | ||
double | e, | ||
double | n, | ||
double | a1, | ||
double | a2, | ||
double | a3, | ||
double | e1, | ||
double | e2, | ||
double | e3 | ||
) |
Definition at line 250 of file inclusion.cpp.
References set_centroids(), set_Euller_angles_deg(), set_Poissons_ratio(), set_Semiaxes_dimensions(), and set_Youngs_modulus().
Referenced by mumech::Problem::set_inclusion_all().
void mumech::Inclusion::set_centroids | ( | double | x, |
double | y | ||
) |
Definition at line 235 of file inclusion.cpp.
References mumech::Problem::check_dim(), origin, and P.
Referenced by ovlivneni(), set_all_2d(), set_all_3d(), and mumech::Problem::set_inclusion_centroids().
void mumech::Inclusion::set_centroids | ( | double | x, |
double | y, | ||
double | z | ||
) |
Definition at line 236 of file inclusion.cpp.
References mumech::Problem::check_dim(), origin, and P.
void mumech::Inclusion::set_Euller_angles_deg | ( | double | x | ) |
Definition at line 239 of file inclusion.cpp.
References mumech::Problem::check_dim(), EAdeg2rad(), eAngles, and P.
Referenced by ovlivneni(), set_all_2d(), set_all_3d(), and mumech::Problem::set_inclusion_EulerAnglesDEG().
void mumech::Inclusion::set_Euller_angles_deg | ( | double | x, |
double | y, | ||
double | z | ||
) |
Definition at line 240 of file inclusion.cpp.
References mumech::Problem::check_dim(), EAdeg2rad(), eAngles, and P.
|
inline |
Definition at line 185 of file inclusion.h.
Referenced by ovlivneni(), and mumech::Problem::set_inclusion_shape().
|
inline |
Definition at line 187 of file inclusion.h.
References mumech::e().
Referenced by ovlivneni(), set_all_2d(), set_all_3d(), and mumech::Problem::set_inclusion_E_nu().
void mumech::Inclusion::set_Semiaxes_dimensions | ( | double | x, |
double | y | ||
) |
Definition at line 237 of file inclusion.cpp.
References a, mumech::Problem::check_dim(), and P.
Referenced by ovlivneni(), set_all_2d(), set_all_3d(), and mumech::Problem::set_inclusion_semiaxesDimensions().
void mumech::Inclusion::set_Semiaxes_dimensions | ( | double | x, |
double | y, | ||
double | z | ||
) |
Definition at line 238 of file inclusion.cpp.
References a, mumech::Problem::check_dim(), and P.
|
inline |
Definition at line 186 of file inclusion.h.
Referenced by ovlivneni(), set_all_2d(), set_all_3d(), and mumech::Problem::set_inclusion_E_nu().
void mumech::Inclusion::transformCoords_G2L | ( | const double * | glob, |
double * | loc | ||
) | const |
Function transforms (shift according to origin and rotate) global coordinates to local.
Definition at line 358 of file inclusion.cpp.
References mumech::Problems::give_VECT_RANGE(), mumech::giveMatrixVectorProduct(), origin, P, rotated, mumech::SubtractTwoVectors(), and T.
Referenced by mumech::InclusionRecord2D::compute_from_eps_tau(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_ext(), mumech::InclusionRecord2D::getDisplacement(), mumech::eshelbySoluUniformField::giveEshelbyDisplacementOfOnePoint(), mumech::eshelbySoluUniformField::giveEshelbyFieldsOfOnePoint(), mumech::eshelbySoluUniformField::giveEshelbyStrainOfOnePoint(), mumech::InclusionRecord2D::giveExtStrainPert(), and point_is_inside().
void mumech::Inclusion::transformCoords_L2G | ( | const double * | loc, |
double * | glob | ||
) | const |
Function transforms (shift according to origin and rotate) local coordinates to global.
Definition at line 369 of file inclusion.cpp.
References errol, mumech::Problems::give_VECT_RANGE(), origin, P, and rotated.
void mumech::Inclusion::update_approximations | ( | int | lc | ) |
Definition at line 425 of file inclusion.cpp.
References _errorr, a, approx_coef, mumech::Problem::approx_point_pos1, approx_points, approx_points_eps_tau, mumech::Problem::approximation, Epsilon_Tau, mumech::matice::g(), mumech::gaussovaEliminace(), mumech::Problems::give_dimension(), mumech::Problems::give_VM_TENS_RANGE(), n_approx_points, origin, P, mumech::vektor::v, mumech::vektor::vynulovat(), and mumech::matice::vynulovat().
|
friend |
Definition at line 62 of file inclusion.h.
double* mumech::Inclusion::a |
Inclusion semiaxes' dimensions in global arrangement.
Definition at line 76 of file inclusion.h.
Referenced by mumech::InclusionRecord2D::compute_D(), mumech::InclusionRecord2D::compute_I_S(), mumech::InclusionRecord2D::compute_S_int(), mumech::InclusionRecord3D::computeVolume(), mumech::InclusionRecord2D::computeVolume(), mumech::InclusionRecord2D::derivative_preparation(), mumech::InclusionRecord2D::derivative_step(), mumech::MesoFace::fill_ellipse_rec(), mumech::MesoFace::fill_ellipsoid_rec(), find_overlap(), mumech::InclusionRecord2D::getDisplacement(), mumech::eshelbySoluEllipticIntegrals::getPerturbatedLambdas(), mumech::eshelbySoluEllipticIntegralsEllipsoid::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsSphere::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluUniformField::giveDisplacementPerturbTensor_EXTpoint(), mumech::eshelbySoluUniformField::giveDisplacementPerturbTensor_INTpoint(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsFlatEllipsoid::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsPenny::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsCylinder::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsEllipsoid::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsSphere::giveEllipticIntegrals(), mumech::eshelbySoluUniformField::giveEshelbyFieldsOfOnePoint(), mumech::eshelbySoluUniformField::giveEshelbyStrainOfOnePoint(), mumech::eshelbySoluUniformField::giveEshelbyTensor(), mumech::Dilute::giveFullDiluteConcentrationFactorOfInclusionInLC(), mumech::InclusionRecord3D::giveInclusionGeometry(), mumech::InclusionRecord2D::giveInclusionGeometry(), mumech::eshelbySoluUniformField::giveStrainPerturbTensor(), Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), input_data_initialize_and_check_consistency(), is_inside_of_BB(), point_is_inside(), mumech::Problem::print_visualization(), set_Semiaxes_dimensions(), update_approximations(), and ~Inclusion().
int* mumech::Inclusion::actingIncls |
Set of inclusions which act to the "this" one.
Definition at line 112 of file inclusion.h.
Referenced by ActingIncls_allocate(), Inclusion(), mumech::selfBalanceAlgorithm::totalEigStrainInInclCentroidsUpdate(), and ~Inclusion().
double mumech::Inclusion::actionRadius |
Action radius of the inclusion.
Definition at line 106 of file inclusion.h.
Referenced by Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), input_data_initialize_and_check_consistency(), mumech::InclusionRecord3D::point_is_affected(), and mumech::InclusionRecord2D::point_is_affected().
double*** mumech::Inclusion::approx_coef |
Definition at line 122 of file inclusion.h.
Referenced by mumech::InclusionRecord2D::giveExtStrainPert(), Inclusion(), and update_approximations().
double** mumech::Inclusion::approx_points |
Definition at line 120 of file inclusion.h.
Referenced by Inclusion(), and update_approximations().
double** mumech::Inclusion::approx_points_eps_tau |
Definition at line 121 of file inclusion.h.
Referenced by Inclusion(), and update_approximations().
double* mumech::Inclusion::C |
Isotropic elastic stiffness tensor of an inclusion stored in reduced form (from the total 9/36 matrix componets - only 5/12 non-zero components are stored for 2d/3d).
Definition at line 86 of file inclusion.h.
Referenced by mumech::InclusionRecord2D::compute_eps_tau(), mumech::InclusionRecord2D::compute_initial_eps_tau(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_ext(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_int(), compute_supplement_energy(), Eps02EpsTau(), give_StiffnessMatrixFull(), give_StiffnessMatrixReduced(), Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), mumech::InclusionRecord3D::SBA_computeInitialStrains(), mumech::InclusionRecord2D::update_eps_tau(), and ~Inclusion().
double mumech::Inclusion::E |
Young's modulus.
Definition at line 72 of file inclusion.h.
Referenced by compute_supplement_energy(), Inclusion(), mumech::InclusionRecord3D::initialize(), and mumech::InclusionRecord2D::initialize().
double* mumech::Inclusion::eAngles |
Euller angles.
Definition at line 77 of file inclusion.h.
Referenced by add_EshelbyPertStress_internal_SIFCM(), EAdeg2rad(), mumech::MesoFace::fill_ellipse_rec(), mumech::MesoFace::fill_ellipsoid_rec(), give_EshelbyPertStress_internal(), Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), input_data_initialize_and_check_consistency(), scan_eAngles_RAD(), set_Euller_angles_deg(), and ~Inclusion().
double** mumech::Inclusion::Epsilon_Tau |
field of epsilon tau, set by SBalgorithm for every load
Definition at line 115 of file inclusion.h.
Referenced by allocate_nlc_fields(), give_EshelbyPertStrain_internal(), give_EshelbyPertStress_internal(), Inclusion(), mumech::InclusionRecord2D::scan_locEigStrain_LC(), update_approximations(), mumech::InclusionRecord2D::update_eps_tau(), and ~Inclusion().
double** mumech::Inclusion::globPert_displc |
u star - Global perturbation displacement. Toto muze byt alokovany v problemu a odtud jen ukazovatko, pac u neni pro celou incl. stejny jako strain a stress. Usetrim na kezde inkluci toto pole.
Definition at line 124 of file inclusion.h.
Referenced by allocate_nlc_fields(), give_EshelbyPertDisplc_internal(), Inclusion(), and ~Inclusion().
double** mumech::Inclusion::globPert_strain |
epsilon star - Global perturbation strain.
Definition at line 125 of file inclusion.h.
Referenced by give_EshelbyPertStrain_internal(), Inclusion(), and ~Inclusion().
double** mumech::Inclusion::globPert_stress |
sigma star - Global perturbation stress.
Definition at line 126 of file inclusion.h.
Referenced by give_EshelbyPertStress_internal(), Inclusion(), and ~Inclusion().
long mumech::Inclusion::id |
identification number
Definition at line 68 of file inclusion.h.
Referenced by mumech::MesoFace::fill_ellipse_rec(), mumech::MesoFace::fill_ellipsoid_rec(), and mumech::DifferentialScheme::giveHomogenizedStiffnessMatrix().
int mumech::Inclusion::n_approx_points |
Definition at line 119 of file inclusion.h.
Referenced by Inclusion(), and update_approximations().
double mumech::Inclusion::ndiff_1 |
derivative step for the first derivations
Definition at line 108 of file inclusion.h.
Referenced by mumech::eshelbySoluEllipticIntegrals::getPerturbatedLambdas(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsCylinder::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsEllipsoid::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsSphere::giveDerivativesOfEllipticIntegrals(), and input_data_initialize_and_check_consistency().
double mumech::Inclusion::ndiff_2 |
derivative step for the second derivations
Definition at line 109 of file inclusion.h.
Referenced by input_data_initialize_and_check_consistency().
int mumech::Inclusion::noActingIncls |
Number of acting inclusions.
Definition at line 111 of file inclusion.h.
Referenced by ActingIncls_allocate(), Inclusion(), and mumech::selfBalanceAlgorithm::totalEigStrainInInclCentroidsUpdate().
double mumech::Inclusion::nu |
Poisson's ratio.
Definition at line 73 of file inclusion.h.
Referenced by Inclusion(), mumech::InclusionRecord3D::initialize(), and mumech::InclusionRecord2D::initialize().
double* mumech::Inclusion::origin |
coordinates of the inclusions' centorids
Definition at line 75 of file inclusion.h.
Referenced by mumech::MesoFace::fill_ellipse_rec(), mumech::MesoFace::fill_ellipsoid_rec(), find_overlap(), Inclusion(), is_inside_of_BB(), mumech::InclusionRecord3D::point_is_affected(), mumech::InclusionRecord2D::point_is_affected(), mumech::Problem::print_visualization(), set_centroids(), transformCoords_G2L(), transformCoords_L2G(), update_approximations(), and ~Inclusion().
const Problem* mumech::Inclusion::P |
problem description
Definition at line 69 of file inclusion.h.
Referenced by add_EshelbyPertStrain_internal_SIFCM(), add_EshelbyPertStress_internal_SIFCM(), allocate_nlc_fields(), mumech::InclusionRecord3D::allocate_nlc_fields(), mumech::InclusionRecord2D::compute_D(), mumech::InclusionRecord2D::compute_eps_tau(), mumech::InclusionRecord2D::compute_I_S(), mumech::InclusionRecord2D::compute_initial_eps_tau(), mumech::InclusionRecord2D::compute_S_int(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_ext(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_int(), compute_supplement_energy(), mumech::InclusionRecord2D::dI(), EAdeg2rad(), Eps02EpsTau(), mumech::eshelbySoluUniformField::eshelbySoluUniformField(), find_overlap(), mumech::InclusionRecord2D::getDisplacement(), give_EshelbyMatrixFull(), give_EshelbyMatrixReduced(), give_EshelbyPertDisplc_internal(), give_EshelbyPertFields_external(), give_EshelbyPertStrain_internal(), give_EshelbyPertStress_internal(), give_StiffnessMatrixFull(), give_StiffnessMatrixReduced(), give_TeMatrix_G2L(), give_TeMatrix_L2G(), mumech::eshelbySoluEllipticIntegralsEllipsoid::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsSphere::giveDerivativesOfEllipticIntegrals(), mumech::InclusionRecord2D::giveExtStrainPert(), mumech::InclusionRecord3D::giveInclusionGeometry(), mumech::InclusionRecord2D::giveInclusionGeometry(), Inclusion(), mumech::InclusionRecord3D::init_EigStrain_LC(), input_data_initialize_and_check_consistency(), mumech::InclusionRecord3D::input_data_initialize_and_check_consistency(), mumech::InclusionRecord2D::input_data_initialize_and_check_consistency(), is_inside_of_BB(), rotateDisplc_L2G(), rotateStrain_G2L(), rotateStrain_L2G(), mumech::InclusionRecord3D::SBA_computeInitialStrains(), mumech::InclusionRecord2D::SBA_computeInitialStrains(), scan_eAngles_RAD(), mumech::InclusionRecord3D::scan_globEigStrain_LC(), mumech::InclusionRecord3D::scan_locEigStrain_LC(), mumech::InclusionRecord2D::scan_locEigStrain_LC(), set_centroids(), set_Euller_angles_deg(), set_Semiaxes_dimensions(), transformCoords_G2L(), transformCoords_L2G(), update_approximations(), mumech::InclusionRecord2D::update_eps_tau(), ~Inclusion(), and mumech::InclusionRecord3D::~InclusionRecord3D().
bool mumech::Inclusion::rotated |
Definition at line 83 of file inclusion.h.
Referenced by Inclusion(), input_data_initialize_and_check_consistency(), rotateDisplc_L2G(), rotateStrain_G2L(), rotateStrain_L2G(), transformCoords_G2L(), and transformCoords_L2G().
double* mumech::Inclusion::S |
Eshelby tensor.
Definition at line 87 of file inclusion.h.
Referenced by add_EshelbyPertStrain_internal_SIFCM(), mumech::InclusionRecord2D::compute_eps_tau(), mumech::InclusionRecord2D::compute_initial_eps_tau(), mumech::InclusionRecord2D::compute_S_int(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_ext(), mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_int(), Eps02EpsTau(), give_EshelbyMatrixFull(), give_EshelbyMatrixReduced(), give_EshelbyPertStrain_internal(), Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::update_eps_tau(), and ~Inclusion().
InclusionGeometry mumech::Inclusion::shape |
inclusion shape
Definition at line 71 of file inclusion.h.
Referenced by mumech::InclusionRecord3D::computeVolume(), mumech::InclusionRecord2D::computeVolume(), find_overlap(), mumech::eshelbySoluUniformField::giveEshelbyFieldsOfOnePoint(), mumech::eshelbySoluUniformField::giveEshelbyStrainOfOnePoint(), Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), input_data_initialize_and_check_consistency(), mumech::InclusionRecord3D::input_data_initialize_and_check_consistency(), is_inside_of_BB(), and point_is_inside().
double* mumech::Inclusion::SInv |
Inverse of Eshelby tensor.
Definition at line 88 of file inclusion.h.
Referenced by Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord3D::SBA_updateGlobAndLocStrains(), and ~Inclusion().
double mumech::Inclusion::SQRactionRadius |
Action radius of the inclusion ^2.
Definition at line 107 of file inclusion.h.
Referenced by Inclusion(), mumech::InclusionRecord3D::initialize(), input_data_initialize_and_check_consistency(), and mumech::InclusionRecord3D::point_is_affected().
double* mumech::Inclusion::T |
GLOBAL->LOCAL displacement vector transfrmation matrix; 3x3 or 2x2 for 3d or 2d.
Definition at line 92 of file inclusion.h.
Referenced by Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), input_data_initialize_and_check_consistency(), transformCoords_G2L(), and ~Inclusion().
double* mumech::Inclusion::Te |
GLOBAL->LOCAL strain/stress tensor transfrmation matrix; full matrix 6x6 or 3x3 for 3d or 2d.
Definition at line 96 of file inclusion.h.
Referenced by give_TeMatrix_G2L(), Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), rotateStrain_G2L(), and ~Inclusion().
double* mumech::Inclusion::TeInv |
LOCAL->GLOBAL strain/stress tensor transfrmation matrix; full matrix 6x6 or 3x3 for 3d or 2d.
Definition at line 97 of file inclusion.h.
Referenced by give_TeMatrix_L2G(), Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), rotateStrain_L2G(), and ~Inclusion().
double* mumech::Inclusion::TInv |
LOCAL->GLOBAL displacement vector transfrmation matrix; TInv = T^-1 (inversion) = T^T (transposed)
Definition at line 93 of file inclusion.h.
Referenced by Inclusion(), mumech::InclusionRecord3D::initialize(), mumech::InclusionRecord2D::initialize(), input_data_initialize_and_check_consistency(), mumech::Problem::print_visualization(), rotateDisplc_L2G(), and ~Inclusion().
double mumech::Inclusion::volume |
Definition at line 84 of file inclusion.h.
Referenced by mumech::InclusionRecord3D::computeVolume(), mumech::InclusionRecord2D::computeVolume(), give_volume(), and Inclusion().