MRChemSoft/vampyr

VAMPyR-1.0 (or future) wishlist

Opened this issue ยท 3 comments

Dear ๐ŸŽ…

Please edit and add new features at will (not saying everything should be implemented for v1):

  • More user friendly MRA initialization, e.g. world_size = [-20, 20]**3
  • Function plotting (line, surface, cube)
  • Function printing, what should be displayed with print(tree)?
  • Basis visualization
    • scaling and wavelet functions
    • two-scale relations
    • dilation and translation of functions
  • Features to build your own wavelet code
    • extract filter matrices
    • Legendre polynomials
  • Tree/grid visualization
    • any ideas?
    • ASCII art for 1D trees?
    • existing Python library?
  • Difference plots
    • functions/differences at different resolution levels
    • plot wavelet information content as function of scale
  • New operators
    • convolution operator from arbitrary 1D Gaussian expansion (examples?)
    • other 1D operators (e.g. exponential operator for solving the heat equation and Burger's equation, see ABGV)
    • brute-force projection of any kind of non-separable operator?
  • Use scikit-build to build: https://scikit-build.readthedocs.io/en/latest/
  • Documented test-cases
    • H-atom
    • ZORA
    • generalized poisson
  • Interface documentation
  • Deep copy
  • Generic kernel G(x-y) which takes vector of functions g_i(x) such that G(x) = \sum_i g_i(x)
  • Resolve fast vs accurate dilemma for FunctionTree evaluation
  • Handling of complex functions (separate trees for Real and Imaginary part)
  • Add call function to operators, g_tree = P(f_tree)
  • New MWProjector class which enables f_tree = Q(func);

- [ ] Use scikit-build to build: https://scikit-build.readthedocs.io/en/latest/

  • Operator overloading for most common form of operations. For example:/
     .def("__add__", [](FunctionTree<D>& tree_a, FunctionTree<D>& tree_b) { /* code here */ }, py::is_operator());
  • KAIN and DIIS implementation.