MicroPoroChemoMechanics is a GitHub organization of which I am one of the owners. It hosts a collection of Julia packages for multiscale modeling of porous reactive materials — from molecular-level thermodynamic equilibrium to macroscopic poromechanical response. The packages are designed to compose cleanly: they share conventions, are ForwardDiff-compatible, and plug into the SciML ecosystem.
Core packages
TensND.jl
Symbolic and numerical tensor calculations of any order and dimension in arbitrary coordinate systems, with structured isotropic, transversely isotropic and orthotropic types and curvilinear differential operators. It is the tensor foundation of the whole ecosystem.
ChemistryLab.jl
Computational chemistry toolkit — chemical formula handling, species management, stoichiometric matrices, ThermoFun/Cemdata database interoperability, activity models and thermodynamic equilibrium by Gibbs energy minimization. Dimensionally aware via DynamicQuantities.
MeanFieldHomogenization.jl
Mean-field homogenization framework for heterogeneous materials: Hill polarization tensors for ellipsoidal inclusions and infinite cylinders, crack-opening-displacement tensors with stress and displacement intensity factors, second-order Hill tensors for transport problems, layered spheres and confocal spheroids with imperfect interfaces, ageing linear viscoelasticity, and all the classical schemes.
Backend packages
OptimaSolver.jl
Julia port of Allan Leal’s Optima C++ library — a primal-dual interior-point solver for Gibbs-energy minimization with diagonal Hessian structure and implicit-differentiation sensitivity matrices. Serves as a core solver backend for ChemistryLab.jl equilibrium computations. LGPL-2.1-or-later, like the upstream library.
DECUHR.jl
Pure-Julia port of the DECUHR algorithm of Espelid & Genz (Numerical Algorithms 8, 1994, 201–220) for automatic adaptive integration of functions with vertex singularities over hyper-rectangles. Exposed as a pluggable algorithm for the SciML Integrals.jl ecosystem.
Installation and registry
TensND.jl, ChemistryLab.jl, OptimaSolver.jl, DECUHR.jl and MeanFieldHomogenization.jl are registered in Julia’s General registry and installed with a plain Pkg.add (see MeanFieldHomogenization.jl’s page for details).
The dedicated MPCM-Registry is deprecated and kept only as a frozen historical snapshot; if you added it in the past, remove it with Pkg.Registry.rm("MPCM-Registry").
