Description
Part 1: SpatialFourierFilter
Proposing a feature: A new functional expansion tally (FET) filter in the Fourier basis, similar to SpatialLegendreFilter. This is a well-understood, orthonormal orthogonal basis with two attractive properties.
- Sines and cosines are the solution to the Helmholtz equation in a homogeneous slab.
- The basis is periodic. This could lend itself well to problems with periodic boundary conditions and leads to the next part.
Part 2: ArclengthFourierFilter
Or CircumferentialFourierFilter: A new FET filter similar to the SpatialFourierFilter proposed above, but instead of being over a line segment, the functional expansion is over the circumference of a cylinder.
- This essentially tracks the azimuthal dimension of a cylindrical
MeshSurfaceFilter for a given radial surface.
- The periodicity of the basis function is essential to ensure continuity at $0 = \theta = 2\pi$.
Status
The Fourier basis is briefly mentioned in Griesheimer's seminal work, but as far as I can tell, has not been implemented before. Assuming this doesn't already exist in a branch somewhere, I intend to make a PR for the full feature in the foreseeable future.
Alternatives
- Could add an argument to use only odd (sin) or even (cos) modes.
- The arclength / circumferential filter could be a new abstract base class that other periodic function bases could inherit from.
Compatibility
The enhancement will not change existing APIs. It will add something new.
Description
Part 1:
SpatialFourierFilterProposing a feature: A new functional expansion tally (FET) filter in the Fourier basis, similar to
SpatialLegendreFilter. This is a well-understood,orthonormalorthogonal basis with two attractive properties.Part 2:
ArclengthFourierFilterOr
CircumferentialFourierFilter: A new FET filter similar to theSpatialFourierFilterproposed above, but instead of being over a line segment, the functional expansion is over the circumference of a cylinder.MeshSurfaceFilterfor a given radial surface.Status
The Fourier basis is briefly mentioned in Griesheimer's seminal work, but as far as I can tell, has not been implemented before. Assuming this doesn't already exist in a branch somewhere, I intend to make a PR for the full feature in the foreseeable future.
Alternatives
Compatibility
The enhancement will not change existing APIs. It will add something new.