27 a_c = -2.0 * mu / dx**2
36 a_c_mod = D * a_c + Nc * a_g
37 a_nb_mod = D * a_nb + Nnb * a_g
41 rhs_corr = Nbc * u_bc * a_g
43 return (a_c_mod * u_c + a_nb_mod * u_nb + rhs_corr) / D
48 thetas = [0.1, 0.3, 0.5, 0.8]
50 print(
"Testing 1D IBM Exactness...")
55 u_pt =
lambda x: (x + xi)**2
60 val =
apply_ibm_1d(u_c, u_nb, u_bc, xi/dx, mu, dx,
'point')
62 print(f
"Point Quadratic xi={xi}: calc={val:.6e}, expected={expected:.6e}")
63 assert abs(val - expected) < 1e-12
67 u_avg =
lambda x: (x + xi)**2 + dx**2/12.0
72 val_avg =
apply_ibm_1d(u_c_avg, u_nb_avg, u_bc, xi/dx, mu, dx,
'avg')
73 print(f
"Cell-Avg Quadratic xi={xi}: calc={val_avg:.6e}, expected={expected:.6e}")
74 assert abs(val_avg - expected) < 1e-12
79 u_pt_inhom =
lambda x: (x + xi)**2 + u_wall
83 val =
apply_ibm_1d(u_c, u_nb, u_bc, xi/dx, mu, dx,
'point')
84 print(f
"Inhomogeneous (u_bc={u_wall}): calc={val:.6e}, expected={expected:.6e}")
85 assert abs(val - expected) < 1e-12