BSpline Finite Element Exterior Calculus
Loading...
Searching...
No Matches
m_mform_solver Module Reference

Module containing the linear solver for linear systems of equations where the unknown is an m-form. More...

Data Types

type  abstractsolver
 Abstract type for a generic linear solver for m-form systems of equations. More...
 
type  genericsolver
 Generic solver for m-form systems of equations. More...
 
interface  solverinitoptions
 
type  solverinittraits
 
interface  solversolveoptions
 

Functions/Subroutines

type(solversolveoptions) function make_solver_solve_options (rtol, atol, max_iter, verbosity, verbosity_flag)
 Create a SolverSolveOptions object from the provided arguments.
 
subroutine, public create_ksp (ksp, mat, space, options, constraint)
 
subroutine, public get_constrained_petsc_matrix (mat_out, mat_in, constraint_sol, coeff, constraint_res)
 Get the constrained PETSc matrix for the given input matrix and constraint.
 

Detailed Description

Module containing the linear solver for linear systems of equations where the unknown is an m-form.

Function/Subroutine Documentation

◆ get_constrained_petsc_matrix()

subroutine, public m_mform_solver::get_constrained_petsc_matrix ( intent(out) mat_out,
intent(in) mat_in,
type(mformconstraint), intent(in) constraint_sol,
real(wp), intent(in), optional coeff,
type(mformconstraint), intent(in), optional constraint_res )

Get the constrained PETSc matrix for the given input matrix and constraint.

If projection is used, this yields the matrix L <- P^T * L * P + coeff * (I - P)^T * M * (I - P) and if extraction is used, this yields the matrix L <- E^T * L * E

Parameters
[out]mat_outThe output matrix (the constrained PETSc matrix)
[in]mat_inThe input matrix (PETSc matrix)
[in]constraint_solThe constraint object acting on the solution space
[in]coeff_(optional)_ The coefficient for the (I - P)^T * M * (I - P) part (default is 0.0)
[in]constraint_res_(optional)_ The constraint object acting on the residual space (default is the same as constraint_sol)

◆ make_solver_solve_options()

type(solversolveoptions) function m_mform_solver::make_solver_solve_options ( real(wp), intent(in), optional rtol,
real(wp), intent(in), optional atol,
integer, intent(in), optional max_iter,
character(*), intent(in), optional verbosity,
integer, intent(in), optional verbosity_flag )

Create a SolverSolveOptions object from the provided arguments.

Parameters
[in]rtol_(optional)_ The relative tolerance for the solver (default is 1.e-10, or the value set in the init() method)
[in]atol_(optional)_ The absolute tolerance for the solver (default is 1.e-20, or the value set in the init() method)
[in]max_iter_(optional)_ The maximum number of iterations for the solver (default is the value set in the init() method)
[in]verbosity_(optional)_ The verbosity level for the solver (default is the value set in the init() method)
[in]verbosity_flag_(optional)_ The verbosity flag for the solver (default is the value set in the init() method)