PFC5 Core Modeling
Use this skill for the version-pure foundation of a PFC 5.0 asphalt case. It
replaces the reusable intent of the former general basics/contact workflow
without restoring newer-major command files.
When To Use
- start or audit a PFC2D/PFC3D 5.0 case;
- create domains, walls, balls, clumps, groups, or ranges;
- plan current-contact versus future-contact model assignment;
- organize build, compaction, contact installation, equilibrium, and save stages;
- classify accepted, restart-only, diagnostic-only, failed, and obsolete states;
- detect unsupported-version syntax in a PFC5 source tree.
Route detailed gradation/void closure to pfc-asphalt-mixture, FISH to
pfc5-fish, servo/calibration to pfc5-servo-calibration, and migration or recovery
of an existing private case to pfc5-case-handoff.
Required Inputs
- PFC2D/PFC3D 5.0, units, sign convention, and runtime route;
- specimen/domain dimensions and boundary behavior;
- particle/clump size and shape abstraction;
- material/contact pair table;
- seed, equilibrium criterion, save/output contract.
Workflow
- Freeze version, dimension, units, axes, seed, and object abstractions.
- Create a clean model and domain before domain-sensitive objects.
- Define future-contact defaults with PFC5 top-level
cmat.
- Create boundaries, particles/clumps, groups, and reusable ranges.
- Form contacts, then audit counts/types before changing existing contacts.
- Compact or equilibrate to an explicit criterion.
- Install final contacts transactionally: save, apply, cycle, audit, solve, save.
- Initialize measurements before loading. If energy histories are required, enable
mechanical energy tracking before the measured interval.
- Run
scripts/audit_pfc5_case.py and an actual PFC5 syntax probe.
For an existing project, restore and audit the last claimed accepted state before a
full rebuild. A restart-only state may seed a recovery branch only when its object and
geometry invariants are known; re-run the original final gates without weakening them.
Read stage-gates.md for lifecycle checks and
pfc5-command-boundary.md when auditing
syntax.
Non-Negotiable Rules
- Do not infer PFC5 compatibility from an extension or old filename.
- Separate future defaults from existing-contact reassignment.
- Order non-default CMAT slots deliberately: PFC5 selects the first matching range,
then falls back to the default slot for that contact type.
- Treat multiple
solve limits as alternatives, not cumulative acceptance gates;
record which limit terminated the solve.
- Do not delete all contacts as a generic model-switch recipe.
cmat apply replaces the whole selected contact model and discards its prior stored
state; save and audit before applying it.
- A fixed cycle count does not prove equilibrium.
- Source audit is static evidence only; runtime acceptance remains required.
Output Contract
Return the PFC5 stage map, object/group/range map, contact assignment table,
equilibrium criteria, save map, audit report, and runtime_validated status.
Local Contents
references/stage-gates.md — build-to-delivery gates.
references/pfc5-command-boundary.md — syntax-family boundary.
scripts/audit_pfc5_case.py — deterministic source-tree audit.
agents/openai.yaml — interface metadata.
1---2name: pfc5-core-modeling3description: Build and audit PFC2D/PFC3D 5.0 model foundations for asphalt cases, including lifecycle, domain, balls, walls, clumps, groups, ranges, top-level cmat, staged saves, and source-version purity.4---56# PFC5 Core Modeling78Use this skill for the version-pure foundation of a PFC 5.0 asphalt case. It9replaces the reusable intent of the former general basics/contact workflow10without restoring newer-major command files.1112## When To Use1314- start or audit a PFC2D/PFC3D 5.0 case;15- create domains, walls, balls, clumps, groups, or ranges;16- plan current-contact versus future-contact model assignment;17- organize build, compaction, contact installation, equilibrium, and save stages;18- classify accepted, restart-only, diagnostic-only, failed, and obsolete states;19- detect unsupported-version syntax in a PFC5 source tree.2021Route detailed gradation/void closure to `pfc-asphalt-mixture`, FISH to22`pfc5-fish`, servo/calibration to `pfc5-servo-calibration`, and migration or recovery23of an existing private case to `pfc5-case-handoff`.2425## Required Inputs2627- PFC2D/PFC3D 5.0, units, sign convention, and runtime route;28- specimen/domain dimensions and boundary behavior;29- particle/clump size and shape abstraction;30- material/contact pair table;31- seed, equilibrium criterion, save/output contract.3233## Workflow34351. Freeze version, dimension, units, axes, seed, and object abstractions.362. Create a clean model and domain before domain-sensitive objects.373. Define future-contact defaults with PFC5 top-level `cmat`.384. Create boundaries, particles/clumps, groups, and reusable ranges.395. Form contacts, then audit counts/types before changing existing contacts.406. Compact or equilibrate to an explicit criterion.417. Install final contacts transactionally: save, apply, cycle, audit, solve, save.428. Initialize measurements before loading. If energy histories are required, enable43 mechanical energy tracking before the measured interval.449. Run `scripts/audit_pfc5_case.py` and an actual PFC5 syntax probe.4546For an existing project, restore and audit the last claimed accepted state before a47full rebuild. A restart-only state may seed a recovery branch only when its object and48geometry invariants are known; re-run the original final gates without weakening them.4950Read [stage-gates.md](references/stage-gates.md) for lifecycle checks and51[pfc5-command-boundary.md](references/pfc5-command-boundary.md) when auditing52syntax.5354## Non-Negotiable Rules5556- Do not infer PFC5 compatibility from an extension or old filename.57- Separate future defaults from existing-contact reassignment.58- Order non-default CMAT slots deliberately: PFC5 selects the first matching range,59 then falls back to the default slot for that contact type.60- Treat multiple `solve` limits as alternatives, not cumulative acceptance gates;61 record which limit terminated the solve.62- Do not delete all contacts as a generic model-switch recipe.63- `cmat apply` replaces the whole selected contact model and discards its prior stored64 state; save and audit before applying it.65- A fixed cycle count does not prove equilibrium.66- Source audit is static evidence only; runtime acceptance remains required.6768## Output Contract6970Return the PFC5 stage map, object/group/range map, contact assignment table,71equilibrium criteria, save map, audit report, and `runtime_validated` status.7273## Local Contents7475- `references/stage-gates.md` — build-to-delivery gates.76- `references/pfc5-command-boundary.md` — syntax-family boundary.77- `scripts/audit_pfc5_case.py` — deterministic source-tree audit.78- `agents/openai.yaml` — interface metadata.