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

Refactor linear algebra functionality for complex-valued problems #47

Merged
merged 41 commits into from
Aug 22, 2023

Commits on Aug 8, 2023

  1. WIP: Refactor operator and vector linear algebra, adding ComplexVecto…

    …r, ComplexOperator, and the parallel (unassembled) ParOperator and ComplexParOperator
    
    This is a first step towards removing a lot of the dependency on PETSc for complex-valued linear algebra and streamlining the interface to support partial assembly. Includes the necessary changes for SpaceOperator, CurlCurlOperator, and LaplaceOperator in the matrix and vector construction. Also updates operator construction from driver classes. Next up, linear solvers.
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    51bbcb3 View commit details
    Browse the repository at this point in the history
  2. WIP: Real-valued linear solvers from MFEM to replace need for PETSc K…

    …SP, with reworking to add ParallelAssemble in various solvers which require HypreParMatrix operators
    
    TODO: Work into all driver classes.
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    75b5532 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b559ac6 View commit details
    Browse the repository at this point in the history
  4. Integrate new linear algebra to real-valued simulation types: electro…

    …static, magnetostatic, transient
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    cca2d87 View commit details
    Browse the repository at this point in the history
  5. Integrate new linear algebra with driven (no adaptive for now) and ei…

    …genmode simulation types
    
    Eigenvalue solver updates applied to SLEPc and ARPACK, not FEAST yet. Need to incorporate into wave ports too.
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    bcf7444 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    466f2c6 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f9df157 View commit details
    Browse the repository at this point in the history
  8. Debugging: Magnetostatics and transient simulations, with bug fixes f…

    …or parallel assembly and system matrix construction, as well as AMS upgrades
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    467edb5 View commit details
    Browse the repository at this point in the history
  9. Debugging: Complex-valued simulation types, driven with lumped ports …

    …and no adaptive frequency sweeps and eigenmode solves
    
    Bug fixes include: ComplexVector AXPBY and AXPBYPCX with uninitialized vector, ParOperator real-valued mass matrix orthogonalization for eigenvalue solves, unique_ptr<T[]> array construction, remove unused FEAST code (for now), remove unused PETSc code, SLEPc function pointer fixes, and others.
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    c435ace View commit details
    Browse the repository at this point in the history
  10. Debugging: Wave ports and some attempts at performance improvements a…

    …t least until SubMesh is supported for ND spaces
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    a51b25c View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    be95ec5 View commit details
    Browse the repository at this point in the history
  12. WIP: Add CG, GMRES, and FGMRES solver implementations for both real- …

    …and complex-valued operators, as part of a new Solver<OperType> class
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    25b779c View commit details
    Browse the repository at this point in the history
  13. WIP: Refactor ParOperator/ComplexParOperator classes and other linear…

    … algebra and operator wrappers for complex-valued linear systems
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    be22481 View commit details
    Browse the repository at this point in the history
  14. WIP: Updates to operator construction in SpaceOperator, LaplaceOperat…

    …or, CurlCurlOperator after refactor
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    91e4b79 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    7838a45 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    4cee83d View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    09c9ad5 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    49609b0 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    72667d9 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    6dbf45f View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    8318e52 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    d8aefdf View commit details
    Browse the repository at this point in the history
  23. Re-enable adaptive frequency sweep using RomOperator after refactor, …

    …using Eigen for PROM dense matrix operations
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    8451011 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    b44e7c2 View commit details
    Browse the repository at this point in the history
  25. Material properties for boundary elements in preparation for submesh …

    …functionality and wave ports
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    df9a8e5 View commit details
    Browse the repository at this point in the history
  26. Implement wave ports using submesh functionality from MFEM

    Reverts prior commit as this idea did not work, one boundary attribute may touch many domain attributes.
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    b3c7920 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    7025f91 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    2beb351 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    e57ff3d View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    bf0e4dc View commit details
    Browse the repository at this point in the history
  31. Fix sparse direct solver matrix construction when HypreParMatrix comm…

    …unicator is different than the solvers (for example, many processors with empty local matrices)
    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    76ff265 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    c70531e View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    0530bb1 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    62c55eb View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    808c479 View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    99c2896 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    e7eb17a View commit details
    Browse the repository at this point in the history
  38. Minor style fix

    sebastiangrimberg committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    393b428 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2023

  1. Address PR comments: Use of auto when type is clear, Arpack/SlepcEige…

    …nSolver -> Arpack/SlepcEigenvalueSolver, using instead of typedef, fix some typos in comments
    sebastiangrimberg committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    ffc80f4 View commit details
    Browse the repository at this point in the history
  2. Further PR comment addressing: Make Operator::ParallelAssemble const …

    …with a mutable RAP member to avoid some const_cast, clarify some comments, use initializer lists where possible for constructors
    sebastiangrimberg committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    37ed18a View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. Configuration menu
    Copy the full SHA
    3c031e8 View commit details
    Browse the repository at this point in the history