Lines Matching +full:- +full:s
1 // Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors.
2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
4 // SPDX-License-Identifier: BSD-2-Clause
9 /// Operator for Navier-Stokes example using PETSc
33 …CeedScalar Th_cheb[BLASIUS_MAX_N_CHEBYSHEV - 1]; // !< Chebyshev coefficien…
43 // Chebyshev polynomials T_0, T_1, T_2 of the first kind in (-1,1) in ChebyshevEval()
44 {1, x, 2 * x * x - 1}, in ChebyshevEval()
50 // i-th derivative of f in ChebyshevEval()
54 // T_n(x) = 2xT_{n-1}(x) - T_{n-2}(x) in ChebyshevEval()
55 table[0][i % 3] = 2 * x * table[0][(i - 1) % 3] - table[0][(i - 2) % 3]; in ChebyshevEval()
58 // T'_{n}(x)/n = 2T_{n-1}(x) + T'_{n-2}(x)/n-2 in ChebyshevEval()
59 table[j][i % 3] = i * (2 * table[j - 1][(i - 1) % 3] + table[j][(i - 2) % 3] / (i - 2)); in ChebyshevEval()
66 // Transform derivatives from Chebyshev [-1, 1] to [0, eta_max]. in ChebyshevEval()
76 CeedInt N = blasius->n_cheb; in BlasiusSolution()
77 CeedScalar mu = blasius->newtonian_ctx.mu; in BlasiusSolution()
78 State S_infty = blasius->S_infty; in BlasiusSolution()
81 CeedScalar eta = x[1] * sqrt(U_infty / (nu * (x0 + x[0] - x_inflow))); in BlasiusSolution()
82 CeedScalar X = 2 * (eta / blasius->eta_max) - 1.; in BlasiusSolution()
83 CeedScalar Rd = GasConstant(&blasius->newtonian_ctx); in BlasiusSolution()
86 ChebyshevEval(N, blasius->Tf_cheb, X, blasius->eta_max, f); in BlasiusSolution()
87 ChebyshevEval(N - 1, blasius->Th_cheb, X, blasius->eta_max, h); in BlasiusSolution()
89 *t12 = mu * U_infty * f[2] * sqrt(U_infty / (nu * (x0 + x[0] - x_inflow))); in BlasiusSolution()
93 Y[2] = 0.5 * sqrt(nu * U_infty / (x0 + x[0] - x_inflow)) * (eta * f[1] - f[0]); in BlasiusSolution()
97 return StateFromY(&blasius->newtonian_ctx, Y); in BlasiusSolution()
108 const NewtonianIdealGasContext gas = &context->newtonian_ctx; in ICsBlasius()
109 const CeedScalar mu = context->newtonian_ctx.mu; in ICsBlasius()
110 const CeedScalar delta0 = context->delta0; in ICsBlasius()
111 const CeedScalar x_inflow = context->x_inflow; in ICsBlasius()
114 const State S_infty = context->S_infty; in ICsBlasius()
121 State s = BlasiusSolution(context, x, x0, x_inflow, S_infty.U.density, &t12); in ICsBlasius() local
124 StateToQ(gas, s, q, gas->state_var); in ICsBlasius()
137 CeedScalar(*jac_data_sur) = context->newtonian_ctx.is_implicit ? out[1] : NULL; in Blasius_Inflow()
139 const bool is_implicit = context->implicit; in Blasius_Inflow()
140 const NewtonianIdealGasContext gas = &context->newtonian_ctx; in Blasius_Inflow()
141 State S_infty = context->S_infty; in Blasius_Inflow()
144 …const CeedScalar x0 = U_infty * rho_0 / (gas->mu * 25 / Square(context->del… in Blasius_Inflow()
150 wdetJb *= is_implicit ? -1. : 1.; in Blasius_Inflow()
155 State s = BlasiusSolution(context, x, x0, context->x_inflow, rho_0, &t12); in Blasius_Inflow() local
161 if (context->weakT) { // density from the current solution in Blasius_Inflow()
162 s.U.density = s_int.U.density; in Blasius_Inflow()
163 s.Y = StatePrimitiveFromConservative(gas, s.U); in Blasius_Inflow()
165 s.U.E_total = s_int.U.E_total; in Blasius_Inflow()
166 s.Y = StatePrimitiveFromConservative(gas, s.U); in Blasius_Inflow()
170 FluxInviscid(&context->newtonian_ctx, s, Flux_inviscid); in Blasius_Inflow()
180 for (CeedInt j = 0; j < 5; j++) v[j][i] = -wdetJb * Flux[j]; in Blasius_Inflow()
194 const NewtonianIdealGasContext gas = &context->newtonian_ctx; in Blasius_Inflow_Jacobian()
195 const bool is_implicit = context->implicit; in Blasius_Inflow_Jacobian()
198 const State S_infty = context->S_infty; in Blasius_Inflow_Jacobian()
201 …const CeedScalar x0 = U_infty * rho_0 / (gas->mu * 25 / Square(context->del… in Blasius_Inflow_Jacobian()
206 wdetJb *= is_implicit ? -1. : 1.; in Blasius_Inflow_Jacobian()
211 State s = BlasiusSolution(context, x, x0, 0, rho_0, &t12); in Blasius_Inflow_Jacobian() local
215 if (context->weakT) { in Blasius_Inflow_Jacobian()
218 CeedScalar dE_internal = drho * gas->cv * S_infty.Y.temperature; in Blasius_Inflow_Jacobian()
219 CeedScalar dE_kinetic = .5 * drho * Dot3(s.Y.velocity, s.Y.velocity); in Blasius_Inflow_Jacobian()
226 dP = dE * (gamma - 1.); in Blasius_Inflow_Jacobian()
229 const CeedScalar u_normal = Dot3(norm, s.Y.velocity); in Blasius_Inflow_Jacobian()
231 v[0][i] = -wdetJb * drho * u_normal; in Blasius_Inflow_Jacobian()
233 v[j + 1][i] = -wdetJb * (drho * u_normal * s.Y.velocity[j] + norm[j] * dP); in Blasius_Inflow_Jacobian()
235 v[4][i] = -wdetJb * u_normal * (dE + dP); in Blasius_Inflow_Jacobian()