Manual — reading path
The Manual answers how do I do this. It says what to call, what the arguments mean, and where each choice bites. The why is in Theory — reading path, and the exhaustive signatures are in the API section, which the pages here link into rather than repeat.
If you have never used the package, Installation and then Schemes and RVEs are the two pages that make everything else readable.
Inclusions: which page for which morphology
Everything a scheme needs from a phase is one response tensor. What differs between the pages below is how that tensor is obtained — a closed form, a recurrence, a mesh, a network — and every one of them ends up in the same add_phase! call.
| Your morphology | Page | How the response is obtained |
|---|---|---|
| an ellipsoid, or one of its limits | Ellipsoidal inclusions | Eshelby's closed form |
| a fiber, a cylinder | Cylindrical inclusions | the same, in the cylindrical limit |
| a crack, a family of cracks | Cracks | the crack-opening tensor and its algebra |
| a coated particle, an interphase | Layered inclusions | a recurrence over the layers |
| anything else, from your own code | Custom inclusions | you supply it, through one of three gates |
| a shape with no closed form | Finite-element inclusions | one Eshelby cell, solved |
| the same, but cheap and differentiable | Neural-surrogate inclusions | a network trained on it |
The inclusion gallery draws them, if you would rather recognize a shape than read a table.
The rest
Schemes and RVEs — building a cell, choosing an estimate, and what each scheme assumes. Then particle assemblies for a population rather than a phase, and multiscale for a cell inside a cell.
Laminates — periodic homogenization, exact rather than estimated, and a different construction from everything above.
Beyond elasticity — conduction, viscoelasticity with its rheological models and Laplace–Carson inversion, and poromechanics.
Sensitivities — differentiating an effective property with respect to a modulus, a fraction or a shape parameter, and which inclusion types can and cannot serve that.
Finite elements appear twice in this package and the two are opposite: finite-element inclusions are a solver called inside homogenization, while finite-element coupling is homogenization called inside a solver, as a constitutive law at a Gauss point.