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
21 …id InternalDampingLayer(const NewtonianIdealGasContext context, const State s, const CeedScalar si… in InternalDampingLayer() argument
24 State damp_s = StateFromY_fwd(context, s, damp_Y); in InternalDampingLayer()
41 State s = StateFromPrimitive(&context->gas, context->reference); in ICsNewtonianIG() local
42 StateToQ(&context->gas, s, q, state_var); in ICsNewtonianIG()
73 const State s = StateFromQ(context, qi, state_var); in MassFunction_Newtonian() local
87 Tau_diagPrim(context, s, dXdx, context->dt, Tau_d); in MassFunction_Newtonian()
88 Stabilization(context, s, Tau_d, grad_s, U_dot, body_force, stab); in MassFunction_Newtonian()
105 // This QFunction implements the following formulation of Navier-Stokes with explicit time stepping…
107 // This is 3D compressible Navier-Stokes in conservation form with state variables of density, mome…
110 // rho - Mass Density
111 // Ui - Momentum Density, Ui = rho ui
112 // E - Total Energy Density, E = rho (cv T + (u u)/2 + g z)
114 // Navier-Stokes Equations:
125 // P = (gamma - 1) (E - rho (u u) / 2 - rho g z)
138 // lambda = - 2 / 3, From Stokes hypothesis
158 const CeedScalar *g = context->g; in RHSFunction_Newtonian()
159 const CeedScalar dt = context->dt; in RHSFunction_Newtonian()
160 const CeedScalar P0 = context->idl_pressure; in RHSFunction_Newtonian()
167 State s = StateFromU(context, U); in RHSFunction_Newtonian() local
170 … StatePhysicalGradientFromReference(Q, i, context, s, STATEVAR_CONSERVATIVE, Grad_q, dXdx, grad_s); in RHSFunction_Newtonian()
176 ViscousEnergyFlux(context, s.Y, grad_s, stress, Fe); in RHSFunction_Newtonian()
179 FluxInviscid(context, s, F_inviscid); in RHSFunction_Newtonian()
189 …const CeedScalar body_force[5] = {0, s.U.density * g[0], s.U.density * g[1], s.U.density * g[2], D… in RHSFunction_Newtonian()
192 if (context->idl_enable) { in RHSFunction_Newtonian()
193 …dScalar sigma = LinearRampCoefficient(context->idl_amplitude, context->idl_length, context in RHSFunction_Newtonian()
194 CeedScalar damp_state[5] = {s.Y.pressure - P0, 0, 0, 0, 0}, idl_residual[5] = {0.}; in RHSFunction_Newtonian()
195 InternalDampingLayer(context, s, sigma, damp_state, idl_residual); in RHSFunction_Newtonian()
196 for (int j = 0; j < 5; j++) v[j][i] -= wdetJ * idl_residual[j]; in RHSFunction_Newtonian()
199 // -- Stabilization method: none (Galerkin), SU, or SUPG in RHSFunction_Newtonian()
201 Tau_diagPrim(context, s, dXdx, dt, Tau_d); in RHSFunction_Newtonian()
202 Stabilization(context, s, Tau_d, grad_s, U_dot, body_force, stab); in RHSFunction_Newtonian()
205 …for (CeedInt k = 0; k < 3; k++) Grad_v[k][j][i] -= wdetJ * (stab[j][0] * dXdx[k][0] + stab[j][1] *… in RHSFunction_Newtonian()
212 // This QFunction implements the Navier-Stokes equations (mentioned above) with implicit time stepp…
215 // SUPG = Galerkin + grad(v) . ( Ai^T * Tau * (q_dot + Aj q,j - body force) )
229 const CeedScalar *g = context->g; in IFunction_Newtonian()
230 const CeedScalar dt = context->dt; in IFunction_Newtonian()
231 const CeedScalar P0 = context->idl_pressure; in IFunction_Newtonian()
236 const State s = StateFromQ(context, qi, state_var); in IFunction_Newtonian() local
241 StatePhysicalGradientFromReference(Q, i, context, s, state_var, Grad_q, dXdx, grad_s); in IFunction_Newtonian()
247 ViscousEnergyFlux(context, s.Y, grad_s, stress, Fe); in IFunction_Newtonian()
250 FluxInviscid(context, s, F_inviscid); in IFunction_Newtonian()
258 …Grad_v[k][j][i] = -wdetJ * (dXdx[k][0] * Flux[j][0] + dXdx[k][1] * Flux[j][1] + dXdx[k][2] * Flux[… in IFunction_Newtonian()
262 …const CeedScalar body_force[5] = {0, s.U.density * g[0], s.U.density * g[1], s.U.density * g[2], D… in IFunction_Newtonian()
264 // -- Stabilization method: none (Galerkin), SU, or SUPG in IFunction_Newtonian()
267 State s_dot = StateFromQ_fwd(context, s, qi_dot, state_var); in IFunction_Newtonian()
270 for (CeedInt j = 0; j < 5; j++) v[j][i] = wdetJ * (U_dot[j] - body_force[j]); in IFunction_Newtonian()
271 if (context->idl_enable) { in IFunction_Newtonian()
272 …onst CeedScalar sigma = LinearRampCoefficient(context->idl_amplitude, context->idl_length, context in IFunction_Newtonian()
274 CeedScalar damp_state[5] = {s.Y.pressure - P0, 0, 0, 0, 0}, idl_residual[5] = {0.}; in IFunction_Newtonian()
275 InternalDampingLayer(context, s, sigma, damp_state, idl_residual); in IFunction_Newtonian()
279 Tau_diagPrim(context, s, dXdx, dt, Tau_d); in IFunction_Newtonian()
280 Stabilization(context, s, Tau_d, grad_s, U_dot, body_force, stab); in IFunction_Newtonian()
307 // This QFunction implements the jacobian of the Navier-Stokes equations for implicit time stepping…
318 const CeedScalar *g = context->g; in IJacobian_Newtonian()
328 State s = StateFromQ(context, qi, state_var); in IJacobian_Newtonian() local
332 State ds = StateFromQ_fwd(context, s, dqi, state_var); in IJacobian_Newtonian()
335 StatePhysicalGradientFromReference(Q, i, context, s, state_var, Grad_dq, dXdx, grad_ds); in IJacobian_Newtonian()
342 ViscousEnergyFlux_fwd(context, s.Y, ds.Y, grad_ds, stress, dstress, dFe); in IJacobian_Newtonian()
345 FluxInviscid_fwd(context, s, ds, dF_inviscid); in IJacobian_Newtonian()
352 …for (int k = 0; k < 3; k++) Grad_v[k][j][i] = -wdetJ * (dXdx[k][0] * dFlux[j][0] + dXdx[k][1] * dF… in IJacobian_Newtonian()
358 …for (int j = 0; j < 5; j++) v[j][i] = wdetJ * (context->ijacobian_time_shift * dU[j] - dbody_force… in IJacobian_Newtonian()
360 if (context->idl_enable) { in IJacobian_Newtonian()
363 …// This is a Picard-type linearization of the damping and could be replaced by an InternalDampingL… in IJacobian_Newtonian()
364 InternalDampingLayer(context, s, sigma, damp_state, idl_residual); in IJacobian_Newtonian()
368 // -- Stabilization method: none (Galerkin), SU, or SUPG in IJacobian_Newtonian()
370 for (CeedInt j = 0; j < 5; j++) U_dot[j] = context->ijacobian_time_shift * dU[j]; in IJacobian_Newtonian()
371 Stabilization(context, s, Tau_d, grad_ds, U_dot, dbody_force, dstab); in IJacobian_Newtonian()
401 CeedScalar(*jac_data_sur) = context->is_implicit ? out[1] : NULL; in BoundaryIntegral()
403 const bool is_implicit = context->is_implicit; in BoundaryIntegral()
407 State s = StateFromQ(context, qi, state_var); in BoundaryIntegral() local
411 wdetJb *= is_implicit ? -1. : 1.; in BoundaryIntegral()
414 StatePhysicalGradientFromReference_Boundary(Q, i, context, s, state_var, Grad_q, dXdx, grad_s); in BoundaryIntegral()
420 ViscousEnergyFlux(context, s.Y, grad_s, stress, Fe); in BoundaryIntegral()
423 FluxInviscid(context, s, F_inviscid); in BoundaryIntegral()
428 for (CeedInt j = 0; j < 5; j++) v[j][i] = -wdetJb * Flux[j]; in BoundaryIntegral()
462 const bool is_implicit = context->is_implicit; in BoundaryIntegral_Jacobian()
467 wdetJb *= is_implicit ? -1. : 1.; in BoundaryIntegral_Jacobian()
474 State s = StateFromQ(context, qi, state_var); in BoundaryIntegral_Jacobian() local
475 State ds = StateFromQ_fwd(context, s, dqi, state_var); in BoundaryIntegral_Jacobian()
478 … StatePhysicalGradientFromReference_Boundary(Q, i, context, s, state_var, Grad_dq, dXdx, grad_ds); in BoundaryIntegral_Jacobian()
485 ViscousEnergyFlux_fwd(context, s.Y, ds.Y, grad_ds, stress, dstress, dFe); in BoundaryIntegral_Jacobian()
488 FluxInviscid_fwd(context, s, ds, dF_inviscid); in BoundaryIntegral_Jacobian()
493 for (int j = 0; j < 5; j++) v[j][i] = -wdetJb * dFlux[j]; in BoundaryIntegral_Jacobian()