Skip to content
Snippets Groups Projects
Commit b872a82e authored by Cristian Lalescu's avatar Cristian Lalescu
Browse files

adds names for GSL tensor indices

parent 9ab34572
Branches
Tags
No related merge requests found
Pipeline #84905 passed
...@@ -51,6 +51,7 @@ enum IDX_COMPONENT_3D { ...@@ -51,6 +51,7 @@ enum IDX_COMPONENT_3D {
}; };
enum IDX_COMPONENT_DEL_3D { enum IDX_COMPONENT_DEL_3D {
// Di_j is (derivative with respect to i direction) of (component j)
IDXC_DX_X = 0, IDXC_DX_X = 0,
IDXC_DX_Y = 1, IDXC_DX_Y = 1,
IDXC_DX_Z = 2, IDXC_DX_Z = 2,
...@@ -62,6 +63,18 @@ enum IDX_COMPONENT_DEL_3D { ...@@ -62,6 +63,18 @@ enum IDX_COMPONENT_DEL_3D {
IDXC_DZ_Z = 8, IDXC_DZ_Z = 8,
}; };
enum IDX_COMPONENT_GSL_3x3D {
IDXC_GSL_XX = 0,
IDXC_GSL_XY = 1,
IDXC_GSL_XZ = 2,
IDXC_GSL_YX = 3,
IDXC_GSL_YY = 4,
IDXC_GSL_YZ = 5,
IDXC_GSL_ZX = 6,
IDXC_GSL_ZY = 7,
IDXC_GSL_ZZ = 8,
};
enum IDX_VARIABLE_3D { enum IDX_VARIABLE_3D {
IDXV_X = 2, IDXV_X = 2,
IDXV_Y = 1, IDXV_Y = 1,
......
...@@ -99,36 +99,36 @@ class deformation_tensor_rhs: public abstract_particle_rhs ...@@ -99,36 +99,36 @@ class deformation_tensor_rhs: public abstract_particle_rhs
result[idx15 + IDXC_Y] = pdata3[idx3 + IDXC_Y]; result[idx15 + IDXC_Y] = pdata3[idx3 + IDXC_Y];
result[idx15 + IDXC_Z] = pdata3[idx3 + IDXC_Z]; result[idx15 + IDXC_Z] = pdata3[idx3 + IDXC_Z];
// ODE of the deformation tensor: (dt F_{ij}) = F_{kj} (du_i/dk) // ODE of the deformation tensor: (dt F_{ij}) = F_{kj} (du_i/dx_k)
// We save the matrix F_{ij} = dX_i/dx_j in row-major // We save the matrix F_{ij} = dX_i/dx_j in row-major
// to be compatible with GSL // to be compatible with GSL
result[idx15 + 3 + 0] = pdata9[idx9+IDXC_DX_X]*current_state[idx15 + 3 + IDXC_DX_X] result[idx15 + 3 + IDXC_GSL_XX] = pdata9[idx9+IDXC_DX_X]*current_state[idx15 + 3 + IDXC_DX_X]
+ pdata9[idx9+IDXC_DY_X]*current_state[idx15 + 3 + IDXC_DX_Y] + pdata9[idx9+IDXC_DY_X]*current_state[idx15 + 3 + IDXC_DX_Y]
+ pdata9[idx9+IDXC_DZ_X]*current_state[idx15 + 3 + IDXC_DX_Z]; + pdata9[idx9+IDXC_DZ_X]*current_state[idx15 + 3 + IDXC_DX_Z];
result[idx15 + 3 + 3] = pdata9[idx9+IDXC_DX_Y]*current_state[idx15 + 3 + IDXC_DX_X] result[idx15 + 3 + IDXC_GSL_YX] = pdata9[idx9+IDXC_DX_Y]*current_state[idx15 + 3 + IDXC_DX_X]
+ pdata9[idx9+IDXC_DY_Y]*current_state[idx15 + 3 + IDXC_DX_Y] + pdata9[idx9+IDXC_DY_Y]*current_state[idx15 + 3 + IDXC_DX_Y]
+ pdata9[idx9+IDXC_DZ_Y]*current_state[idx15 + 3 + IDXC_DX_Z]; + pdata9[idx9+IDXC_DZ_Y]*current_state[idx15 + 3 + IDXC_DX_Z];
result[idx15 + 3 + 6] = pdata9[idx9+IDXC_DX_Z]*current_state[idx15 + 3 + IDXC_DX_X] result[idx15 + 3 + IDXC_GSL_ZX] = pdata9[idx9+IDXC_DX_Z]*current_state[idx15 + 3 + IDXC_DX_X]
+ pdata9[idx9+IDXC_DY_Z]*current_state[idx15 + 3 + IDXC_DX_Y] + pdata9[idx9+IDXC_DY_Z]*current_state[idx15 + 3 + IDXC_DX_Y]
+ pdata9[idx9+IDXC_DZ_Z]*current_state[idx15 + 3 + IDXC_DX_Z]; + pdata9[idx9+IDXC_DZ_Z]*current_state[idx15 + 3 + IDXC_DX_Z];
result[idx15 + 3 + 1] = pdata9[idx9+IDXC_DX_X]*current_state[idx15 + 3 + IDXC_DY_X] result[idx15 + 3 + IDXC_GSL_XY] = pdata9[idx9+IDXC_DX_X]*current_state[idx15 + 3 + IDXC_DY_X]
+ pdata9[idx9+IDXC_DY_X]*current_state[idx15 + 3 + IDXC_DY_Y] + pdata9[idx9+IDXC_DY_X]*current_state[idx15 + 3 + IDXC_DY_Y]
+ pdata9[idx9+IDXC_DZ_X]*current_state[idx15 + 3 + IDXC_DY_Z]; + pdata9[idx9+IDXC_DZ_X]*current_state[idx15 + 3 + IDXC_DY_Z];
result[idx15 + 3 + 4] = pdata9[idx9+IDXC_DX_Y]*current_state[idx15 + 3 + IDXC_DY_X] result[idx15 + 3 + IDXC_GSL_YY] = pdata9[idx9+IDXC_DX_Y]*current_state[idx15 + 3 + IDXC_DY_X]
+ pdata9[idx9+IDXC_DY_Y]*current_state[idx15 + 3 + IDXC_DY_Y] + pdata9[idx9+IDXC_DY_Y]*current_state[idx15 + 3 + IDXC_DY_Y]
+ pdata9[idx9+IDXC_DZ_Y]*current_state[idx15 + 3 + IDXC_DY_Z]; + pdata9[idx9+IDXC_DZ_Y]*current_state[idx15 + 3 + IDXC_DY_Z];
result[idx15 + 3 + 7] = pdata9[idx9+IDXC_DX_Z]*current_state[idx15 + 3 + IDXC_DY_X] result[idx15 + 3 + IDXC_GSL_ZY] = pdata9[idx9+IDXC_DX_Z]*current_state[idx15 + 3 + IDXC_DY_X]
+ pdata9[idx9+IDXC_DY_Z]*current_state[idx15 + 3 + IDXC_DY_Y] + pdata9[idx9+IDXC_DY_Z]*current_state[idx15 + 3 + IDXC_DY_Y]
+ pdata9[idx9+IDXC_DZ_Z]*current_state[idx15 + 3 + IDXC_DY_Z]; + pdata9[idx9+IDXC_DZ_Z]*current_state[idx15 + 3 + IDXC_DY_Z];
result[idx15 + 3 + 2] = pdata9[idx9+IDXC_DX_X]*current_state[idx15 + 3 + IDXC_DZ_X] result[idx15 + 3 + IDXC_GSL_XZ] = pdata9[idx9+IDXC_DX_X]*current_state[idx15 + 3 + IDXC_DZ_X]
+ pdata9[idx9+IDXC_DY_X]*current_state[idx15 + 3 + IDXC_DZ_Y] + pdata9[idx9+IDXC_DY_X]*current_state[idx15 + 3 + IDXC_DZ_Y]
+ pdata9[idx9+IDXC_DZ_X]*current_state[idx15 + 3 + IDXC_DZ_Z]; + pdata9[idx9+IDXC_DZ_X]*current_state[idx15 + 3 + IDXC_DZ_Z];
result[idx15 + 3 + 5] = pdata9[idx9+IDXC_DX_Y]*current_state[idx15 + 3 + IDXC_DZ_X] result[idx15 + 3 + IDXC_GSL_YZ] = pdata9[idx9+IDXC_DX_Y]*current_state[idx15 + 3 + IDXC_DZ_X]
+ pdata9[idx9+IDXC_DY_Y]*current_state[idx15 + 3 + IDXC_DZ_Y] + pdata9[idx9+IDXC_DY_Y]*current_state[idx15 + 3 + IDXC_DZ_Y]
+ pdata9[idx9+IDXC_DZ_Y]*current_state[idx15 + 3 + IDXC_DZ_Z]; + pdata9[idx9+IDXC_DZ_Y]*current_state[idx15 + 3 + IDXC_DZ_Z];
result[idx15 + 3 + 8] = pdata9[idx9+IDXC_DX_Z]*current_state[idx15 + 3 + IDXC_DZ_X] result[idx15 + 3 + IDXC_GSL_ZZ] = pdata9[idx9+IDXC_DX_Z]*current_state[idx15 + 3 + IDXC_DZ_X]
+ pdata9[idx9+IDXC_DY_Z]*current_state[idx15 + 3 + IDXC_DZ_Y] + pdata9[idx9+IDXC_DY_Z]*current_state[idx15 + 3 + IDXC_DZ_Y]
+ pdata9[idx9+IDXC_DZ_Z]*current_state[idx15 + 3 + IDXC_DZ_Z]; + pdata9[idx9+IDXC_DZ_Z]*current_state[idx15 + 3 + IDXC_DZ_Z];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment