From 70e3e6679ecf2f5e08ae80e2fc24b7bacdedb09f Mon Sep 17 00:00:00 2001 From: Cody Permann Date: Tue, 30 Jul 2024 16:53:52 -0600 Subject: [PATCH 1/2] Addressing CA2024-1659 related to aquired software Improving documentation for libraries in our software library list. closes #28270 --- framework/doc/content/sqa/framework_sll.md | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/framework/doc/content/sqa/framework_sll.md b/framework/doc/content/sqa/framework_sll.md index a3cf5db81296..e18ff910d0d2 100644 --- a/framework/doc/content/sqa/framework_sll.md +++ b/framework/doc/content/sqa/framework_sll.md @@ -10,6 +10,11 @@ > of the library is to provide support for adaptive mesh refinement (AMR) computations in parallel > while allowing a research scientist to focus on the physics they are modeling. ++Testing:+ libMesh is a core library providing significant funcitionality for MOOSE and MOOSE-based +applications. Every Functional test in the [framework RTM](framework_rtm.md) that manipulates a mesh +or solves a problem is using an integrated piece of the libMesh library. For all practical purposes +there is almost no differences to the set of tests for the framework and the set of tests for libMesh. + Current Version of libMesh: [!git!submodule-hash url=https://github.com/libmesh/libmesh/commit](libmesh) ## [!ac](PETSc) @@ -21,5 +26,80 @@ Current Version of libMesh: [!git!submodule-hash url=https://github.com/libmesh/ > scalable (parallel) solution of scientific applications modeled by partial differential equations. It > supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU parallelism. PETSc > (sometimes called PETSc/Tao) also contains the Tao optimization software library. +> + ++Testing:+ PETSc is a core library providing significant funcitionality for MOOSE and MOOSE-based +applications. Every Functional test in the [framework RTM](framework_rtm.md) that +solves a problem is using an integrated piece of the PETSc library. For all practical purposes +there is almost no differences to the set of tests for the framework and the set of tests for PETSc. + Current Version of [!ac](PETSc): [!git!submodule-hash url=https://github.com/petsc/petsc/commit](petsc) + +## HYPRE (optional) + +[!ac](MOOSE) can optionally use preconditioners from the HYPRE library to assist with the solvers +in [!ac](PETSc). The BoomerAMG preconditioner is frequeuntly used in MOOSE for elliptic PDEs. +This project is summarized as follows on the project website: +[https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods](https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods). + +> Livermore’s hypre library of linear solvers makes possible larger, more detailed simulations by solving +> problems faster than traditional methods at large scales. It offers a comprehensive suite of scalable +> solvers for large-scale scientific simulation, featuring parallel multigrid methods for both structured +> and unstructured grid problems. The hypre library is highly portable and supports a number of languages. + ++Testing:+ [!ac](PETSc) is able to utilize several externally developed preconditioners in its solution +scheme. Explicit testing of the Hypre BoomerAMG preconditioner is not done by the MOOSE suite since it +is an optional dependency and isn't strictly required to solve MOOSE's linear and nonlinear systems. +However, this preconditioner option does appear in a number of the Functional tests in the +[framework RTM](framework_rtm.md), such that breaking changes would likely result in differences in many +of MOOSE's tests. + +## SuperLU (optional) + +[!ac](MOOSE) can optionally use the SuperLU "solver" package for accelerating the factorization of +certain types of linear systems. This package is summarized as follows on the project website: + +> SuperLU is a general-purpose library for the direct solution of large, sparse, nonsymmetric systems of +> linear equations. The library is written in C and is callable from either C or Fortran program. It uses +> MPI, OpenMP and CUDA to support various forms of parallelism. It supports both real and complex datatypes, +> both single and double precision, and 64-bit integer indexing. The library routines perform an LU +> decomposition with partial pivoting and triangular system solves through forward and back substitution. +> The LU factorization routines can handle non-square matrices but the triangular solves are performed only +> for square matrices. + ++Testing:+ [!ac](PETSc) is able to utilize the SuperLU package to solve linear system matrices in parallel. +This acceleration is suitable for certain small to moderatley sized linear systems that are not easily +solved with other schemes. Explicit testing of the SuperLU factorization package is not done by the MOOSE +suite since it is an optional dependency. However, this solver option does appear in a number of +Functional tests in the framework [framework RTM](framework_rtm.md) and module RTMs. Breaking changes +would likely result in differences in many of these tests. + +## MUMPS (optional) + +[!ac](MOOSE) can optionally use the MUMPS "solver" package for accelerating the factorization of +certain types of linear systems. This package is summarized as follows on the project website: + +> MUMPS Main Features: +> +> - Solution of large linear systems with symmetric positive definite matrices general symmetric matrices general unsymmetric matrices. +> - Real or complex arithmetic (single or double precision) +> - Parallel factorization and solve phases (uniprocessor version also available) +> - Out of core numerical phases +> - Iterative refinement and backward error analysis +> - Various matrix input formats assembled, distributed, elemental format +> - Partial factorization and Schur complement matrix (centralized or 2D block-cyclic) with reduced/condensed right-hand side +> - Interfaces to MUMPS: Fortran, C, Matlab and Scilab +> - Several reorderings interfaced: AMD, QAMD, AMF, PORD, METIS, PARMETIS, SCOTCH, PT-SCOTCH +> - Symmetric indefinite matrices: preprocesssing and 2-by-2 pivots +> - Parallel analysis and matrix scaling +> - Computation of the determinant (with an option to discard factors) +> - Forward elimination during factorization +> + ++Testing:+ [!ac](PETSc) is able to utilize the MUMP package to solve linear system matrices in parallel. +This acceleration is suitable for certain small to moderatley sized linear systems that are not easily +solved with other schemes. Explicit testing of the MUMPS factorization package is not done by the MOOSE +suite since it is an optional dependency. However, this solver option does appear in a number of +Functional tests in the framework [framework RTM](framework_rtm.md) and module RTMs. Breaking changes +would likely result in differences in many of these tests. From 5b7a6f1e2dcab18f87f30411896e4bd25f8608ed Mon Sep 17 00:00:00 2001 From: Cody Permann Date: Mon, 5 Aug 2024 16:18:36 -0600 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Casey Icenhour --- framework/doc/content/sqa/framework_sll.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/framework/doc/content/sqa/framework_sll.md b/framework/doc/content/sqa/framework_sll.md index e18ff910d0d2..ac4504286f2a 100644 --- a/framework/doc/content/sqa/framework_sll.md +++ b/framework/doc/content/sqa/framework_sll.md @@ -10,10 +10,10 @@ > of the library is to provide support for adaptive mesh refinement (AMR) computations in parallel > while allowing a research scientist to focus on the physics they are modeling. -+Testing:+ libMesh is a core library providing significant funcitionality for MOOSE and MOOSE-based ++Testing:+ libMesh is a core library providing significant functionality for MOOSE and MOOSE-based applications. Every Functional test in the [framework RTM](framework_rtm.md) that manipulates a mesh or solves a problem is using an integrated piece of the libMesh library. For all practical purposes -there is almost no differences to the set of tests for the framework and the set of tests for libMesh. +there are almost no differences between the set of tests for the framework and the set of tests for libMesh. Current Version of libMesh: [!git!submodule-hash url=https://github.com/libmesh/libmesh/commit](libmesh) @@ -28,10 +28,10 @@ Current Version of libMesh: [!git!submodule-hash url=https://github.com/libmesh/ > (sometimes called PETSc/Tao) also contains the Tao optimization software library. > -+Testing:+ PETSc is a core library providing significant funcitionality for MOOSE and MOOSE-based ++Testing:+ PETSc is a core library providing significant functionality for MOOSE and MOOSE-based applications. Every Functional test in the [framework RTM](framework_rtm.md) that solves a problem is using an integrated piece of the PETSc library. For all practical purposes -there is almost no differences to the set of tests for the framework and the set of tests for PETSc. +there are almost no differences between the set of tests for the framework and the set of tests for PETSc. Current Version of [!ac](PETSc): [!git!submodule-hash url=https://github.com/petsc/petsc/commit](petsc) @@ -48,7 +48,7 @@ This project is summarized as follows on the project website: > solvers for large-scale scientific simulation, featuring parallel multigrid methods for both structured > and unstructured grid problems. The hypre library is highly portable and supports a number of languages. -+Testing:+ [!ac](PETSc) is able to utilize several externally developed preconditioners in its solution ++Testing:+ [!ac](PETSc) is able to utilize several externally-developed preconditioners in its solution scheme. Explicit testing of the Hypre BoomerAMG preconditioner is not done by the MOOSE suite since it is an optional dependency and isn't strictly required to solve MOOSE's linear and nonlinear systems. However, this preconditioner option does appear in a number of the Functional tests in the @@ -69,10 +69,10 @@ certain types of linear systems. This package is summarized as follows on the pr > for square matrices. +Testing:+ [!ac](PETSc) is able to utilize the SuperLU package to solve linear system matrices in parallel. -This acceleration is suitable for certain small to moderatley sized linear systems that are not easily +This acceleration is suitable for certain small-to-moderately-sized linear systems that are not easily solved with other schemes. Explicit testing of the SuperLU factorization package is not done by the MOOSE suite since it is an optional dependency. However, this solver option does appear in a number of -Functional tests in the framework [framework RTM](framework_rtm.md) and module RTMs. Breaking changes +Functional tests in the [framework RTM](framework_rtm.md) and module RTMs. Breaking changes would likely result in differences in many of these tests. ## MUMPS (optional) @@ -97,9 +97,9 @@ certain types of linear systems. This package is summarized as follows on the pr > - Forward elimination during factorization > -+Testing:+ [!ac](PETSc) is able to utilize the MUMP package to solve linear system matrices in parallel. -This acceleration is suitable for certain small to moderatley sized linear systems that are not easily ++Testing:+ [!ac](PETSc) is able to utilize the MUMPS package to solve linear system matrices in parallel. +This acceleration is suitable for certain small-to-moderately-sized linear systems that are not easily solved with other schemes. Explicit testing of the MUMPS factorization package is not done by the MOOSE suite since it is an optional dependency. However, this solver option does appear in a number of -Functional tests in the framework [framework RTM](framework_rtm.md) and module RTMs. Breaking changes +Functional tests in the [framework RTM](framework_rtm.md) and module RTMs. Breaking changes would likely result in differences in many of these tests.