Future Directions in Rayleigh
Development Plans
last updated 2018 November 8
Future Directions (current)
- Improved linear solve + derivatives (Quasi-inverse; Chebyshev Galerkin scheme) – Ben M. / Kyle A. / Nick F.
- Improve OpenMP
- OpenMP/GPU hybrid legendre transforms (OpenACC/Cuda; OpenMP w/ offload?) – Kyle A / Nick F.
- Chebyshev Spectra
- Coefficients at given theta/phi (or set of theta/phi)
- Coefficients at given ell/m (or set of ell/m) – Cian W. / Valentin S.
- Custom Reference States / custom non-dimensionalization (Rayleigh) – Jon A./ Ryan O./ Krista S.
- Also translation via post-processing (rosetta)
- Code cleanup – EVERYONE
- Increased modularization (parallel framework / buffer objects)
- ISPack-enabled Legendre transforms
New Future Directions
- Generalized 3-d/1-d/1-d read-in interface for:
- Initial Conditions
- Boundary conditions
- More general boundary conditions
- E.g., imposed B, heterogeneous thermal B.C.s, time-varying B.C.s, etc.
- Python interface for interfacing with generalized interface
- Diagnostic value specification with strings
- Common wall time communication (here)
- File numbering w/ backwards compatibility (here)
- Output nrec bug (here)
- Have make install also install python libraries + support code etc.
- 3-D output class in Python
- Additional scalar field – Sebastian H. / Loren M. / Cian W./ Valentin S.
- Adding an Inner Core – Krisa S. / Connor B. / Hiro M. / Cian W. / Jon A. * Test field method (?)
- No cutout at r=0
- Alternative radial basis functions
- Z averaging / Z slicing
- Possibly use code from Calypso supplied by Hiro
- New Repository for post-processing scripts
- Connecting Python to 3-D checkpoints (possibly here)
- Adding lagrangian tracers
- Additional time-stepping schemes
- Reducing size of diagnostic code lists (groups; python/string automation)
- Extensible/Modifiable equation sets
- Cartesian mode
- Alternative geometries
- More generalized/modular outputs
- More complete preamble information
- Automatic testing for Rayleigh
- Serial Rayleigh?
- Angular-momentum conservation bug (what should be solved? / what is implemented)
- Conserve core/mantle/inner-core angular momentum (slow down / speed up boundaries)
Additional Diagnostics
- Dipole tilt as a function of time
- Gauss coefficients (possibly via Python interface)
- Poloidal and Toroidal scalar functions
- Filtered diagnostics (e.g., upflow/downflow masks or other variables)
- Magnetic helicity
- Helicity outputs
- Tangent cylinder (inside vs. outside) – aware outputs
- Distinguish between poloidal and toroidal contributions to outputs
- Nusselt-number output
Post-Processing
- Spherical-harmonic filtering
- Pipelines for Vapor / Visit / Paraview etc.
- Reading 3-D outputs into Python
- VTK output (related to pipelines above; Rayleigh option and Python post-processing)
- Possible Directions?
- Time-varying reference state / equation coefficients – Loren M.
- Documentation
- Diagnostics (what is in memory / how do I get what is not in memory)
- Can we provide guildelines on setting up an IDE?