![]() |
IgANet
IGAnets - Isogeometric Analysis Networks
|
Solver utility functions. More...
#include <algorithm>#include <cmath>#include <concepts>#include <vector>#include <iganet/core/core.hpp>Go to the source code of this file.
Namespaces | |
| namespace | iganet |
| namespace | iganet::utils |
| namespace | iganet::utils::detail |
Concepts | |
| concept | iganet::utils::IterativeSolverPreconditioner |
| Specifies the callable interface required by the preconditioned iterative solvers. | |
Functions | |
| auto | iganet::utils::bicgstab (const torch::Tensor &A, const torch::Tensor b, int max_iter=1000, double tol=1e-10) |
| Solves the linear system A * x = b using the Bi-Conjugate Gradient Stabilized (BiCGStab) method. | |
| auto | iganet::utils::cg (const torch::Tensor &A, const torch::Tensor b, int max_iter=1000, double tol=1e-10) |
| Solves the linear system A * x = b using the Conjugate Gradient (CG) method. | |
| void | iganet::utils::detail::check_finite_scalar (const torch::Tensor &value, const char *message) |
Provides the check_finite_scalar operation. | |
| void | iganet::utils::detail::check_finite_tensor (const torch::Tensor &value, const char *message) |
Provides the check_finite_tensor operation. | |
| void | iganet::utils::detail::check_nonnegative_finite_scalar (const torch::Tensor &value, const char *message) |
Provides the check_nonnegative_finite_scalar operation. | |
| void | iganet::utils::detail::check_nonzero_finite_scalar (const torch::Tensor &value, const char *message) |
Provides the check_nonzero_finite_scalar operation. | |
| void | iganet::utils::detail::check_positive_finite_scalar (const torch::Tensor &value, const char *message) |
Provides the check_positive_finite_scalar operation. | |
| auto | iganet::utils::fgmres (const torch::Tensor &A, const torch::Tensor b, const torch::Tensor &inverse_preconditioner, int max_iter=1000, double tol=1e-10, int restart=30) |
| FGMRES overload taking the inverse preconditioner as a tensor. | |
| template<IterativeSolverPreconditioner Preconditioner> | |
| auto | iganet::utils::fgmres (const torch::Tensor &A, const torch::Tensor b, Preconditioner &&preconditioner, int max_iter=1000, double tol=1e-10, int restart=30) |
| Solves A * x = b using restarted, right-preconditioned GMRES. | |
| auto | iganet::utils::gmres (const torch::Tensor &A, const torch::Tensor b, int max_iter=1000, double tol=1e-10, int restart=30) |
| Solves A * x = b using restarted GMRES. | |
| auto | iganet::utils::minres (const torch::Tensor &A, const torch::Tensor b, int max_iter=1000, double tol=1e-10) |
| Solves A * x = b using MINRES. | |
| auto | iganet::utils::pbicgstab (const torch::Tensor &A, const torch::Tensor b, const torch::Tensor &inverse_preconditioner, int max_iter=1000, double tol=1e-10) |
| PBiCGStab overload taking the inverse preconditioner as a tensor. | |
| template<IterativeSolverPreconditioner Preconditioner> | |
| auto | iganet::utils::pbicgstab (const torch::Tensor &A, const torch::Tensor b, Preconditioner &&preconditioner, int max_iter=1000, double tol=1e-10) |
| Solves the linear system A * x = b using the preconditioned Bi-Conjugate Gradient Stabilized (PBiCGStab) method. | |
| auto | iganet::utils::pcg (const torch::Tensor &A, const torch::Tensor b, const torch::Tensor &inverse_preconditioner, int max_iter=1000, double tol=1e-10) |
| PCG overload taking the inverse preconditioner as a tensor. | |
| template<IterativeSolverPreconditioner Preconditioner> | |
| auto | iganet::utils::pcg (const torch::Tensor &A, const torch::Tensor b, Preconditioner &&preconditioner, int max_iter=1000, double tol=1e-10) |
| Solves the linear system A * x = b using the preconditioned Conjugate Gradient (PCG) method. | |
| auto | iganet::utils::pminres (const torch::Tensor &A, const torch::Tensor b, const torch::Tensor &inverse_preconditioner, int max_iter=1000, double tol=1e-10) |
| PMINRES overload taking the inverse preconditioner as a tensor. | |
| template<IterativeSolverPreconditioner Preconditioner> | |
| auto | iganet::utils::pminres (const torch::Tensor &A, const torch::Tensor b, Preconditioner &&preconditioner, int max_iter=1000, double tol=1e-10) |
| Solves A * x = b using preconditioned MINRES. | |
| bool | iganet::utils::detail::tensor_values_are_finite (const torch::Tensor &tensor) |
Provides the tensor_values_are_finite operation. | |
| void | iganet::utils::detail::validate_gmres_parameters (int restart) |
Provides the validate_gmres_parameters operation. | |
| void | iganet::utils::detail::validate_inverse_preconditioner (const torch::Tensor &inverse_preconditioner, const torch::Tensor &A) |
Provides the validate_inverse_preconditioner operation. | |
| void | iganet::utils::detail::validate_iterative_solver_inputs (const torch::Tensor &A, const torch::Tensor &b, int max_iter, double tol) |
Provides the validate_iterative_solver_inputs operation. | |
| void | iganet::utils::detail::validate_preconditioner_output (const torch::Tensor &value, const torch::Tensor &residual) |
Provides the validate_preconditioner_output operation. | |
Solver utility functions.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.