32 const size_t number_of_grains,
33 const size_t start_entry)
35 sizes.resize(number_of_grains);
36 for (
unsigned int i_grain = 0; i_grain < number_of_grains; i_grain++)
38 sizes[i_grain] = vector[start_entry+i_grain];
42 for (
unsigned int i_grain = 0; i_grain < number_of_grains; i_grain++)
44 rotation_matrices[i_grain][0][0] = vector[start_entry+number_of_grains+i_grain*9];
45 rotation_matrices[i_grain][0][1] = vector[start_entry+number_of_grains+i_grain*9+1];
46 rotation_matrices[i_grain][0][2] = vector[start_entry+number_of_grains+i_grain*9+2];
47 rotation_matrices[i_grain][1][0] = vector[start_entry+number_of_grains+i_grain*9+3];
48 rotation_matrices[i_grain][1][1] = vector[start_entry+number_of_grains+i_grain*9+4];
49 rotation_matrices[i_grain][1][2] = vector[start_entry+number_of_grains+i_grain*9+5];
50 rotation_matrices[i_grain][2][0] = vector[start_entry+number_of_grains+i_grain*9+6];
51 rotation_matrices[i_grain][2][1] = vector[start_entry+number_of_grains+i_grain*9+7];
52 rotation_matrices[i_grain][2][2] = vector[start_entry+number_of_grains+i_grain*9+8];
60 const size_t number_of_grains =
sizes.size();
62 for (
unsigned int i_grain = 0; i_grain < number_of_grains; i_grain++)
64 vector[start_entry+i_grain] =
sizes[i_grain];
67 for (
unsigned int i_grain = 0; i_grain < number_of_grains; i_grain++)
69 vector[start_entry+number_of_grains+i_grain*9] =
rotation_matrices[i_grain][0][0];
70 vector[start_entry+number_of_grains+i_grain*9+1] =
rotation_matrices[i_grain][0][1];
71 vector[start_entry+number_of_grains+i_grain*9+2] =
rotation_matrices[i_grain][0][2];
72 vector[start_entry+number_of_grains+i_grain*9+3] =
rotation_matrices[i_grain][1][0];
73 vector[start_entry+number_of_grains+i_grain*9+4] =
rotation_matrices[i_grain][1][1];
74 vector[start_entry+number_of_grains+i_grain*9+5] =
rotation_matrices[i_grain][1][2];
75 vector[start_entry+number_of_grains+i_grain*9+6] =
rotation_matrices[i_grain][2][0];
76 vector[start_entry+number_of_grains+i_grain*9+7] =
rotation_matrices[i_grain][2][1];
77 vector[start_entry+number_of_grains+i_grain*9+8] =
rotation_matrices[i_grain][2][2];
std::vector< double > sizes
std::vector< std::array< std::array< double, 3 >, 3 > > rotation_matrices
void unroll_into(std::vector< double > &vector, const size_t start_entry=0) const