71 int numberOfData = s.NumberOfUnknowns + s.NumberOfAuxiliaryVariables;
72 kernels::idx4 id_xyzf(basisSize, basisSize, basisSize, numberOfData);
82 element.getIndexOffset(index_offset);
84 for (
int k = 0; k < basisSize; k++) {
85 int e_k = index_offset[Coordinate::Z] + k;
86 for (
int j = 0; j < basisSize; j++) {
87 int e_j = index_offset[Coordinate::Y] + j;
88 for (
int i = 0; i < basisSize; i++) {
89 int e_i = index_offset[Coordinate::X] + i;
91 luh[id_xyzf(k, j, i, s.curve_grid + 0)] = element(
92 2, Coordinate::Z, e_k, Coordinate::Y, e_j, Coordinate::X, e_i
94 luh[id_xyzf(k, j, i, s.curve_grid + 1)] = element(
95 1, Coordinate::Z, e_k, Coordinate::Y, e_j, Coordinate::X, e_i
97 luh[id_xyzf(k, j, i, s.curve_grid + 2)] = element(
98 0, Coordinate::Z, e_k, Coordinate::Y, e_j, Coordinate::X, e_i
105 for (
int k = 0; k < basisSize; k++) {
106 for (
int j = 0; j < basisSize; j++) {
107 for (
int i = 0; i < basisSize; i++) {
108 luh[id_xyzf(k, j, i, s.curve_grid + 0)] =
solver_info->
nodes[i] * dx[0] + center[0] - dx[0] / 2;
109 luh[id_xyzf(k, j, i, s.curve_grid + 1)] =
solver_info->
nodes[j] * dx[1] + center[1] - dx[1] / 2;
110 luh[id_xyzf(k, j, i, s.curve_grid + 2)] =
solver_info->
nodes[k] * dx[2] + center[2] - dx[2] / 2;
116 double derivatives[basisSize * basisSize * basisSize * 10];
117 std::fill_n(derivatives, basisSize * basisSize * basisSize * 10, 0.0);
123 for (
int k = 0; k < basisSize; k++) {
124 for (
int j = 0; j < basisSize; j++) {
125 for (
int i = 0; i < basisSize; i++) {
126 derivatives[id_der(k, j, i, 0)] = 1.0;
127 derivatives[id_der(k, j, i, 1)] = 1.0;
128 derivatives[id_der(k, j, i, 5)] = 1.0;
129 derivatives[id_der(k, j, i, 9)] = 1.0;
137 for (
int k = 0; k < basisSize; k++) {
138 for (
int j = 0; j < basisSize; j++) {
139 for (
int i = 0; i < basisSize; i++) {
140 std::copy_n(derivatives + id_der(k, j, i, 0), 10, luh + id_xyzf(k, j, i, s.jacobian));
147 for (
int k = 0; k < basisSize; k++) {
148 for (
int j = 0; j < basisSize; j++) {
149 for (
int i = 0; i < basisSize; i++) {
151 luh[id_xyzf(k, j, i, s.curve_grid + 0)],
152 luh[id_xyzf(k, j, i, s.curve_grid + 1)],
153 luh[id_xyzf(k, j, i, s.curve_grid + 2)]};
154 this->scenario->initUnknownsPointwise(coords, curv_center, t, dt, luh + id_xyzf(k, j, i, 0));
159 for (
int k = 0; k < basisSize; k++) {
160 for (
int j = 0; j < basisSize; j++) {
161 for (
int i = 0; i < basisSize; i++) {
162 for (
int m = 0; m < numberOfData; m++) {
188 int numberOfData = s.NumberOfUnknowns + s.NumberOfAuxiliaryVariables;
189 kernels::idx4 id_xyzf(basisSize, basisSize, basisSize, numberOfData);
195 for (
int i = 0; i < basisSize; i++) {
196 for (
int j = 0; j < basisSize; j++) {
198 dx[0], luh[id_xyzf(i, j, basisSize - 1, s.curve_grid + 0)] - luh[id_xyzf(i, j, 0, s.curve_grid + 0)]
201 dx[1], luh[id_xyzf(i, basisSize - 1, j, s.curve_grid + 1)] - luh[id_xyzf(i, 0, j, s.curve_grid + 1)]
204 dx[2], luh[id_xyzf(basisSize - 1, i, j, s.curve_grid + 2)] - luh[id_xyzf(0, i, j, s.curve_grid + 2)]
211 int center_i1 = int(std::ceil(basisSize / 2.0));
212 int center_i2 = int(std::floor(basisSize / 2.0));
215 int numberOfData = s.NumberOfUnknowns + s.NumberOfAuxiliaryVariables;
216 kernels::idx4 id_xyzf(basisSize, basisSize, basisSize, numberOfData);
218 center[0] = (luh[id_xyzf(center_i1, center_i1, center_i1, s.curve_grid + 0)]
219 + luh[id_xyzf(center_i2, center_i2, center_i2, s.curve_grid + 0)])
221 center[1] = (luh[id_xyzf(center_i1, center_i1, center_i1, s.curve_grid + 1)]
222 + luh[id_xyzf(center_i2, center_i2, center_i2, s.curve_grid + 1)])
224 center[2] = (luh[id_xyzf(center_i1, center_i1, center_i1, s.curve_grid + 2)]
225 + luh[id_xyzf(center_i2, center_i2, center_i2, s.curve_grid + 2)])