muMECH  1.0
Public Member Functions | Public Attributes | Private Member Functions | List of all members
mumech::InclusionRecord2D Class Reference

#include <inclusion.h>

Inheritance diagram for mumech::InclusionRecord2D:
mumech::Inclusion

Public Member Functions

 InclusionRecord2D (long i, const Problem *p)
 Constructor. More...
 
virtual ~InclusionRecord2D ()
 Destructor. More...
 
bool scan_locEigStrain_LC (Stream *stream, int lc)
 
void allocate_nlc_fields (void)
 
InclusionGeometry giveInclusionGeometry (InclusionGeometry shp_o) const
 Function detects the inclusion geometry according the mutual aspect ratio among the semiaxes. More...
 
void input_data_initialize_and_check_consistency (void)
 Initialize input data readed form vtk file. More...
 
void initialize (const Inclusion *prevInclRec)
 Initialization of this inclusion. Computes characteristic matrices: Eshelby tensor, ... More...
 
void SBA_computeInitialStrains (int lc)
 Function computes basic/own eigen strains (not influenced by other inclusions) of lc-th load case. More...
 
bool point_is_affected (const double *point) const
 Returns true, if the given point is inside of the action radius of the receiver. More...
 
double S_give (int index)
 Function checks if the tensor S is computed for the current point and then returns the asked componenet of the tensor. More...
 
double I (int index)
 
double derivative_step (double delitel)
 Function sets the size of a derivative step according to the semiaxes size. More...
 
void derivative_preparation ()
 Function computes the integrals and tensor S in auxiliary points around the current point. More...
 
double dI (int index, int smer1, int smer2)
 Gives the derivation of I. More...
 
void compute_I_S ()
 
void compute_S_int ()
 
double r (int i, int j)
 Kronecker delta. More...
 
double compute_D (int i, int j, int k, int l)
 
void compute_matrix_D ()
 
void compute_eps_tau_back (vektor &e_s_, vektor &e_t_)
 
void compute_strain_pert_from_eps_zero_int (const double *point, double *es, double *ez)
 
void compute_strain_pert_from_eps_zero_ext (const double *point, double *es, double *ez)
 
void compute_from_eps_tau (const double *point, vektor &es, vektor &et)
 Computes strain perturbation for the set epsilon_tau=et. More...
 
void giveExtStrainPert (const double *point, double **strain, int lc, int nlc)
 Computes strain perturbation for the epsilon_tau, computed in the ballancing process. More...
 
void compute_initial_eps_tau (int strainID)
 
void compute_eps_tau (int strainID, double *e_tau, double *e_z_add, bool add)
 
void update_eps_tau (int strainID, const double *e_z_add)
 
void getDisplacement (const double *point, double **displacement, int lc, int nlc, int _pointInside)
 Computes displacement perturbation. More...
 
- Public Member Functions inherited from mumech::Inclusion
 Inclusion (long i, const Problem *p)
 Constructor. More...
 
virtual ~Inclusion ()
 Destructor. More...
 
bool scan_eAngles_RAD (Stream *stream)
 
bool scan_eAngles_DEG (Stream *stream)
 
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

vektor delta_e_t
 
vektor delta_e_s
 
double x [2]
 
double x_last_derivation [2]
 
double x_last_IS [2]
 
double lambda
 
double I1
 
double I2
 
double I11
 
double I12
 
double I22
 
matice Sext
 
matice D
 
matice L
 
vektor e_t
 
bod_pomocny P_a [2]
 
bod_pomocny P_b [8]
 
int pomocne_body_spocitane
 
double h
 
double H
 
bool any_derivative_preparation_computed
 
bool any_IS_computed
 
int pointInside
 
- Public Attributes inherited from mumech::Inclusion
long id
 identification number More...
 
const ProblemP
 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...
 

Private Member Functions

virtual void computeVolume ()
 

Additional Inherited Members

- Protected Member Functions inherited from mumech::Inclusion
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...
 

Detailed Description

Definition at line 396 of file inclusion.h.

Constructor & Destructor Documentation

mumech::InclusionRecord2D::InclusionRecord2D ( long  i,
const Problem p 
)
mumech::InclusionRecord2D::~InclusionRecord2D ( )
virtual

Destructor.

Definition at line 1545 of file inclusion.cpp.

Member Function Documentation

void mumech::InclusionRecord2D::allocate_nlc_fields ( void  )
virtual

Reimplemented from mumech::Inclusion.

Definition at line 1559 of file inclusion.cpp.

References mumech::Inclusion::allocate_nlc_fields().

Referenced by scan_locEigStrain_LC().

double mumech::InclusionRecord2D::compute_D ( int  i,
int  j,
int  k,
int  l 
)
void mumech::InclusionRecord2D::compute_eps_tau ( int  strainID,
double *  e_tau,
double *  e_z_add,
bool  add 
)
void mumech::InclusionRecord2D::compute_eps_tau_back ( vektor e_s_,
vektor e_t_ 
)
void mumech::InclusionRecord2D::compute_from_eps_tau ( const double *  point,
vektor es,
vektor et 
)

Computes strain perturbation for the set epsilon_tau=et.

Definition at line 1995 of file inclusion.cpp.

References compute_matrix_D(), D, mumech::MaticexVektor(), pointInside, mumech::Inclusion::rotateStrain_L2G(), mumech::Inclusion::transformCoords_G2L(), mumech::vektor::v, and x.

void mumech::InclusionRecord2D::compute_I_S ( )
void mumech::InclusionRecord2D::compute_initial_eps_tau ( int  strainID)
void mumech::InclusionRecord2D::compute_matrix_D ( )
void mumech::InclusionRecord2D::compute_S_int ( )
void mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_ext ( const double *  point,
double *  es,
double *  ez 
)
void mumech::InclusionRecord2D::compute_strain_pert_from_eps_zero_int ( const double *  point,
double *  es,
double *  ez 
)
void mumech::InclusionRecord2D::computeVolume ( void  )
privatevirtual
void mumech::InclusionRecord2D::derivative_preparation ( )

Function computes the integrals and tensor S in auxiliary points around the current point.

Definition at line 1760 of file inclusion.cpp.

References mumech::Inclusion::a, mumech::bod_pomocny::a, H, h, P_a, P_b, mumech::bod_pomocny::x, and x.

Referenced by dI().

double mumech::InclusionRecord2D::derivative_step ( double  delitel)

Function sets the size of a derivative step according to the semiaxes size.

Definition at line 1753 of file inclusion.cpp.

References mumech::Inclusion::a.

Referenced by input_data_initialize_and_check_consistency().

double mumech::InclusionRecord2D::dI ( int  index,
int  smer1,
int  smer2 
)
void mumech::InclusionRecord2D::getDisplacement ( const double *  point,
double **  displacement,
int  lc,
int  nlc,
int  _pointInside 
)
void mumech::InclusionRecord2D::giveExtStrainPert ( const double *  point,
double **  strain,
int  lc,
int  nlc 
)
InclusionGeometry mumech::InclusionRecord2D::giveInclusionGeometry ( InclusionGeometry  shp_o) const
virtual
double mumech::InclusionRecord2D::I ( int  index)

Definition at line 1736 of file inclusion.cpp.

References any_IS_computed, compute_I_S(), I1, I11, I12, I2, I22, x, and x_last_IS.

Referenced by dI(), and getDisplacement().

void mumech::InclusionRecord2D::initialize ( const Inclusion prevInclRec)
virtual
void mumech::InclusionRecord2D::input_data_initialize_and_check_consistency ( void  )
virtual

Initialize input data readed form vtk file.

Reimplemented from mumech::Inclusion.

Definition at line 1655 of file inclusion.cpp.

References derivative_step(), h, H, mumech::Inclusion::input_data_initialize_and_check_consistency(), mumech::Problem::is_converted_to_equivalent(), and mumech::Inclusion::P.

bool mumech::InclusionRecord2D::point_is_affected ( const double *  point) const
virtual

Returns true, if the given point is inside of the action radius of the receiver.

Implements mumech::Inclusion.

Definition at line 1713 of file inclusion.cpp.

References mumech::Inclusion::actionRadius, mumech::Inclusion::origin, and VEC_SQR_NORM_2D.

double mumech::InclusionRecord2D::r ( int  i,
int  j 
)

Kronecker delta.

Definition at line 1898 of file inclusion.cpp.

Referenced by compute_D().

double mumech::InclusionRecord2D::S_give ( int  index)

Function checks if the tensor S is computed for the current point and then returns the asked componenet of the tensor.

Definition at line 1719 of file inclusion.cpp.

References any_IS_computed, compute_I_S(), mumech::matice::g(), Sext, x, and x_last_IS.

Referenced by compute_D().

void mumech::InclusionRecord2D::SBA_computeInitialStrains ( int  lc)
virtual

Function computes basic/own eigen strains (not influenced by other inclusions) of lc-th load case.

Implements mumech::Inclusion.

Definition at line 1704 of file inclusion.cpp.

References compute_initial_eps_tau(), mumech::CopyVector(), delta_e_t, e_t, mumech::Problems::give_VM_TENS_RANGE(), mumech::Inclusion::P, mumech::vektor::rovna_se(), and mumech::vektor::v.

bool mumech::InclusionRecord2D::scan_locEigStrain_LC ( Stream stream,
int  lc 
)
virtual
void mumech::InclusionRecord2D::update_eps_tau ( int  strainID,
const double *  e_z_add 
)

Member Data Documentation

bool mumech::InclusionRecord2D::any_derivative_preparation_computed

Definition at line 426 of file inclusion.h.

Referenced by dI(), and InclusionRecord2D().

bool mumech::InclusionRecord2D::any_IS_computed

Definition at line 427 of file inclusion.h.

Referenced by I(), InclusionRecord2D(), and S_give().

matice mumech::InclusionRecord2D::D
vektor mumech::InclusionRecord2D::delta_e_s

Definition at line 401 of file inclusion.h.

Referenced by InclusionRecord2D().

vektor mumech::InclusionRecord2D::delta_e_t

Definition at line 400 of file inclusion.h.

Referenced by InclusionRecord2D(), and SBA_computeInitialStrains().

vektor mumech::InclusionRecord2D::e_t
double mumech::InclusionRecord2D::h
double mumech::InclusionRecord2D::H
double mumech::InclusionRecord2D::I1

Definition at line 408 of file inclusion.h.

Referenced by compute_I_S(), and I().

double mumech::InclusionRecord2D::I11

Definition at line 410 of file inclusion.h.

Referenced by compute_I_S(), and I().

double mumech::InclusionRecord2D::I12

Definition at line 411 of file inclusion.h.

Referenced by compute_I_S(), and I().

double mumech::InclusionRecord2D::I2

Definition at line 409 of file inclusion.h.

Referenced by compute_I_S(), and I().

double mumech::InclusionRecord2D::I22

Definition at line 412 of file inclusion.h.

Referenced by compute_I_S(), and I().

matice mumech::InclusionRecord2D::L

Definition at line 416 of file inclusion.h.

Referenced by getDisplacement(), and InclusionRecord2D().

double mumech::InclusionRecord2D::lambda

Definition at line 407 of file inclusion.h.

Referenced by compute_I_S(), giveExtStrainPert(), and InclusionRecord2D().

bod_pomocny mumech::InclusionRecord2D::P_a[2]

Definition at line 421 of file inclusion.h.

Referenced by derivative_preparation(), and dI().

bod_pomocny mumech::InclusionRecord2D::P_b[8]

Definition at line 422 of file inclusion.h.

Referenced by derivative_preparation(), and dI().

int mumech::InclusionRecord2D::pointInside
int mumech::InclusionRecord2D::pomocne_body_spocitane

Definition at line 424 of file inclusion.h.

matice mumech::InclusionRecord2D::Sext

Definition at line 414 of file inclusion.h.

Referenced by compute_I_S(), compute_matrix_D(), InclusionRecord2D(), and S_give().

double mumech::InclusionRecord2D::x[2]
double mumech::InclusionRecord2D::x_last_derivation[2]

Definition at line 405 of file inclusion.h.

Referenced by dI(), and InclusionRecord2D().

double mumech::InclusionRecord2D::x_last_IS[2]

Definition at line 406 of file inclusion.h.

Referenced by I(), InclusionRecord2D(), and S_give().


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