Introduction
MOLE is a high-quality (C++ & MATLAB/Octave) library that implements high-order mimetic operators to solve partial differential equations. It provides discrete analogs of the most common vector calculus operators: Gradient, Divergence, Laplacian, Bilaplacian, and Curl. These operators (highly sparse matrices) act on staggered grids (uniform, non-uniform, curvilinear) and satisfy local and global conservation laws.
Mathematics is based on the work of [Corbino and Castillo][corbino-paper]. However, the user may find helpful previous publications, such as [Castillo and Grone][castillo-paper], in which similar operators were derived using a matrix analysis approach.
MOLE comes with comprehensive documentation:
API Reference & User Guide: Access our online [Documentation][docs-link]
Building Documentation: To build documentation locally, follow our [Documentation Guide][doc-guide].
Important Note: Performing non-unary operations involving operands constructed over different grids may lead to unexpected results. While MOLE allows such operations without throwing errors, users must exercise caution when manipulating operators across different grids.
Licensing
MOLE is distributed under a GNU General Public License; please refer to the LICENSE file for more details.
Community Guidelines
We welcome contributions to MOLE, including:
Adding new functionalities
Providing examples
Addressing existing issues
Reporting bugs
Requesting new features
Please refer to our [Contribution Guidelines][contrib-guide] for more details.
Citations
Please cite our work if you use MOLE in your research or software. Citations are helpful for the continued development and maintenance of the library.