Lines Matching full:0
31 int stabilization; // See StabilizationType: 0=none, 1=SU, 2=SUPG
75 const CeedScalar x = X[0], y = X[1]; // Coordinates in Exact_Euler()
77 const CeedScalar xc = center[0] + mean_velocity[0] * time; in Exact_Euler()
87 CeedScalar rho, P, T, E, u[3] = {0.}; in Exact_Euler()
91 case 0: // Traveling vortex in Exact_Euler()
98 u[0] = mean_velocity[0] - C * y0; in Exact_Euler()
102 q[0] = rho; in Exact_Euler()
103 q[1] = rho * u[0]; in Exact_Euler()
106 q[4] = P / (gamma - 1.) + rho * (u[0] * u[0] + u[1] * u[1]) / 2.; in Exact_Euler()
113 q[0] = rho; in Exact_Euler()
114 q[1] = rho * u[0]; in Exact_Euler()
122 u[0] = mean_velocity[0]; in Exact_Euler()
126 q[0] = rho; in Exact_Euler()
127 q[1] = rho * u[0]; in Exact_Euler()
140 q[0] = rho; in Exact_Euler()
141 q[1] = rho * u[0]; in Exact_Euler()
144 q[4] = rho * (cv * T + (u[0] * u[0] + u[1] * u[1]) / 2.); in Exact_Euler()
151 u[0] = mean_velocity[0]; in Exact_Euler()
155 q[0] = rho; in Exact_Euler()
156 q[1] = rho * u[0]; in Exact_Euler()
159 q[4] = rho * (cv * T + (u[0] * u[0] + u[1] * u[1]) / 2.); in Exact_Euler()
163 T = 1. - (r < 1. ? S_bubble : 0.); in Exact_Euler()
165 u[0] = mean_velocity[0]; in Exact_Euler()
169 q[0] = rho; in Exact_Euler()
170 q[1] = rho * u[0]; in Exact_Euler()
173 q[4] = rho * (cv * T + (u[0] * u[0] + u[1] * u[1]) / 2.); in Exact_Euler()
176 return 0; in Exact_Euler()
184 CeedScalar u_sq = u[0] * u[0] + u[1] * u[1] + u[2] * u[2]; // Velocity square in ConvectiveFluxJacobian_Euler()
185 for (CeedInt i = 0; i < 3; i++) { // Jacobian matrices for 3 directions in ConvectiveFluxJacobian_Euler()
186 for (CeedInt j = 0; j < 3; j++) { // Rows of each Jacobian matrix in ConvectiveFluxJacobian_Euler()
187 dF[i][j + 1][0] = ((i == j) ? ((gamma - 1.) * (u_sq / 2.)) : 0.) - u[i] * u[j]; in ConvectiveFluxJacobian_Euler()
188 for (CeedInt k = 0; k < 3; k++) { // Columns of each Jacobian matrix in ConvectiveFluxJacobian_Euler()
189 dF[i][0][k + 1] = ((i == k) ? 1. : 0.); in ConvectiveFluxJacobian_Euler()
190 …dF[i][j + 1][k + 1] = ((j == k) ? u[i] : 0.) + ((i == k) ? u[j] : 0.) - ((i == j) ? u[k] : 0.) * (… in ConvectiveFluxJacobian_Euler()
191 …dF[i][4][k + 1] = ((i == k) ? (E * gamma / rho - (gamma - 1.) * u_sq / 2.) : 0.) - (gamma - 1.… in ConvectiveFluxJacobian_Euler()
193 dF[i][j + 1][4] = ((i == j) ? (gamma - 1.) : 0.); in ConvectiveFluxJacobian_Euler()
195 dF[i][4][0] = u[i] * ((gamma - 1.) * u_sq - E * gamma / rho); in ConvectiveFluxJacobian_Euler()
217 for (CeedInt i = 0; i < 3; i++) { in Tau_spatial()
219 …CeedScalar h = 2 / sqrt(dXdx[0][i] * dXdx[0][i] + dXdx[1][i] * dXdx[1][i] + dXdx[2][i] * dXdx[2][i… in Tau_spatial()
230 const CeedScalar(*X)[CEED_Q_VLA] = (const CeedScalar(*)[CEED_Q_VLA])in[0]; in ICsEuler()
231 CeedScalar(*q0)[CEED_Q_VLA] = (CeedScalar(*)[CEED_Q_VLA])out[0]; in ICsEuler()
235 CeedPragmaSIMD for (CeedInt i = 0; i < Q; i++) { in ICsEuler()
236 const CeedScalar x[] = {X[0][i], X[1][i], X[2][i]}; in ICsEuler()
237 CeedScalar q[5] = {0.}; in ICsEuler()
240 for (CeedInt j = 0; j < 5; j++) q0[j][i] = q[j]; in ICsEuler()
242 return 0; in ICsEuler()
256 // drho/dt + div( U ) = 0
257 // dU/dt + div( rho (u x u) + P I3 ) = 0
258 // dE/dt + div( (E + P) u ) = 0
270 const CeedScalar(*q)[CEED_Q_VLA] = (const CeedScalar(*)[CEED_Q_VLA])in[0]; in Euler()
273 CeedScalar(*v)[CEED_Q_VLA] = (CeedScalar(*)[CEED_Q_VLA])out[0]; in Euler()
280 CeedPragmaSIMD for (CeedInt i = 0; i < Q; i++) { in Euler()
283 const CeedScalar rho = q[0][i]; in Euler()
286 const CeedScalar drho[3] = {dq[0][0][i], dq[1][0][i], dq[2][0][i]}; in Euler()
288 {dq[0][1][i], dq[1][1][i], dq[2][1][i]}, in Euler()
289 {dq[0][2][i], dq[1][2][i], dq[2][2][i]}, in Euler()
290 {dq[0][3][i], dq[1][3][i], dq[2][3][i]} in Euler()
292 const CeedScalar dE[3] = {dq[0][4][i], dq[1][4][i], dq[2][4][i]}; in Euler()
296 CeedScalar drhodx[3] = {0.}; in Euler()
297 CeedScalar dEdx[3] = {0.}; in Euler()
298 CeedScalar dUdx[3][3] = {{0.}}; in Euler()
299 CeedScalar dXdxdXdxT[3][3] = {{0.}}; in Euler()
300 for (CeedInt j = 0; j < 3; j++) { in Euler()
301 for (CeedInt k = 0; k < 3; k++) { in Euler()
304 for (CeedInt l = 0; l < 3; l++) { in Euler()
311 …const CeedScalar E_kinetic = 0.5 * rho * (u[0] * u[0] + u[1] * u[1] + u[2] * u[2]), E_internal = E… in Euler()
316 for (CeedInt j = 0; j < 5; j++) { in Euler()
317 v[j][i] = 0.; in Euler()
318 for (CeedInt k = 0; k < 3; k++) dv[k][j][i] = 0.; in Euler()
323 …for (CeedInt j = 0; j < 3; j++) dv[j][0][i] += wdetJ * (rho * u[0] * dXdx[j][0] + rho * u[1] * dXd… in Euler()
326 for (CeedInt j = 0; j < 3; j++) { in Euler()
327 for (CeedInt k = 0; k < 3; k++) { in Euler()
328 …[j + 1][i] += wdetJ * ((rho * u[j] * u[0] + (j == 0 ? P : 0.)) * dXdx[k][0] + (rho * u[j] * u[1] +… in Euler()
329 (rho * u[j] * u[2] + (j == 2 ? P : 0.)) * dXdx[k][2]); in Euler()
334 …for (CeedInt j = 0; j < 3; j++) dv[j][4][i] += wdetJ * (E + P) * (u[0] * dXdx[j][0] + u[1] * dXdx[… in Euler()
338 CeedScalar jacob_F_conv[3][5][5] = {{{0.}}}; in Euler()
343 for (CeedInt j = 0; j < 3; j++) { in Euler()
344 dqdx[0][j] = drhodx[j]; in Euler()
346 for (CeedInt k = 0; k < 3; k++) dqdx[k + 1][j] = dUdx[k][j]; in Euler()
350 CeedScalar strong_conv[5] = {0.}; in Euler()
351 for (CeedInt j = 0; j < 3; j++) { in Euler()
352 for (CeedInt k = 0; k < 5; k++) { in Euler()
353 for (CeedInt l = 0; l < 5; l++) strong_conv[k] += jacob_F_conv[j][k][l] * dqdx[l][j]; in Euler()
360 CeedScalar Tau_x[3] = {0.}; in Euler()
364 CeedScalar stab[5][3] = {{0.}}; in Euler()
366 case 0: // Galerkin in Euler()
369 for (CeedInt j = 0; j < 3; j++) { in Euler()
370 for (CeedInt k = 0; k < 5; k++) { in Euler()
371 … for (CeedInt l = 0; l < 5; l++) stab[k][j] += jacob_F_conv[j][k][l] * Tau_x[j] * strong_conv[l]; in Euler()
375 for (CeedInt j = 0; j < 5; j++) { in Euler()
376 …for (CeedInt k = 0; k < 3; k++) dv[k][j][i] -= wdetJ * (stab[j][0] * dXdx[k][0] + stab[j][1] * dXd… in Euler()
383 return 0; in Euler()
390 const CeedScalar(*q)[CEED_Q_VLA] = (const CeedScalar(*)[CEED_Q_VLA])in[0]; in IFunction_Euler()
394 CeedScalar(*v)[CEED_Q_VLA] = (CeedScalar(*)[CEED_Q_VLA])out[0]; in IFunction_Euler()
401 const CeedScalar zeros[14] = {0.}; in IFunction_Euler()
403 CeedPragmaSIMD for (CeedInt i = 0; i < Q; i++) { in IFunction_Euler()
406 const CeedScalar rho = q[0][i]; in IFunction_Euler()
409 const CeedScalar drho[3] = {dq[0][0][i], dq[1][0][i], dq[2][0][i]}; in IFunction_Euler()
411 {dq[0][1][i], dq[1][1][i], dq[2][1][i]}, in IFunction_Euler()
412 {dq[0][2][i], dq[1][2][i], dq[2][2][i]}, in IFunction_Euler()
413 {dq[0][3][i], dq[1][3][i], dq[2][3][i]} in IFunction_Euler()
415 const CeedScalar dE[3] = {dq[0][4][i], dq[1][4][i], dq[2][4][i]}; in IFunction_Euler()
419 CeedScalar drhodx[3] = {0.}; in IFunction_Euler()
420 CeedScalar dEdx[3] = {0.}; in IFunction_Euler()
421 CeedScalar dUdx[3][3] = {{0.}}; in IFunction_Euler()
422 CeedScalar dXdxdXdxT[3][3] = {{0.}}; in IFunction_Euler()
423 for (CeedInt j = 0; j < 3; j++) { in IFunction_Euler()
424 for (CeedInt k = 0; k < 3; k++) { in IFunction_Euler()
427 for (CeedInt l = 0; l < 3; l++) { in IFunction_Euler()
433 …const CeedScalar E_kinetic = 0.5 * rho * (u[0] * u[0] + u[1] * u[1] + u[2] * u[2]), E_internal = E… in IFunction_Euler()
438 for (CeedInt j = 0; j < 5; j++) { in IFunction_Euler()
439 v[j][i] = 0.; in IFunction_Euler()
440 for (CeedInt k = 0; k < 3; k++) dv[k][j][i] = 0.; in IFunction_Euler()
443 for (CeedInt j = 0; j < 5; j++) v[j][i] += wdetJ * q_dot[j][i]; in IFunction_Euler()
447 …for (CeedInt j = 0; j < 3; j++) dv[j][0][i] -= wdetJ * (rho * u[0] * dXdx[j][0] + rho * u[1] * dXd… in IFunction_Euler()
450 for (CeedInt j = 0; j < 3; j++) { in IFunction_Euler()
451 for (CeedInt k = 0; k < 3; k++) { in IFunction_Euler()
452 …[j + 1][i] -= wdetJ * ((rho * u[j] * u[0] + (j == 0 ? P : 0.)) * dXdx[k][0] + (rho * u[j] * u[1] +… in IFunction_Euler()
453 (rho * u[j] * u[2] + (j == 2 ? P : 0.)) * dXdx[k][2]); in IFunction_Euler()
458 …for (CeedInt j = 0; j < 3; j++) dv[j][4][i] -= wdetJ * (E + P) * (u[0] * dXdx[j][0] + u[1] * dXdx[… in IFunction_Euler()
462 CeedScalar jacob_F_conv[3][5][5] = {{{0.}}}; in IFunction_Euler()
467 for (CeedInt j = 0; j < 3; j++) { in IFunction_Euler()
468 dqdx[0][j] = drhodx[j]; in IFunction_Euler()
470 for (CeedInt k = 0; k < 3; k++) dqdx[k + 1][j] = dUdx[k][j]; in IFunction_Euler()
474 CeedScalar strong_conv[5] = {0.}; in IFunction_Euler()
475 for (CeedInt j = 0; j < 3; j++) { in IFunction_Euler()
476 for (CeedInt k = 0; k < 5; k++) { in IFunction_Euler()
477 for (CeedInt l = 0; l < 5; l++) strong_conv[k] += jacob_F_conv[j][k][l] * dqdx[l][j]; in IFunction_Euler()
483 for (CeedInt j = 0; j < 5; j++) strong_res[j] = q_dot[j][i] + strong_conv[j]; in IFunction_Euler()
488 CeedScalar Tau_x[3] = {0.}; in IFunction_Euler()
492 CeedScalar stab[5][3] = {{0.}}; in IFunction_Euler()
494 case 0: // Galerkin in IFunction_Euler()
497 for (CeedInt j = 0; j < 3; j++) { in IFunction_Euler()
498 for (CeedInt k = 0; k < 5; k++) { in IFunction_Euler()
499 … for (CeedInt l = 0; l < 5; l++) stab[k][j] += jacob_F_conv[j][k][l] * Tau_x[j] * strong_conv[l]; in IFunction_Euler()
503 for (CeedInt j = 0; j < 5; j++) { in IFunction_Euler()
504 …for (CeedInt k = 0; k < 3; k++) dv[k][j][i] += wdetJ * (stab[j][0] * dXdx[k][0] + stab[j][1] * dXd… in IFunction_Euler()
508 for (CeedInt j = 0; j < 3; j++) { in IFunction_Euler()
509 for (CeedInt k = 0; k < 5; k++) { in IFunction_Euler()
510 … for (CeedInt l = 0; l < 5; l++) stab[k][j] = jacob_F_conv[j][k][l] * Tau_x[j] * strong_res[l]; in IFunction_Euler()
514 for (CeedInt j = 0; j < 5; j++) { in IFunction_Euler()
515 …for (CeedInt k = 0; k < 3; k++) dv[k][j][i] += wdetJ * (stab[j][0] * dXdx[k][0] + stab[j][1] * dXd… in IFunction_Euler()
519 StoredValuesPack(Q, i, 0, 14, zeros, jac_data); in IFunction_Euler()
521 return 0; in IFunction_Euler()
530 CeedScalar(*v)[CEED_Q_VLA] = (CeedScalar(*)[CEED_Q_VLA])out[0]; in TravelingVortex_Inflow()
543 for (CeedInt i = 0; i < 3; i++) mean_velocity[i] = 0.; in TravelingVortex_Inflow()
550 CeedPragmaSIMD for (CeedInt i = 0; i < Q; i++) { in TravelingVortex_Inflow()
556 …const CeedScalar face_normal = norm[0] * mean_velocity[0] + norm[1] * mean_velocity[1] + norm[2] *… in TravelingVortex_Inflow()
559 for (CeedInt j = 0; j < 5; j++) v[j][i] = 0.; in TravelingVortex_Inflow()
562 if (face_normal > 0) { in TravelingVortex_Inflow()
565 …const CeedScalar E_kinetic_inlet = (mean_velocity[0] * mean_velocity[0] + mean_velocity[1] * mean_… in TravelingVortex_Inflow()
571 v[0][i] -= wdetJb * rho_inlet * face_normal; in TravelingVortex_Inflow()
574 …for (CeedInt j = 0; j < 3; j++) v[j + 1][i] -= wdetJb * (rho_inlet * face_normal * mean_velocity[j… in TravelingVortex_Inflow()
580 return 0; in TravelingVortex_Inflow()
590 const CeedScalar(*q)[CEED_Q_VLA] = (const CeedScalar(*)[CEED_Q_VLA])in[0]; in Euler_Outflow()
592 CeedScalar(*v)[CEED_Q_VLA] = (CeedScalar(*)[CEED_Q_VLA])out[0]; in Euler_Outflow()
600 CeedPragmaSIMD for (CeedInt i = 0; i < Q; i++) { in Euler_Outflow()
603 const CeedScalar rho = q[0][i]; in Euler_Outflow()
612 …const CeedScalar face_normal = norm[0] * mean_velocity[0] + norm[1] * mean_velocity[1] + norm[2] *… in Euler_Outflow()
615 for (CeedInt j = 0; j < 5; j++) v[j][i] = 0; in Euler_Outflow()
618 if (face_normal > 0) { // outflow in Euler_Outflow()
619 const CeedScalar E_kinetic = (u[0] * u[0] + u[1] * u[1]) / 2.; in Euler_Outflow()
621 … const CeedScalar u_normal = norm[0] * u[0] + norm[1] * u[1] + norm[2] * u[2]; // Normal velocity in Euler_Outflow()
624 v[0][i] -= wdetJb * rho * u_normal; in Euler_Outflow()
627 for (CeedInt j = 0; j < 3; j++) v[j + 1][i] -= wdetJb * (rho * u_normal * u[j] + norm[j] * P); in Euler_Outflow()
633 return 0; in Euler_Outflow()