embedded3 S2-4: quadratic wall gradient behind Parameters::wall_order (host predictor, operator route, e3_cut.cu; RTX_E3_WALL_ORDER); density pin holds at order 2
CI / Clippy Check (push) Failing after 3s
CI / Build (ubuntu-latest) (push) Failing after 4s
CI / Build CPU-Only (Explicit) (push) Failing after 4s
CI / Format Check (push) Failing after 5s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 4s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m40s
CI / Build (macos-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / Clippy Check (push) Failing after 3s
CI / Build (ubuntu-latest) (push) Failing after 4s
CI / Build CPU-Only (Explicit) (push) Failing after 4s
CI / Format Check (push) Failing after 5s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 4s
Performance Benchmarks / Run Benchmarks (push) Successful in 2m40s
CI / Build (macos-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
53b1babb91
commit
cda973df26
@@ -187,10 +187,28 @@ __device__ double cut_face_update(const E3Params& g, const E3Ptrs& f, const E3Cu
|
||||
const double* src = c == 0 ? f.su : (c == 1 ? f.sv : f.sw);
|
||||
double source = src[fidx] * v_u;
|
||||
double a_w = sqrt(wall[0] * wall[0] + wall[1] * wall[1] + wall[2] * wall[2]);
|
||||
double shear = mu * a_w / distance;
|
||||
/* The wall gradient: one-point (order 1) or quadratic through the next
|
||||
open face away from the body along the wall normal's dominant axis
|
||||
(order 2; the neighbour's old value explicit). */
|
||||
double c1 = 1.0 / distance, shear_explicit = 0.0;
|
||||
if (g.wall_order >= 2 && a_w > 0.0) {
|
||||
double nw[3] = { wall[0] / a_w, wall[1] / a_w, wall[2] / a_w };
|
||||
int d = 0;
|
||||
for (int kk = 1; kk < 3; ++kk) if (fabs(nw[kk]) > fabs(nw[d])) d = kk;
|
||||
int q[3] = { i, j, k };
|
||||
q[d] -= nw[d] > 0.0 ? 1 : -1;
|
||||
int fn = cut_face(g, c, q[0], q[1], q[2]);
|
||||
if (fn >= 0 && cut_ap(m, c)[fn] > 0.0) {
|
||||
double d1 = distance, d2 = d1 + h[d] * fabs(nw[d]);
|
||||
c1 = d2 / (d1 * (d2 - d1));
|
||||
double c2 = -d1 / (d2 * (d2 - d1));
|
||||
shear_explicit = mu * a_w * c2 * (old_c[fn] - ub);
|
||||
}
|
||||
}
|
||||
double shear = mu * a_w * c1;
|
||||
double v_eff = fmax(alpha, CUT_INERTIA_FLOOR) * h[c] * area[c];
|
||||
double inertia = rho * v_eff / g.dt;
|
||||
return (inertia * u0 - conv + diff + pressure + source + shear * ub) / (inertia + shear);
|
||||
return (inertia * u0 - conv + diff + pressure + source + shear * ub - shear_explicit) / (inertia + shear);
|
||||
}
|
||||
|
||||
/* The predictor on the open interior faces of component c. */
|
||||
|
||||
Reference in New Issue
Block a user