conatus.expert.CompoundChebyshev

class conatus.expert.CompoundChebyshev(coord, sizes, breakpoints, dealias=REQUIRED)[source]

Bases: Basis

Chebyshev T series on consecutive subintervals [x_0, x_1], [x_1, x_2], …, each with its own size (sizes); coefficients stored piece after piece. Continuity across an interface (value and derivatives up to the order of the equation minus one) is a set of ordinary conditions with their own tau terms: the native layer writes them (cn.walls(a, c, b)); in the IR write them with interp(f, x, c, side="below"/"above") and lift the taus with lift(tau, basis, -k, piece=p). Use: refine the piece holding a thin layer instead of the global N. Grid: the Gauss-Chebyshev nodes of each piece, floor(N_p * dealias) per piece.

Parameters:
  • coord (Coordinate)

  • sizes (Any)

  • breakpoints (Any)

  • dealias (Any)

family = 'compound Chebyshev T (piecewise, glued at interfaces)'
property pieces: list[tuple[float, float]]
property offsets: list[int]

Index of the first coefficient of each piece.

property interfaces: tuple[float, ...]
grid_sizes()[source]

Grid points per piece: floor(N_p * dealias).

Return type:

list[int]

property grid_size: int

Number of points of the dealiased grid: floor(N*d) (Dedalus), or the smallest M above it with a 7-smooth FFT length when grid="smooth7" was declared.

piece_of(pos, side=None)[source]

Index of the piece holding pos; at an interface side (‘below’/’above’) is required (the trace is one-sided there), at the outer ends it is optional.

Parameters:
  • pos (float)

  • side (str | None)

Return type:

int

coeff_space()[source]
Return type:

str