== '''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 Implementation * !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?