Modules | |
| module | mumpstools_common |
| List of Parameters see Parameter list in mumpstools.hpp. | |
Functions/Subroutines | |
| subroutine | mumpstools_create_solver (asolverid, ainfo, ahostisworking, asymmetrymode) |
| Creates a new MUMPS solver instance Initializes the solver structure and reserves a slot in the global solver array. | |
| subroutine | mumpstools_free_solver (asolverid, ainfo) |
| Frees a MUMPS solver instance and releases its resources Calls MUMPS with JOB=-2 to destroy the solver instance If all solvers are freed, deallocates the global solver arrays. | |
| subroutine | mumpstools_num_solvers (acount) |
| Number of live solver instances ( pool occupancy ) on this process. | |
| subroutine | mumpstools_solve (aiparameters, arparameters, an, annz, anrhs, arowindices, acolindices, avalues, ax, ay, ainfo, ainfog, arinfog) |
| Solves a linear system using MUMPS Supports analysis, factorization, and solution phases based on JOB parameter JOB=1: analysis, JOB=2: factorization, JOB=3: solve, JOB=5: factorization+solve with same structure JOB=6: analysis+factorization+solve (all-in-one). | |
Variables | |
| integer, parameter | mumpstools_common::int_t = C_INT64_T |
| type(dmumps_struc), dimension(:), allocatable, target, save | mumpstools_common::gsolvers |
| integer, dimension(:), allocatable, save | mumpstools_common::goccupied |
| integer(int_t), save | mumpstools_common::gmaxnumsolvers = 8 |
| integer(int_t), save | mumpstools_common::gnumsolvers = 0 |
| subroutine mumpstools_create_solver | ( | integer( int_t ), intent(out) | asolverid, |
| integer( int_t ), intent(out) | ainfo, | ||
| integer( int_t ), intent(in) | ahostisworking, | ||
| integer( int_t ), intent(in) | asymmetrymode ) |
Creates a new MUMPS solver instance Initializes the solver structure and reserves a slot in the global solver array.
| [out] | aSolverID | Unique ID of the created solver (1-based), -1 on failure |
| [out] | aInfo | Info status (0 = success, -1000 = max solvers reached) |
| [in] | aHostIsWorking | Passed through to the MUMPS control parameter PAR |
| [in] | aSymmetryMode | Passed through to the MUMPS control parameter SYM |
| subroutine mumpstools_free_solver | ( | integer( int_t ), intent(in) | asolverid, |
| integer( int_t ), dimension( 80 ), intent(out) | ainfo ) |
Frees a MUMPS solver instance and releases its resources Calls MUMPS with JOB=-2 to destroy the solver instance If all solvers are freed, deallocates the global solver arrays.
| [in] | aSolverID | ID of the solver to free |
| [out] | aInfo | Info status from MUMPS |
| subroutine mumpstools_num_solvers | ( | integer( int_t ), intent(out) | acount | ) |
Number of live solver instances ( pool occupancy ) on this process.
| [out] | aCount | occupancy; identical on every rank because create and free are collective |
| subroutine mumpstools_solve | ( | integer( int_t ), dimension( 14 ), intent(in) | aiparameters, |
| real( c_double ), dimension( 1 ), intent(in) | arparameters, | ||
| integer( int_t ), intent(in) | an, | ||
| integer( int_t ), intent(in) | annz, | ||
| integer( int_t ), intent(in) | anrhs, | ||
| integer( int_t ), dimension( annz ), intent(in), target | arowindices, | ||
| integer( int_t ), dimension( annz ), intent(in), target | acolindices, | ||
| real( c_double ), dimension( annz ), intent(in), target | avalues, | ||
| real( c_double ), dimension( an * anrhs ), intent(inout), target | ax, | ||
| real( c_double ), dimension( an * anrhs ), intent(in), target | ay, | ||
| integer( int_t ), dimension( 80 ), intent(out) | ainfo, | ||
| integer( int_t ), dimension( 80 ), intent(out) | ainfog, | ||
| real( c_double ), dimension( 20 ), intent(out) | arinfog ) |
Solves a linear system using MUMPS Supports analysis, factorization, and solution phases based on JOB parameter JOB=1: analysis, JOB=2: factorization, JOB=3: solve, JOB=5: factorization+solve with same structure JOB=6: analysis+factorization+solve (all-in-one).
the parameters object