===== Future Directions in Rayleigh ===== //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 walltime 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 guildlines on setting up an IDE?