research: Dütsch driver — periodic Morison bases from step mod T
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
04a33246a1
commit
9cfcd8bb96
@@ -53,7 +53,7 @@ def interval_bases(n, T, points=16):
|
|||||||
"""Single-step interval averages over [n, n + 1] of cos phi |cos phi| and sin phi
|
"""Single-step interval averages over [n, n + 1] of cos phi |cos phi| and sin phi
|
||||||
(phi in radians = 2 pi s / T - pi / 2), Gauss-Legendre quadrature."""
|
(phi in radians = 2 pi s / T - pi / 2), Gauss-Legendre quadrature."""
|
||||||
x, w = np.polynomial.legendre.leggauss(points)
|
x, w = np.polynomial.legendre.leggauss(points)
|
||||||
s = n + 0.5 * (x + 1.0)
|
s = int(n) % T + 0.5 * (x + 1.0) # periodic: identical bases in every cycle
|
||||||
phi = 2.0 * np.pi * s / T - 0.5 * np.pi
|
phi = 2.0 * np.pi * s / T - 0.5 * np.pi
|
||||||
c = np.cos(phi)
|
c = np.cos(phi)
|
||||||
return 0.5 * float(np.sum(w * c * np.abs(c))), 0.5 * float(np.sum(w * np.sin(phi)))
|
return 0.5 * float(np.sum(w * c * np.abs(c))), 0.5 * float(np.sum(w * np.sin(phi)))
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ def test_geometry_repeats_exactly_across_cycles():
|
|||||||
v0 = p.position(m + 1, T, A) - p.position(m, T, A)
|
v0 = p.position(m + 1, T, A) - p.position(m, T, A)
|
||||||
assert p.position(m + 1 + c * T, T, A) - p.position(m + c * T, T, A) == v0
|
assert p.position(m + 1 + c * T, T, A) - p.position(m + c * T, T, A) == v0
|
||||||
assert p.cycle(T // 4 + 5 * T, T) == 6 # unwrapped index stays separate
|
assert p.cycle(T // 4 + 5 * T, T) == 6 # unwrapped index stays separate
|
||||||
|
assert p.interval_bases(123 + 7 * T, T) == p.interval_bases(123, T)
|
||||||
|
|
||||||
|
|
||||||
def test_exact_point_inside_body_is_missing_even_with_fluid_corners():
|
def test_exact_point_inside_body_is_missing_even_with_fluid_corners():
|
||||||
|
|||||||
Reference in New Issue
Block a user