OpenPFC documentation¶

OpenPFC is an MPI-parallel C++ framework for phase-field crystal and related spectral phase-field models on structured grids. The framework can be used in two ways:
run one of the config-driven applications under
apps/; orlink the installed
OpenPFC::openpfclibrary from another CMake project.
This is the maintained OpenPFC documentation site. Hand-written Markdown and the generated C++ API reference share one navigation tree and search index. Doxygen extracts source-level API information as XML; Sphinx, MyST, and Breathe render the final site.
Start by goal¶
Goal |
Start here |
Continue with |
|---|---|---|
Verify a clone and dependency stack |
||
Run an existing application |
||
Add or change physics |
||
Integrate the library |
||
Run on a cluster |
||
Decide whether OpenPFC fits |
Documentation structure¶
Area |
Purpose |
Entry point |
|---|---|---|
|
Stable mental models and architecture |
|
|
Guided, end-to-end learning |
|
|
Short copy-paste procedures |
|
|
Running applications, configuration, and output |
|
|
Cluster operation and site guidance |
|
|
Adding models and extension points |
|
|
Lookup tables and file-format contracts |
|
|
Generated declarations, overloads, namespaces, and source comments |
|
|
Scientific context and model limitations |
|
|
Maintainer guidance and decisions |
|
|
Multi-session teaching material |
Canonical ownership¶
Documentation is easier to maintain when each fact has one primary home:
Information |
Canonical location |
|---|---|
Supported dependency and toolchain setup |
|
First successful build and run |
|
Broad build/run/integration overview |
|
Exact CMake option defaults |
|
JSON/TOML configuration keys |
|
Application inventory |
|
Example inventory |
|
Public API signatures |
|
Common failures |
|
Release-visible changes |
Other pages should link to these sources instead of copying long option lists, API examples, or troubleshooting sections.
Prose and generated API¶
Use narrative pages to understand workflows, concepts, trade-offs, and operational procedures. Use the generated API section for exact declarations and source-level Doxygen comments. The type tour connects common names to their layer, header, runnable example, and generated reference.
Both forms are rendered by Sphinx. MyST reads the Markdown tree, while Breathe imports Doxygen XML into the same site. This gives users one navigation model, one search index, one theme, and one published artifact.
Versioning and reproducibility¶
The documentation on master describes the development branch. For a tagged
release, read the documentation from the same tag. Record the OpenPFC commit or
release tag together with the HeFFTe and MPI versions used for a reproducible
simulation. See documentation versioning.
Contributing¶
Code contributions are described in CONTRIBUTING.md. Documentation-specific structure, preview commands, and checks are described in Contributing to documentation.