muMECH
1.0
|
matrix data structure - matrix (infinite medium) record More...
#include <matrix.h>
Public Member Functions | |
MatrixRecord (const Problem *p) | |
Constructor. More... | |
virtual | ~MatrixRecord () |
Destructor. More... | |
void | set_nlc (int n) |
void | set_E_nu (double e, double n) |
void | set_E_nu_rs (double e, double n, const double *r1) |
void | set_origin (double x, double y) |
void | set_origin (double x, double y, double z) |
void | convert_RS_ROWtoFEEP (int lc) |
void | set_Remote_strain_for_lc (int lc, const double r1[]) |
r1 se zadava v theoretical row notation prislusne delky, 4 nebo 9 More... | |
bool | scan_Remote_strains (FILE *stream) |
bool | scan_Remote_strains (const char *stream) |
void | set_unit_remote_strain (void) |
Sets a set of unit remote strain. More... | |
bool | remote_strain_is_unit (void) const |
Check the remote strain is unit. More... | |
double | E (void) const |
double | nu (void) const |
const double ** | remote_strains (void) const |
void | giveReducedStiffMatrix (double *answer) const |
void | giveFullStiffMatrix (double *answer) const |
void | allocate_nlc_fields (void) |
Allocate fields depending to number of load cases. More... | |
const double * | give_globHomog_Displc (int lc, const double *coords) |
void | give_globHomog_Displc (double *displ, int lc, const double *coords) |
const double * | give_globHomog_Strain (int lc) |
void | give_globHomog_Strain (double *strain, int lc) |
const double * | give_globHomog_Stress (int lc) |
void | give_globHomog_Stress (double *stress, int lc) |
void | printYourself (const char *notice=NULL) |
Function prints the MatrixRecord. More... | |
Public Attributes | |
double * | C |
isotropic stiffness matrix of the infinite medium (infinite matrix), saved in reduced form, in TVRN_THEORETICAL notation to be consistent with Remote_strain notation More... | |
Protected Attributes | |
const Problem * | P |
double | ym |
Young's modulus of the matrix. More... | |
double | pr |
Poissons ratio of the matrix. More... | |
double * | origin |
coordinates of the origin of infinite medium (origin of global coordinate system) More... | |
int | nRS |
Number of remote strains. More... | |
double ** | Remote_strain |
Remote strain fields == homogeneous strain tensor, stored in TVRN_THEORETICAL_FEEP notation. (TVRN_THEORETICAL_ROW notation at I/O) More... | |
Private Attributes | |
double ** | globHomog_displc |
Global homogeneous displacement fields. More... | |
double ** | globHomog_strain |
Global homogeneous strain fields. More... | |
double ** | globHomog_stress |
Global homogeneous stress fields. More... | |
Friends | |
class | Problem |
class | InclusionRecord3D |
mumech::MatrixRecord::MatrixRecord | ( | const Problem * | p | ) |
Constructor.
Definition at line 42 of file matrix.cpp.
References C, mumech::Problems::give_ISO_C_RANGE(), globHomog_displc, globHomog_strain, globHomog_stress, nRS, origin, P, pr, Remote_strain, and ym.
|
virtual |
Destructor.
Definition at line 56 of file matrix.cpp.
References C, mumech::DeleteArray2D(), mumech::Problem::give_nLC(), globHomog_displc, globHomog_strain, globHomog_stress, origin, P, and Remote_strain.
void mumech::MatrixRecord::allocate_nlc_fields | ( | void | ) |
Allocate fields depending to number of load cases.
Definition at line 219 of file matrix.cpp.
References mumech::AllocateArray2D(), mumech::Problems::give_TENS_RANGE(), globHomog_displc, nRS, P, and Remote_strain.
Referenced by remote_strains(), scan_Remote_strains(), set_Remote_strain_for_lc(), and set_unit_remote_strain().
void mumech::MatrixRecord::convert_RS_ROWtoFEEP | ( | int | lc | ) |
Definition at line 95 of file matrix.cpp.
References mumech::MatrixOperations::convert2Dtensor_4ROWto3FEEP_notation(), mumech::MatrixOperations::convert3Dtensor_9ROWto6FEEP_notation(), mumech::Problem::is_twodim(), P, and Remote_strain.
Referenced by scan_Remote_strains(), set_E_nu_rs(), and set_Remote_strain_for_lc().
|
inline |
const double * mumech::MatrixRecord::give_globHomog_Displc | ( | int | lc, |
const double * | coords | ||
) |
Definition at line 226 of file matrix.cpp.
References mumech::Problems::give_dimension(), mumech::MatrixOperations::giveIsoTensAndVectorProduct(), globHomog_displc, P, and Remote_strain.
Referenced by give_globHomog_Displc(), and remote_strains().
void mumech::MatrixRecord::give_globHomog_Displc | ( | double * | displ, |
int | lc, | ||
const double * | coords | ||
) |
Definition at line 233 of file matrix.cpp.
References mumech::CopyVector(), give_globHomog_Displc(), mumech::Problems::give_VECT_RANGE(), and P.
const double * mumech::MatrixRecord::give_globHomog_Strain | ( | int | lc | ) |
Definition at line 239 of file matrix.cpp.
References Remote_strain.
Referenced by give_globHomog_Strain(), mumech::Mesh::give_homog_energy(), and remote_strains().
void mumech::MatrixRecord::give_globHomog_Strain | ( | double * | strain, |
int | lc | ||
) |
Definition at line 244 of file matrix.cpp.
References mumech::CopyVector(), give_globHomog_Strain(), mumech::Problems::give_VM_TENS_RANGE(), and P.
const double * mumech::MatrixRecord::give_globHomog_Stress | ( | int | lc | ) |
Definition at line 250 of file matrix.cpp.
References C, mumech::Problem::give_nLC(), mumech::Problems::give_VM_TENS_RANGE(), mumech::MatrixOperations::giveTVproduct_3is3x3to5and3(), mumech::MatrixOperations::giveTVproduct_6is6x6to12and6(), globHomog_stress, P, Remote_strain, and mumech::Problems::twodim.
Referenced by give_globHomog_Stress(), mumech::Mesh::give_homog_energy(), and remote_strains().
void mumech::MatrixRecord::give_globHomog_Stress | ( | double * | stress, |
int | lc | ||
) |
Definition at line 267 of file matrix.cpp.
References mumech::CopyVector(), give_globHomog_Stress(), mumech::Problems::give_VM_TENS_RANGE(), and P.
void mumech::MatrixRecord::giveFullStiffMatrix | ( | double * | answer | ) | const |
Definition at line 211 of file matrix.cpp.
References C, mumech::MatrixOperations::copy2DeshelbyTensor_reduced2full(), mumech::MatrixOperations::copy3DeshelbyTensor_reduced2full(), P, and mumech::Problems::twodim.
Referenced by remote_strains().
void mumech::MatrixRecord::giveReducedStiffMatrix | ( | double * | answer | ) | const |
Definition at line 206 of file matrix.cpp.
References C, mumech::CopyVector(), mumech::Problems::give_ISO_C_RANGE(), and P.
Referenced by remote_strains().
|
inline |
Definition at line 107 of file matrix.h.
References pr.
Referenced by mumech::InclusionRecord2D::compute_D(), mumech::InclusionRecord2D::compute_I_S(), mumech::InclusionRecord2D::compute_S_int(), mumech::eshelbySoluUniformField::eshelbySoluUniformField(), and mumech::InclusionRecord2D::getDisplacement().
void mumech::MatrixRecord::printYourself | ( | const char * | notice = NULL | ) |
Function prints the MatrixRecord.
Definition at line 279 of file matrix.cpp.
Referenced by remote_strains().
bool mumech::MatrixRecord::remote_strain_is_unit | ( | void | ) | const |
Check the remote strain is unit.
Definition at line 180 of file matrix.cpp.
References mumech::Problems::give_TENS_RANGE(), mumech::Problems::give_VM_TENS_RANGE(), mumech::GiveSumMembersArray2D(), nRS, P, Remote_strain, and mumech::Problems::twodim.
Referenced by mumech::RegGrid::giveHomogenizedStiffnessMatrix(), set_E_nu_rs(), and set_unit_remote_strain().
|
inline |
Definition at line 108 of file matrix.h.
References allocate_nlc_fields(), give_globHomog_Displc(), give_globHomog_Strain(), give_globHomog_Stress(), giveFullStiffMatrix(), giveReducedStiffMatrix(), printYourself(), and Remote_strain.
Referenced by mumech::InclusionRecord2D::compute_eps_tau(), mumech::InclusionRecord2D::compute_initial_eps_tau(), mumech::Inclusion::compute_supplement_energy(), and mumech::InclusionRecord2D::update_eps_tau().
bool mumech::MatrixRecord::scan_Remote_strains | ( | FILE * | stream | ) |
Definition at line 112 of file matrix.cpp.
References allocate_nlc_fields(), convert_RS_ROWtoFEEP(), gelibspace::FP_scan_array(), mumech::Problem::give_nLC(), mumech::Problems::give_TENS_RANGE(), P, and Remote_strain.
Referenced by set_E_nu_rs().
bool mumech::MatrixRecord::scan_Remote_strains | ( | const char * | stream | ) |
Definition at line 128 of file matrix.cpp.
References allocate_nlc_fields(), convert_RS_ROWtoFEEP(), mumech::Problem::give_nLC(), mumech::Problems::give_TENS_RANGE(), P, Remote_strain, and gelibspace::SP_scan_array().
void mumech::MatrixRecord::set_E_nu | ( | double | e, |
double | n | ||
) |
Definition at line 76 of file matrix.cpp.
References _errorr, C, mumech::e(), mumech::Stiffness::giveReducedIsoStiffMatrix(), mumech::Problem::is_converted_to_equivalent(), mumech::Problem::is_twodim(), P, pr, and ym.
Referenced by set_E_nu_rs(), and mumech::Problem::set_matrix_E_nu().
|
inline |
Definition at line 82 of file matrix.h.
References convert_RS_ROWtoFEEP(), remote_strain_is_unit(), scan_Remote_strains(), set_E_nu(), set_nlc(), set_origin(), set_Remote_strain_for_lc(), and set_unit_remote_strain().
void mumech::MatrixRecord::set_nlc | ( | int | n | ) |
Definition at line 68 of file matrix.cpp.
Referenced by set_E_nu_rs(), mumech::Problem::set_numberOfRemoteStrains(), and set_unit_remote_strain().
void mumech::MatrixRecord::set_origin | ( | double | x, |
double | y | ||
) |
Definition at line 91 of file matrix.cpp.
References mumech::Problem::check_dim(), origin, and P.
Referenced by set_E_nu_rs().
void mumech::MatrixRecord::set_origin | ( | double | x, |
double | y, | ||
double | z | ||
) |
Definition at line 92 of file matrix.cpp.
References mumech::Problem::check_dim(), origin, and P.
void mumech::MatrixRecord::set_Remote_strain_for_lc | ( | int | lc, |
const double | r1[] | ||
) |
r1 se zadava v theoretical row notation prislusne delky, 4 nebo 9
Definition at line 102 of file matrix.cpp.
References _errorr, allocate_nlc_fields(), convert_RS_ROWtoFEEP(), mumech::CopyVector(), mumech::Problems::give_TENS_RANGE(), nRS, P, and Remote_strain.
Referenced by set_E_nu_rs(), and mumech::Problem::set_RemoteStrain().
void mumech::MatrixRecord::set_unit_remote_strain | ( | void | ) |
Sets a set of unit remote strain.
Set unit remote strain.
Definition at line 145 of file matrix.cpp.
References _errorr, allocate_nlc_fields(), mumech::CleanArray2d(), mumech::Problems::give_TENS_RANGE(), mumech::Problems::give_VM_TENS_RANGE(), nRS, P, Remote_strain, remote_strain_is_unit(), set_nlc(), and mumech::Problems::twodim.
Referenced by set_E_nu_rs(), and mumech::Problem::set_UnitRemoteStrains().
|
friend |
double* mumech::MatrixRecord::C |
isotropic stiffness matrix of the infinite medium (infinite matrix), saved in reduced form, in TVRN_THEORETICAL notation to be consistent with Remote_strain notation
Definition at line 66 of file matrix.h.
Referenced by mumech::Inclusion::add_EshelbyPertStress_internal_SIFCM(), 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(), mumech::Inclusion::compute_supplement_energy(), mumech::Inclusion::Eps02EpsTau(), mumech::Inclusion::give_EshelbyPertStress_internal(), give_globHomog_Stress(), giveFullStiffMatrix(), giveReducedStiffMatrix(), MatrixRecord(), mumech::InclusionRecord3D::SBA_computeInitialStrains(), set_E_nu(), mumech::InclusionRecord2D::update_eps_tau(), and ~MatrixRecord().
|
private |
Global homogeneous displacement fields.
Definition at line 61 of file matrix.h.
Referenced by allocate_nlc_fields(), give_globHomog_Displc(), MatrixRecord(), and ~MatrixRecord().
|
private |
Global homogeneous strain fields.
Definition at line 62 of file matrix.h.
Referenced by MatrixRecord(), and ~MatrixRecord().
|
private |
Global homogeneous stress fields.
Definition at line 63 of file matrix.h.
Referenced by give_globHomog_Stress(), MatrixRecord(), and ~MatrixRecord().
|
protected |
Number of remote strains.
Definition at line 57 of file matrix.h.
Referenced by allocate_nlc_fields(), mumech::Problem::check_lc_nlc(), mumech::Problem::give_nLC(), MatrixRecord(), mumech::Problem::ndisplc_all(), mumech::Problem::nstrain_all(), remote_strain_is_unit(), set_nlc(), set_Remote_strain_for_lc(), and set_unit_remote_strain().
|
protected |
coordinates of the origin of infinite medium (origin of global coordinate system)
Definition at line 56 of file matrix.h.
Referenced by MatrixRecord(), set_origin(), and ~MatrixRecord().
|
protected |
Definition at line 52 of file matrix.h.
Referenced by allocate_nlc_fields(), convert_RS_ROWtoFEEP(), give_globHomog_Displc(), give_globHomog_Strain(), give_globHomog_Stress(), giveFullStiffMatrix(), giveReducedStiffMatrix(), MatrixRecord(), remote_strain_is_unit(), scan_Remote_strains(), set_E_nu(), set_origin(), set_Remote_strain_for_lc(), set_unit_remote_strain(), and ~MatrixRecord().
|
protected |
Poissons ratio of the matrix.
Definition at line 55 of file matrix.h.
Referenced by MatrixRecord(), nu(), printYourself(), and set_E_nu().
|
protected |
Remote strain fields == homogeneous strain tensor, stored in TVRN_THEORETICAL_FEEP notation. (TVRN_THEORETICAL_ROW notation at I/O)
Definition at line 58 of file matrix.h.
Referenced by allocate_nlc_fields(), convert_RS_ROWtoFEEP(), give_globHomog_Displc(), give_globHomog_Strain(), give_globHomog_Stress(), MatrixRecord(), remote_strain_is_unit(), remote_strains(), mumech::InclusionRecord3D::SBA_computeInitialStrains(), scan_Remote_strains(), set_Remote_strain_for_lc(), set_unit_remote_strain(), and ~MatrixRecord().
|
protected |
Young's modulus of the matrix.
Definition at line 54 of file matrix.h.
Referenced by E(), MatrixRecord(), printYourself(), and set_E_nu().