72 if (nRS < 1 || nRS > 99)
_errorr(
"Number of load cases should be > 0 and <100");
79 _errorr(
"You can not set matrix recor when data already converted to equivalent problem.");
81 if (this->
ym >= 0.0)
_errorr(
"Matrix record: E is already set");
82 if (this->
pr >= 0.0)
_errorr(
"Matrix record: nu is already set");
104 if (this->
nRS == 0)
_errorr(
"Number of remote strains was not set.");
105 if (this->
nRS <= lc)
_errorr(
"Remote strain ID is greather then the set number of remote strains");
149 _errorr(
"Already given Remote strain is not equal to \"unit set\".");
187 if (s != (
P->
twodim ? 2+smyk : 3+3*smyk))
return false;
281 if (notice) printf(
"%s", notice );
282 printf(
"Young's modulus: %e\n",
ym );
283 printf(
"Poisson's ratio: %e\n",
pr );
300 displacement = strain = stress = NULL;
Class eshelbySoluUniformField.
int give_VM_TENS_RANGE(void) const
Gives range of a second order tensor in Voigt-Mandel notation.
void convert_RS_ROWtoFEEP(int lc)
void copy2DeshelbyTensor_reduced2full(const double *a, double **b)
Function copies and converts 2D eshelby/stiffness tensor saved in reduced row-wise vector 'a' to full...
int give_dimension(void) const
const double * give_globHomog_Stress(int lc)
virtual int give_nLC(void) const
Give number of load cases, e.i. number of load cases, i.e. number of Remote_strain fields...
const double * give_globHomog_Strain(int lc)
void convert3Dtensor_9ROWto6FEEP_notation(double *t)
double * C
isotropic stiffness matrix of the infinite medium (infinite matrix), saved in reduced form...
void convert2Dtensor_4ROWto3FEEP_notation(double *t)
double ** globHomog_strain
Global homogeneous strain fields.
void set_nlc(const Problem *p, int nlc)
void set_unit_remote_strain(void)
Sets a set of unit remote strain.
void copy3DeshelbyTensor_reduced2full(const double *a, double **b)
Function copies and converts 3D eshelby/stiffness tensor saved in reduced row-wise vector 'a' to full...
Namespace MatrixOperations.
bool twodim
2 dimension problem; 3d is default; twodim == true - 2d, twodim == false - 3d
void giveReducedIsoStiffMatrix(double *C, double E, double nu, bool twodim)
Function gives the reduced isotropic stiffness matrix of a homogeneous material.
void printYourself(const char *notice=NULL)
Function prints the MatrixRecord.
int give_VECT_RANGE(void) const
Gives vector range, same as dimension.
void CopyVector(const double *src, double *dest, long n)
Function copy given number of components from vector, 'a' to vector 'b'.
virtual bool is_converted_to_equivalent(void) const
Give type of ...
bool SP_scan_array(const char *&src, int n, ArgType *a)
... array of numbers
bool remote_strain_is_unit(void) const
Check the remote strain is unit.
void giveTVproduct_6is6x6to12and6(double *result, const double *T, const double *vect)
Function gives product of tensor and vector - 'result = T * vect'.
void giveReducedStiffMatrix(double *answer) const
bool FP_scan_array(FILE *stream, int n, int *dest)
scan/copy array of numbers from src to dest, src pointer is shifted over the field ...
void CleanArray2d(double **a, long rows, long columns)
Function cleans an 2d 'double' array, initialize each value being 0-zero.
int give_ISO_C_RANGE(void) const
Gives range of ...
double ym
Young's modulus of the matrix.
int give_TENS_RANGE(void) const
Gives tensor range, same as dimension^2. Theoretical range of a second order tensor.
double pr
Poissons ratio of the matrix.
void check_dim(int i) const
const double * give_globHomog_Displc(int lc, const double *coords)
MatrixRecord(const Problem *p)
Constructor.
void giveIsoTensAndVectorProduct(const double *tens, const double *vec, double *result, int dim)
Function gives the product of the isotropic tensor of seccond order with a vector.
double ** globHomog_stress
Global homogeneous stress fields.
int is_twodim(void) const
void giveTVproduct_3is3x3to5and3(double *result, const double *T, const double *vect)
Function gives product of tensor and vector - 'result = T * vect'.
double GiveSumMembersArray2D(const double **a, long d1, long d2)
Function returns sum of all member of array 'a'.
void DeleteArray2D(bool **array, long d1)
Function deletes a 2D 'bool' array of dimension d1 x ??, allocated by new.
double * origin
coordinates of the origin of infinite medium (origin of global coordinate system) ...
void set_Remote_strain_for_lc(int lc, const double r1[])
r1 se zadava v theoretical row notation prislusne delky, 4 nebo 9
virtual ~MatrixRecord()
Destructor.
double ** Remote_strain
Remote strain fields == homogeneous strain tensor, stored in TVRN_THEORETICAL_FEEP notation...
double ** AllocateArray2D(long d1, long d2)
Operations with 2d, 3d, 4d arrays of various sizes.
bool scan_Remote_strains(FILE *stream)
void set_E_nu(double e, double n)
void allocate_nlc_fields(void)
Allocate fields depending to number of load cases.
int nRS
Number of remote strains.
double ** globHomog_displc
Global homogeneous displacement fields.
virtual ~Point()
Destructor.
void giveFullStiffMatrix(double *answer) const
void set_origin(double x, double y)