Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finish paper #13

Open
2 of 17 tasks
sampotter opened this issue Jul 21, 2024 · 4 comments
Open
2 of 17 tasks

Finish paper #13

sampotter opened this issue Jul 21, 2024 · 4 comments

Comments

@sampotter
Copy link
Owner

sampotter commented Jul 21, 2024

Numerical experiments

  • Mesh compressibility test:
    • For octree and Fiedler tree:
      • For each $h$ and $p$ mesh:
        • For each, fixed number of eigenvectors, $m$:
          • Stream and butterfly factorize $m$ eigenvectors
          • Store the following:
            • Size of uncompressed matrix
            • Size of compressed matrix
            • "Stream eigenvectors" time
            • "Butterfly factorize" time
            • Uncompressed MVP time
            • Butterfly MVP time
  • Sphere covariance test:
    • Use $h$ and/or $p$ refinement to squash discretization error
    • Compute analytic covariance at node locations
    • For each butterfly tolerance $\epsilon$ and each Chebyshev order $p$:
      • Operator norm error vs analytic
  • Non-sphere covariance test:
    • Use one or two reasonably-sized meshes
    • Compute reference covariance at node locations
    • For each butterfly tolerance $\epsilon$ and each Chebyshev order $p$:
      • Estimated operator norm error compared to reference
  • Less accurate ARPACK?
    • Might be worth running ARPACK with reduced accuracy.
    • If our SVD truncation level is 1e-2, then running ARPACK with e.g. 1e-15 tolerance probably excessive.
    • Experiment with running ARPACK with reduced accuracy for possible speed boost.

Todo

  • Sam: add size_t-converted MFEM sphere discretizations (stiffness and mass matrices in CSR format) to Dropbox
  • Sam: debug MFEM sphere discretizations so that bf_lbo runs on them
  • Sam: footnotes 1 in Hitting leaf node prematurely in bf_lbo on MFEM sphere #16
  • Sam: footnotes 2 in Hitting leaf node prematurely in bf_lbo on MFEM sphere #16
  • Sam: dump index array for MFEM meshes (high-order, eventually) so we can test Fiedler tree
  • Paul: set up compression test scripts
  • Paul: set up analytic covariance comparison test script
  • Sam: set up twisted torus geometry in MFEM
  • Sam: write up spectrum covering algorithm
  • Sam: write up complexity analysis
  • Sam: make refinement figures (TODO: ???)
  • Sam: write up Fiedler tree
  • Sam: run Paul's final scripts to collect timings
@sampotter
Copy link
Owner Author

@pbeckman I wrote your PDF up here to make it easier to iterate on this

@pbeckman
Copy link
Contributor

We discussed today that the compression test should really be:

  • Fix number of desired eigenfunctions $m$
  • For octree and Fiedler tree:
    • For each $h$ and $p$ refined mesh:
      • Compute and compress $m$ eigenfunctions
      • Store the following:
        • Size of uncompressed matrix
        • Size of compressed matrix
        • "Stream eigenvectors" time
        • "Butterfly factorize" time

@sampotter
Copy link
Owner Author

Updated. Not sure how to make it so that you can edit my to-do list...

@sampotter
Copy link
Owner Author

@pbeckman Footnote 1 was actually already fixed. This is was what --rowTreeInitDepth is for. This option lets you specify an offset (from the root level == 0; e.g., level == 1 in an octree = 8 nodes) into the row/space tree to use when doing the adaptive butterfly. Basically, if I want to not waste my time compressing the first level, assuming it won't work very well (possibly because I know I'm compressing columns from an orthogonal matrix, which is not what's going on with a generalized eigenvalue problem...), then I would pass e.g. --rowTreeInitDepth=1 to start on the first non-root level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants