40 switch ( inclGeometry ) {
57 T[0] = cos(eullerAngles[0]); T[1] = sin(eullerAngles[0]);
58 T[2] = -T[1]; T[3] = T[0];
61 _errorr2(
"Unsupported shape of inclusion \"%s\"",
IST_e2s (inclGeometry));
70 switch ( inclGeometry ) {
90 Te[2] = 2.0 * T[0] * T[1];
95 Te[5] = 2.0 * T[2] * T[3];
100 Te[8] = T[0] * T[3] + T[1] * T[2];
104 _errorr2(
"Unsupported shape of inclusion \"%s\"",
IST_e2s (inclGeometry));
111 switch ( inclGeometry ) {
126 default:
_errorr2(
"Unsupported shape of inclusion \"%s\"",
IST_e2s (inclGeometry));
135 switch ( inclGeometry ) {
163 TeInv[2] *= 2.0; TeInv[5] *= 2.0;
164 TeInv[6] /= 2.0; TeInv[7] /= 2.0;
175 _errorr2(
"Unsupported shape of inclusion \"%s\"",
IST_e2s (inclGeometry));
185 double phi = eullerAngles[0], nu = eullerAngles[1], psi = eullerAngles[2];
186 double c1 = cos( phi ), c2 = cos( nu ), c3 = cos( psi );
187 double s1 = sin( phi ), s2 = sin( nu ), s3 = sin( psi );
197 T[4] = c1 * c2 * c3 - s1 * s3;
198 T[5] = c2 * c3 * s1 + c1 * s3;
201 T[7] = -c3 * s1 - c1 * c2 * s3;
202 T[8] = c1 * c3 - c2 * s1 * s3;
211 T[4] = c1 * c3 - c2 * s1 * s3;
212 T[5] = c3 * s1 + c1 * c2 * s3;
215 T[7] = -c2 * c3 * s1 - c1 * s3;
216 T[8] = c1 * c2 * c3 - s1 * s3;
220 T[0] = c1 * c3 - c2 * s1 * s3;
222 T[2] = -c3 * s1 - c1 * c2 * s3;
228 T[6] = c2 * c3 * s1 + c1 * s3;
230 T[8] = c1 * c2 * c3 - s1 * s3;
234 T[0] = c1 * c2 * c3 - s1 * s3;
236 T[2] = -c2 * c3 * s1 - c1 * s3;
242 T[6] = c3 * s1 + c1 * c2 * s3;
244 T[8] = c1 * c3 - c2 * s1 * s3;
248 T[0] = c1 * c2 * c3 - s1 * s3;
249 T[1] = c2 * c3 * s1 + c1 * s3;
252 T[3] = -c3 * s1 - c1 * c2 * s3;
253 T[4] = c1 * c3 - c2 * s1 * s3;
262 T[0] = c1 * c3 - c2 * s1 * s3;
263 T[1] = c3 * s1 + c1 * c2 * s3;
266 T[3] = -c2 * c3 * s1 - c1 * s3;
267 T[4] = c1 * c2 * c3 - s1 * s3;
277 T[1] = c1 * c3 * s2 + s1 * s3;
278 T[2] = c3 * s1 * s2 - c1 * s3;
285 T[7] = -c3 * s1 + c1 * s2 * s3;
286 T[8] = c1 * c3 + s1 * s2 * s3;
291 T[1] = c3 * s1 * s2 + c1 * s3;
292 T[2] = -c1 * c3 * s2 + s1 * s3;
295 T[4] = c1 * c3 - s1 * s2 * s3;
296 T[5] = c3 * s1 + c1 * s2 * s3;
304 T[0] = c1 * c3 + s1 * s2 * s3;
306 T[2] = -c3 * s1 + c1 * s2 * s3;
308 T[3] = c3 * s1 * s2 - c1 * s3;
310 T[5] = c1 * c3 * s2 + s1 * s3;
322 T[3] = -c1 * c3 * s2 + s1 * s3;
324 T[5] = c3 * s1 * s2 + c1 * s3;
326 T[6] = c3 * s1 + c1 * s2 * s3;
328 T[8] = c1 * c3 - s1 * s2 * s3;
336 T[3] = -c3 * s1 + c1 * s2 * s3;
337 T[4] = c1 * c3 + s1 * s2 * s3;
340 T[6] = c1 * c3 * s2 + s1 * s3;
341 T[7] = c3 * s1 * s2 - c1 * s3;
346 T[0] = c1 * c3 - s1 * s2 * s3;
347 T[1] = c3 * s1 + c1 * s2 * s3;
354 T[6] = c3 * s1 * s2 + c1 * s3;
355 T[7] = -c1 * c3 * s2 + s1 * s3;
359 _errorr(
"T: Invalid successive rotations of coordinate system");
367 #define _T( i, j ) T[( i - 1 ) * 3 + ( j - 1 )] 373 Te[0] =
SQR(
_T( 1, 1 ) );
374 Te[1] =
SQR(
_T( 1, 2 ) );
375 Te[2] =
SQR(
_T( 1, 3 ) );
377 Te[5] = 2. *
_T( 1, 1 ) *
_T( 1, 3 );
378 Te[4] = 2. *
_T( 1, 2 ) *
_T( 1, 3 );
379 Te[3] = 2. *
_T( 1, 1 ) *
_T( 1, 2 );
382 Te[6] =
SQR(
_T( 2, 1 ) );
383 Te[7] =
SQR(
_T( 2, 2 ) );
384 Te[8] =
SQR(
_T( 2, 3 ) );
386 Te[11] = 2. *
_T( 2, 1 ) *
_T( 2, 3 );
387 Te[10] = 2. *
_T( 2, 2 ) *
_T( 2, 3 );
388 Te[9] = 2. *
_T( 2, 1 ) *
_T( 2, 2 );
391 Te[12] =
SQR(
_T( 3, 1 ) );
392 Te[13] =
SQR(
_T( 3, 2 ) );
393 Te[14] =
SQR(
_T( 3, 3 ) );
395 Te[17] = 2. *
_T( 3, 1 ) *
_T( 3, 3 );
396 Te[16] = 2. *
_T( 3, 2 ) *
_T( 3, 3 );
397 Te[15] = 2. *
_T( 3, 1 ) *
_T( 3, 2 );
400 Te[18] =
_T( 2, 1 ) *
_T( 1, 1 );
401 Te[19] =
_T( 2, 2 ) *
_T( 1, 2 );
402 Te[20] =
_T( 2, 3 ) *
_T( 1, 3 );
404 Te[23] =
_T( 2, 3 ) *
_T( 1, 1 ) +
_T( 2, 1 ) *
_T( 1, 3 );
405 Te[22] =
_T( 2, 3 ) *
_T( 1, 2 ) +
_T( 2, 2 ) *
_T( 1, 3 );
406 Te[21] =
_T( 1, 1 ) *
_T( 2, 2 ) +
_T( 2, 1 ) *
_T( 1, 2 );
409 Te[24] =
_T( 3, 1 ) *
_T( 2, 1 );
410 Te[25] =
_T( 3, 2 ) *
_T( 2, 2 );
411 Te[26] =
_T( 3, 3 ) *
_T( 2, 3 );
413 Te[29] =
_T( 3, 3 ) *
_T( 2, 1 ) +
_T( 3, 1 ) *
_T( 2, 3 );
414 Te[28] =
_T( 3, 2 ) *
_T( 2, 3 ) +
_T( 3, 3 ) *
_T( 2, 2 );
415 Te[27] =
_T( 3, 1 ) *
_T( 2, 2 ) +
_T( 3, 2 ) *
_T( 2, 1 );
418 Te[30] =
_T( 3, 1 ) *
_T( 1, 1 );
419 Te[31] =
_T( 3, 2 ) *
_T( 1, 2 );
420 Te[32] =
_T( 3, 3 ) *
_T( 1, 3 );
422 Te[35] =
_T( 3, 3 ) *
_T( 1, 1 ) +
_T( 3, 1 ) *
_T( 1, 3 );
423 Te[34] =
_T( 3, 2 ) *
_T( 1, 3 ) +
_T( 3, 3 ) *
_T( 1, 2 );
424 Te[33] =
_T( 3, 2 ) *
_T( 1, 1 ) +
_T( 3, 1 ) *
_T( 1, 2 );
const char * IST_e2s(InclusionGeometry ig)
Inclusion shapes' type - enum to string.
void giveUnitSMatrixFull_2d(double *m)
Function sets reduced 2d SMatrix to unit matrix.
Namespace MatrixOperations.
void giveUnitMatrix3x3(double *m)
Function sets 3X3 matrix to unit matrix.
The header file of usefull macros.
Collection of the functions of basic manipulations, some of them can be used instead of their counter...
InclusionGeometry
Inclusion shapes' type.
void giveUnitSMatrixFull_3d(double *m)
Function sets reduced 3d SMatrix to unit matrix.
void giveUnitMatrix2x2(double *m)
Function sets 3x3 matrix to unit matrix.
void giveTransposedMatrix(const double *mtrx, double *T_mtrx, int n)
Function gives the trasposition of a matrix saved in row-by-row C arrangement.