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. However, the user may find helpful previous publications, such as Castillo and Grone, in which similar operators were derived using a matrix analysis approach.
MOLE comes with comprehensive documentation:
API Reference & User Guide: Access our online Documentation
Building Documentation: To build documentation locally, follow our Documentation 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 for more details.
How to Cite#
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.
@article{Corbino2024,
doi = {10.21105/joss.06288},
url = {https://doi.org/10.21105/joss.06288},
year = {2024},
publisher = {The Open Journal},
volume = {9},
number = {99},
pages = {6288},
author = {Corbino, Johnny and Dumett, Miguel A. and Castillo, Jose E.},
title = {MOLE: Mimetic Operators Library Enhanced},
journal = {Journal of Open Source Software} }
The archival copy of the MOLE User Manual is maintained on Zenodo. To cite the User Manual please use:
@misc{MOLE_user_manual,
author = {Barra, Valeria and
Boada, Angel and
Brzenski, Jared and
Castillo, Jose and
Chakalasiya, Prit and
Singh, Surinder Chhabra and
Corbino, Johnny Delgado and
Drummond, Tony and
Dumett, Miguel and
Hellmers, Joe and
Ilaty, Arshia and
Kaviani, Katayoon and
Nzerem, Oluchi and
Pagallo, Giulia and
Paolini, Christopher and
Rosano, Valentina and
Srinivas, Aneesh Murthy and
Srinivasan, Janani Priyadharshini and
Valera, Manuel},
title = {{MOLE User Manual}},
month = aug,
year = 2025,
publisher = {Zenodo},
version = {1.1.0},
doi = {10.5281/zenodo.16898575},
url = {https://doi.org/10.5281/zenodo.16898575},
}