| Mm_bessel | Module for Bessel functions and their zeros |
| Mm_bspline | Top-level module for one dimensional B-splines |
| ►Mm_bspline_basis | The B-spline basis module |
| Cbsplinefun | The B-spline function type |
| Cbsplinespace | The B-spline space type |
| Cevaluate | Evaluate a B-spline (function) |
| Cevaluate_support | |
| Cget_index_ranges | Get the index ranges for integrating a B-spline or the product of two B-splines |
| Cget_petsc | Convert a B-spline function to a PETSc vector |
| Cquadrature | Compute quadrature of a B-spline |
| Cquadrature_product | Compute quadrature of the product of two B-splines |
| Csize | Get the size of the B-spline space (i.e., the number of linearly independent B-splines) |
| Mm_bspline_functions | Module containing B-spline evaluation functions (generated code) |
| ►Mm_bspline_linalg | The B-spline linear algebra module |
| Cbiorthogonalize | |
| Cinner_product | Compute the inner product of a user function with the basis functions |
| Cintegral | |
| Cl2_error | Compute the L2-norm of a B-spline function minus a user function |
| Cl2_projection | Compute the L2-projection of a user function onto the basis functions |
| Corthogonalize | |
| Csolve_poisson_problem | Solve the Poisson problem |
| ►Mm_bspline_matrix | The B-spline matrix module |
| Cdivgrad_matrix | Compute the divgrad matrix of a B-spline basis (i.e., the discretization of the Laplace operator) |
| Cmass_matrix | Compute the mass matrix of two B-spline spaces |
| ►Mm_bspline_quadrature | The B-spline quadrature module |
| Cbsplinequadrature | A type to hold the B-spline quadrature data: the values of all of the B-splines at the quadrature nodes |
| Cn_quad_exact | Determine the number of quadrature points needed for exact integration of a (product of) B-spline space(s) |
| Cquadrature | Quadrature rules on a B-spline space |
| Cquadrature_product | Quadrature rules on a product of two B-spline spaces |
| Mm_bspline_recurse | Module for B-spline recursion and knot sequences |
| Mm_cmd_parser | A simple command line argument parser for Fortran programs |
| ►Mm_common | Common module for the BSpline FEEC package |
| Cbalanced_split | Generic interface for balanced splitting of integers |
| Csort | Sort an array of integers using the quicksort algorithm |
| Cuser_function_1d_interface | Interface for user-defined functions |
| Cuser_function_3d_interface | |
| Cuser_function_3d_mat_interface | |
| Cuser_function_3d_vec_interface | |
| ►Mm_coord_transform_abstract | Module for abstract coordinate transformation type |
| Ccoordtransformabstract | |
| ►Mm_coord_transform_box | Module for the box coordinate transformation |
| Cboxtransform | Box coordinates given by |
| ►Mm_coord_transform_cylinder | Module for the cylinder coordinate transformations |
| Ccylindertransform | Cylindrical coordinates given by |
| ►Mm_coord_transform_frenet_serret | Frenet-Serret coordinate transformation |
| Cfrenetserrettransform | Derived type for Frenet-Serret coordinate transformation |
| ►Mm_coord_transform_no | Module for empty coordinate transformation |
| Cnotransform | |
| ►Mm_coord_transform_toroidal | Module for the toroidal coordinate transformation |
| Ctoroidaltransform | Toroidal coordinates given by |
| ►Mm_coord_transform_toroidal_bspline | Module for the toroidal B-spline coordinate transformation |
| Ctoroidalbsplinetransform | |
| Mm_diagnostics | Top-level diagnostics module |
| ►Mm_diagnostics_binary | Module for binary output |
| Cbinary2d | Type for binary output of 2D m-forms |
| ►Mm_diagnostics_paraview | Module for ParaView output using VTKFortran (if linked) |
| Cparaview | ParaView output handler (wraps around VTKFortran if available, otherwise does nothing) |
| Mm_domain | Top-level module for domain decomposition |
| Mm_domain_data_exchange | Module for data exchange between neighbouring subdomains in a domain decomposition. For distribution of TensorProdFun accross subdomains, see the distribute() TBP in m_tensorprod_basis.f90 |
| ►Mm_domain_decomp | Module for tensor product subdomains (used for MPI parallelisation) |
| Cactv_interval_inds | Determine the active intervals indices in one direction (based on the responsible B-spline indices) |
| Cdomaindecomp | The B-spline tensor product domain type |
| Cget_petsc | |
| Cmemory_layout_convert | |
| Ctensorproddomain | The tensor product domain type; contrary to DomainDecomp, this type is specific to tensor product B-spline spaces |
| Mm_domain_mform | Module for determining global indices of a vector of distributed tensor product B-spline spaces |
| ►Mm_domain_neighbour | Module that defines the TensorProdNeighbour type, which contains information needed for MPI communication |
| Ctensorprodneighbour | The tensor product neighbour type |
| Mm_mform | The top-level module for m-forms |
| Mm_mform_constraint | Top-level module for local m-form constraints |
| ►Mm_mform_constraint_abstract | Module containing an object representing a local linear constraint (i.e., one that acts on only part of the m-form) that can be imposed on an m-form function (MFormFun) |
| Cmform_constraint_local_init | |
| Cmformconstraintlocal | The object that represents linear constrains imposed locally (i.e., only acting on inds) on the coefficients of an mform |
| ►Mm_mform_constraint_boundary | Module containing implementations of various local m-form constraints, such as: |
| Cmformdirichlet | An object that represents a Dirichlet constraint on an m-form space |
| Cmformneumann | An object that represents a Neumann constraint on an m-form space |
| Cmformuniqueness | An object that represents a uniqueness constraint on an m-form space |
| ►Mm_mform_constraint_global | Module containing an object representing a linear constraint that can be imposed on an m-form function (MFormFun) |
| Cmformconstraint | The object that represents linear constraints imposed on the coefficients of an m-form |
| ►Mm_mform_constraint_polar | Module containing implementations of various local m-form constraints, such as: |
| Cmformpolarboundedness | An alias for MFormPolarRegularity(0), i.e., a boundedness constraint on an m-form resulting in conforming FEM spaces |
| Cmformpolarregularity | An object that represents a polar regularity constraint on an m-form space |
| ►Mm_mform_coupled_solver | Module containing the linear solver for coupled block systems of m-form equations |
| Ccoupledsolver | Solver for coupled block systems assembled into a PETSc nested matrix |
| Cmatrixholder | Wrapper type that allows passing heterogeneous polymorphic matrix blocks |
| ►Mm_mform_derham | Module for the DeRham sequence of m-forms |
| Cderhamsequence | |
| Cderhamsequence3c | |
| ►Mm_mform_eigensolver | Module that provides an interface to SLEPc for solving (generalized) eigenvalue problems |
| Ceigeninitoptions | |
| Ceigensolver | Type that wraps SLEPc functionality for solving (generalized) eigenvalue problems |
| ►Mm_mform_linalg | The m-form linear algebra module |
| Cinner_product | Compute the (L2) inner product of all elements of a m-form space with a user-defined function |
| Cl2_error | Compute the L2 norm of the difference between an m-form and a user-defined function |
| Cl2_norm | Compute the L2 norm of an m-form |
| Cl2_projection | |
| Csolve_curla_equals_b | |
| ►Mm_mform_matrix | Module for m-form matrices |
| Cabstractmatrix | Abstract base type for m-form matrices |
| Cconstraint_coeff_interface | |
| Cdiffdiffmatrix | Matrix representation of the weak form of a differential operator (divgrad, curlcurl, graddiv) |
| Cdiffmatrix | Matrix representation of the weak form of a differential operator (gradient, curl, divergence) |
| Cmassmatrix | Mass matrix |
| Ctranspose | |
| Czeromatrix | |
| ►Mm_mform_solver | Module containing the linear solver for linear systems of equations where the unknown is an m-form |
| Cabstractsolver | Abstract type for a generic linear solver for m-form systems of equations |
| Cgenericsolver | Generic solver for m-form systems of equations |
| Csolverinitoptions | |
| Csolverinittraits | |
| Csolversolveoptions | |
| ►Mm_qr_factorisation | Module for Householder QR factorisation and solving (small, dense) linear systems |
| Corthogonalize | Compute orthogonal matrix Q from QR factorization |
| Cqr_solve | Out-of-place QR factorisation and solving linear systems |
| Cqr_solve_inplace | In-place QR factorisation and solving linear systems |
| ►Mm_quadrature | Module for numerical quadrature |
| Cquadrature | Numerical quadrature |
| ►Mm_sparsemat | Module for sparse matrix operations |
| Csparsemat | Type for a sparse matrix in Compressed Sparse Row (CSR) format |
| Mm_tables | Module for printing tables |
| Mm_tensorprod | Top-level module for the tensor product B-splines |
| ►Mm_tensorprod_basis | Module containing the tensor product of three 1D B-spline spaces, toghether with the corresponding tensorproduct functions |
| Cactv_interval_inds | Determine the active intervals on the subdomain |
| Cevaluate | Evaluate a tensor product B-spline (function) at a given point |
| Cget_petsc | Convert a tensor product function to a PETSc vector |
| Csize | Get the size of the tensor product B-spline space (i.e., the number of linearly independent tensor product basis functions) |
| Ctensorprodfun | The tensor product function which is represented by a linear combination of the basis functions from a tensor product space |
| Ctensorprodspace | The tensor product of three B-spline spaces |
| ►Mm_tensorprod_indices | Module for handling tensor product indices and lists of indices |
| Cbox | Type to represent a 3D box |
| Csize | Get the size of the tensor product indices |
| Csize_2d | |
| Ctensorprodindexlist | Type to hold lists of tensor product indices |
| Ctensorprodindices | Type to hold tensor product indices |
| ►Mm_tensorprod_linalg | The tensor product linear algebra module |
| Cinner_product | Compute the (L2) inner product of all elements of a tensor product B-spline space with a user-defined function |
| Cintegrate | Integrate a user-defined function |
| Cl2_error | Compute the L2 norm of the difference between a tensor product B-spline function and a user-defined function |
| Cl2_projection | Compute the L2 projection of a user-defined function onto a tensor product B-spline space |
| ►Mm_tensorprod_matrix | Module for the mass matrix of a 3D tensor product B-spline space |
| Cget_petsc | Get the PETSc matrix from the (array of) TensorProdMat(s) |
| Cmass_matrix | Construct a mass matrix for two 3D tensor product B-spline spaces |
| Ctensorprodmat | Type for the mass matrix of a 3D tensor product B-spline basis |
| ►Mm_tensorprod_quadrature | Module for precomputed quadrature for tensor product B-splines |
| Cquadrature | Evaluate the quadrature for a tensor product B-spline space by making use of the precomputed quadrature |
| Cquadrature_product | Evaluate the quadrature for a product tensor product B-spline spaces by making use of the precomputed quadratures |
| Ctensorprodquadrature | A tensor product of BSplineQuadrature objects |
| ►Mm_tensorprod_shared | Module for initialising arrays based on shared memory using MPI shared memory windows |
| Csharedmemorywindow | Type for managing a shared memory array using MPI shared memory windows |
| ►Mm_timer | Basic module for MPI-aware timing utilities |
| Cbasictimer | BasicTimer object to measure elapsed time |