Getting Started
API Reference
Mathematical Framework
Examples
Project
This section documents the C++ implementation of the MOLE toolkit.
The C++ implementation provides high-performance operators and boundary conditions for numerical computations, with a focus on mimetic methods.
The following diagram shows the key classes in the MOLE C++ API and their relationships:
digraph mole_class_structure { bgcolor="transparent"; rankdir=BT; compound=true; node [shape=box, style=filled, fillcolor=white, fontname="Arial", fontsize=10]; edge [fontname="Arial", fontsize=9]; // Core base classes subgraph cluster_base { label="Base Classes"; style=dashed; sp_mat [label="sp_mat\n(Armadillo)"]; Operator [label="Operator\n(Abstract Base)"]; } // Operators subgraph cluster_operators { label="Core Operators"; style=dashed; Interpol [label="Interpol\n(Interpolation)"]; Gradient [label="Gradient"]; Divergence [label="Divergence"]; Laplacian [label="Laplacian"]; } // Boundary Conditions subgraph cluster_bc { label="Boundary Conditions"; style=dashed; RobinBC [label="RobinBC\n(Robin/Neumann/\nDirichlet)"]; MixedBC [label="MixedBC\n(Mixed)"]; } // Utility Components subgraph cluster_utils { label="Utilities"; style=dashed; Utils [label="Utils\n(Helper Functions)"]; GridFunctions [label="Grid Functions"]; WeightFunctions [label="Weight Functions"]; } // Inheritance relationships sp_mat -> Operator [dir=back, arrowtail=empty, label="inherits"]; Operator -> {Interpol Gradient Divergence Laplacian RobinBC MixedBC} [dir=back, arrowtail=empty]; // Usage relationships edge [style=dashed, dir=forward]; Gradient -> Laplacian [label="used by"]; Divergence -> Laplacian [label="used by"]; // Utility relationships edge [style=dotted, dir=forward]; Utils -> {Gradient Divergence Laplacian} [label="supports"]; Utils -> {RobinBC MixedBC} [label="supports"]; GridFunctions -> {Gradient Divergence} [label="configures"]; WeightFunctions -> {Interpol Gradient Divergence} [label="configures"]; // Boundary condition relationships edge [style=dashed, constraint=false]; RobinBC -> {Gradient Divergence} [label="modifies"]; MixedBC -> {Gradient Divergence} [label="modifies"]; }
Advanced Usage
For advanced usage patterns and performance optimization, check out the individual class documentation pages.