// this is now obsolete void SymmAnisotropicElasticityTensor::initialize_anisotropic_material_dt_matrix() { // This function initializes the 6 x 6 material Dt matrix for an anisotropic material int k = 0; for (int i = 0; i < 6; i++) { for (int j = i; j < 6; j++) { _dt(i, j) = _dt(j, i) = _val[k++]; } } }
void SymmAnisotropicElasticityTensor::calculateEntries(unsigned int /*qp*/) { // The following four lines of code force the calculateEntries function to be useful // only for CUBIC ANISOTROPIC materials. zero(); setMaterialConstantc11(_c11); setMaterialConstantc12(_c12); setMaterialConstantc44(_c44); form_r_matrix(); // initialize_material_anisotropic_dt_matrix(); form_rotational_q_matrix(); // form_transformation_t_matrix(); form_transformed_material_dmat_matrix(); form_rotated_material_qdmat_matrix(); form_transformed_material_dt_matrix(); unsigned count(0); for (int j(0); j < 6; ++j) { for (int i(j); i < 6; ++i) { _val[count++] = _dt(i, j); } } }
void SymmAnisotropicElasticityTensor::rotate(const Real a1, const Real a2, const Real a3) { setFirstEulerAngle(a1); setSecondEulerAngle(a2); setThirdEulerAngle(a3); // pulled from calculateEntries to sub in the initialize_anisotropic_material_dt_matrix() call // calculateEntries(0); form_r_matrix(); form_rotational_q_matrix(); form_transformed_material_dmat_matrix(); form_rotated_material_qdmat_matrix(); form_transformed_material_dt_matrix(); unsigned count(0); for (int j(0); j < 6; ++j) { for (int i(j); i < 6; ++i) { _val[count++] = _dt(i, j); } } }
void SymmAnisotropicElasticityTensor::show_dt_matrix() { printf("\nSymmAnisotropicElasticityTensor::show_dt_matrix()\n"); for (int j = 0; j < 6; ++j) { printf(" "); for (int i = 0; i < 6; ++i) { printf("%12.4f ", _dt(i, j)); } printf("\n"); } }
void SymmAnisotropicElasticityTensor::form_transformed_material_dt_matrix() { // The function makes use of TransD6toD9 matrix to transfrom // QDmat[9][9] to Dt[6][6] // Dt = TT * QDmat * T // DenseMatrix<Real> outputMatrix(6,9); // outputMatrix = _trans_d9_to_d6; // outputMatrix.right_multiply(_qdmat); // _dt = outputMatrix; // _dt.right_multiply(_transpose_trans_d9_to_d6); // The transformation below is general and should work whether or not the // incoming tensor has been rotated. ColumnMajorMatrix tmp(9, 9); for (unsigned j(0); j < 9; ++j) { for (unsigned i(0); i < 9; ++i) { tmp(i, j) = _qdmat(i, j); } } SymmElasticityTensor fred; fred.convertFrom9x9(tmp); ColumnMajorMatrix wilma = fred.columnMajorMatrix6x6(); for (unsigned j(0); j < 6; ++j) { for (unsigned i(0); i < 6; ++i) { _dt(i, j) = wilma(i, j); } } }
void KStarsDateTime::setTime( const QTime &_t ) { KStarsDateTime _dt( date(), _t ); setDJD( _dt.djd() ); }
// this is now obsolete void SymmAnisotropicElasticityTensor::initialize_material_dt_matrix() { // This function initializes the 6 x 6 material Dt matrix for a cubic material _dt(0, 0) = _dt(1, 1) = _dt(2, 2) = _c11; _dt(0, 1) = _dt(0, 2) = _dt(1, 0) = _dt(2, 0) = _dt(1, 2) = _dt(2, 1) = _c12; // beware the factor of two here _dt(3, 3) = _dt(4, 4) = _dt(5, 5) = 2 * _c44; }