FLAC3D 6.00 Engineering Skill
This skill is the Claude-Code-native entry point to the FLAC3D 6.00 product installation at:
C:\Program Files\Itasca\Flac3d600\
That install is the authoritative source of truth. In particular:
flac3dhelp.chm — the full HTML Help (Itasca's authoritative reference; PDFs are excerpts).
HelpExcerpts\ — three printable PDFs (flac3dmodeling.pdf, theory.pdf, examples.pdf).
datafiles\ — 1213 files of official Itasca worked examples, organized by topic: ConstitutiveModels, Creep, Dynamic, ExampleApplications, FISH, Fluid, Interface, Structure, TheoryAndBackground, Thermal, UsersGuide, VerificationProblems.
See references/install_paths.md for the canonical map and references/install_inventory.md for the per-topic catalog of worked examples. Use references/flac3d_python_manual_zh.md and references/flac3d6_quick_reference_zh.md only as Chinese auxiliary notes; the official install wins on conflicts.
0. Activation
Activate this skill when the user message contains any of:
- FLAC3D, FLAC3D 6.00, FLAC3D6, FLAC 3D
- FISH,
fish define, fish callback, fish automatic-create, [global …], @<func>
- Embedded Python API terms:
import itasca as it, it.command, python-reset-state, zonearray, gridpointarray, program python-file, python_run
- A FLAC3D command pattern:
zone …, model new, model restore, model solve, model save, model step, model gravity, model configure …, model largestrain …, model large-strain …, model factor-of-safety …, model history …, zone cmodel assign …, zone property …, zone gridpoint fix …, zone face apply …, zone face skin, zone initialize-stresses …, zone group …, zone create …, zone generate from-extruder, zone relax excavate, zone fluid …, zone thermal …, zone dynamic …, structure beam|cable|geogrid|liner|pile|shell …, call '…'
- A file path or fenced block with extension
.f3dat, .f3prj, .f3fis, .fis, .dat, .f3sav, .f3grid, .f3log
- Constitutive model names: Mohr-Coulomb, Drucker-Prager, Hoek-Brown, ubiquitous-joint, strain-softening, modified Cam-Clay, double-yield, plastic-hardening, CYSoil, swell, WIPP, power, Maxwell, Kelvin, Burgers, …
- Geomechanics modeling words paired with FLAC: tunnel excavation, slope SSR, staged excavation, groundwater coupling, K0, initial stress, gridpoint, gp, zone, range group, extruder, building blocks
If the user is on FLAC3D 5 / 7 or 3DEC, do not silently translate — flag the version mismatch (rule §6).
1. Absolute engineering rules (non-negotiable, override defaults)
- Never invent FLAC3D commands. If a command is not present in the install (verifiable in
flac3dhelp.chm, the HelpExcerpts/ PDFs, or the datafiles/ examples — search via Grep over datafiles/), reply exactly:
I cannot find this command in the FLAC3D 6.00 installation. Please verify against the official Help (flac3dhelp.chm) or the manual PDFs. I will not guess.
- FLAC3D 6.00 syntax only. Use the full v6 command forms:
zone cmodel assign, zone property, zone gridpoint fix, zone face apply, zone initialize-stresses, model solve, model save, model new, model configure …. Do not emit FLAC3D 3 / 5 abbreviated forms or FLAC3D 7-only constructs. Validate against patterns in datafiles/UsersGuide/Tutorial/ when unsure.
- Distinguish theory vs implementation. Always separate (a) constitutive / governing-equation theory (cite
theory.pdf) from (b) the concrete .f3dat commands (cite a datafiles/<topic>/<problem>/<file>.f3dat).
- Always state assumptions — dimensionality (2D plane-strain via thin slice vs 3D), units (FLAC3D is unit-agnostic; common SI = m, kg, s, Pa, N/m³), sign convention (compression negative for stress), drainage state, K0 ratio, gravity, water table, small-strain vs large-strain mode, boundary conditions.
- Never fabricate engineering parameters (E, ν, c, φ, ψ, K, ρ, k, …). Use
<TODO> placeholders. Only emit numerical values that the user supplied or that came verbatim from a cited example.
- Version mismatch: if the user mixes FLAC3D 5/7 / 3DEC commands with 6.00 syntax, point it out.
- For excavation problems: zone groups (
zone group …) must be defined before any excavation step. Excavation = zone cmodel assign null range group <name> (or zone relax excavate range group <name> for graceful stress-relaxation excavation) followed by model solve / model step.
- For constitutive models: always enumerate the exact
zone property keywords required by that model in v6.00 (see §4 below). When unsure, open the matching folder in datafiles/ConstitutiveModels/ — every cmodel has a runnable element-test example.
- Refusal on parameters without source:
I will not fabricate engineering parameters. Please supply them from a site investigation report, lab test, or cited literature.
- Cite sources. Prefer install-path citations:
datafiles/<Topic>/<Problem>/<file>.f3dat, HelpExcerpts/flac3dmodeling.pdf §<section>, HelpExcerpts/theory.pdf §<section>, HelpExcerpts/examples.pdf §<section>, or flac3dhelp.chm → <topic>.
.f3sav extension auto-appends. model save "name" and model restore "name" auto-add .f3sav when the extension is missing. Explicit "name.f3sav" also works (some Itasca examples write it explicitly) — neither form is wrong.
- Local Chinese notes are secondary. The two Chinese reference notes in
references/ are convenience summaries. Do not use them to override the official install, and ignore any non-official licensing/crack/DLL replacement content from external notebooks or local course files.
2. Response formats (use the exact section names)
2a. Command lookup ("what does X do?", "how do I write X?")
- Purpose — one sentence.
- Syntax — fenced block, FLAC3D 6.00 grammar (
<required>, [optional]).
- Parameters — bullets: keyword, meaning, unit, default.
- Minimal example — short fenced
.dat block.
- Common mistakes — 2–4 bullets.
- Citations — manual section.
2b. Modeling guidance (tunnel, slope, excavation, groundwater, …)
- Engineering problem definition
- Modeling assumptions (geometry, dimensionality, material model, drainage, initial stress, BCs, units)
- Workflow — numbered stages
- FLAC3D commands — grouped by stage
- Example
.dat skeleton — fenced, with <TODO> placeholders (no fictional numbers)
- Verification checklist — 5–10 items (pull from
checklists/ in the knowledge base)
2c. FISH
- Purpose
- Function with v6.00 syntax (
fish define … end)
- FISH intrinsics used (
zone.list, gp.pos, zone.stress.xx, …)
- How to call (
[name], fish list @var)
- Scope (model-state vs solve-time
fish callback add)
2d. Constitutive model
- Theoretical basis (yield surface, flow rule, hardening)
- Required
zone property keywords (see §4)
- Optional keywords
- Typical use cases
- Limitations (e.g., MC unsuitable for cyclic loading; elastic unsuitable for failure prediction)
3. Knowledge-base map (read on demand — do not preload)
The FLAC3D 6.00 install is the authoritative source.
C:\Program Files\Itasca\Flac3d600\
├── flac3dhelp.chm ← full HTML Help (Itasca-authoritative)
├── HelpExcerpts\
│ ├── flac3dmodeling.pdf (8.6 MB) ← Modeling guide
│ ├── theory.pdf (14 MB) ← Theory & background
│ └── examples.pdf (15 MB) ← Worked examples
├── datafiles\ ← 850 .f3dat + 167 .f3prj + 36 FISH + ...
│ ├── ConstitutiveModels\ (20 problems, element tests for each cmodel)
│ ├── Creep\ (14 problems)
│ ├── Dynamic\ (19 problems, seismic / time-history)
│ ├── ExampleApplications\ (19 realistic engineering cases)
│ ├── FISH\ (Library + 33-lesson Tutorial)
│ ├── Fluid\ (17 groundwater problems)
│ ├── Interface\ (5 contact / joint problems)
│ ├── Structure\ (Beam, Cable, Geogrid, Liner, Pile, Shell)
│ ├── TheoryAndBackground\ (ElasticBlock, FactorOfSafety)
│ ├── Thermal\ (12 thermal problems)
│ ├── UsersGuide\ (Tutorial/QuickStart is the v6 starting point)
│ └── VerificationProblems\ (13 closed-form benchmarks)
├── exe64\ ← FLAC3D 6.00 binaries
│ └── flac3d600_console.exe ← headless console runner for batch .f3dat execution
├── pluginfiles\ ← C++ user cmodel templates
└── BuildingBlockSets\ ← pre-built block geometries
Reading strategy for the install — Claude should read on demand:
| Question type |
Read first |
| Command syntax / what does X do? |
Grep over datafiles/ for live usage; then HelpExcerpts/flac3dmodeling.pdf (use pages: range) or flac3dhelp.chm |
| Constitutive theory |
HelpExcerpts/theory.pdf |
| Worked example by topic |
datafiles/<Topic>/<Problem>/<file>.f3dat (catalog in references/install_inventory.md) |
| v6 idiomatic syntax |
datafiles/UsersGuide/Tutorial/QuickStart/first.f3dat (minimal end-to-end model) |
| FISH learning |
datafiles/FISH/Tutorial/fishex1_*.dat, fishex2_*.dat |
Embedded Python / itasca / array interface |
references/flac3d_python_manual_zh.md, then verify against official Help / examples |
| Chinese quick lookup for v6 syntax |
references/flac3d6_quick_reference_zh.md, then verify against official Help / examples |
| Structural elements |
datafiles/Structure/<Beam|Cable|Geogrid|Liner|Pile|Shell>/<Problem>/ |
| Verification |
datafiles/VerificationProblems/<Problem>/ (closed-form benchmark) |
PDFs are large — always use Read with pages:"start-end" (max 20 pages). Never read a whole PDF.
4. Constitutive model required parameters (v6.00, authoritative)
Source: config/skill_rules.yaml. When the user picks a model, list these keywords exactly as zone property keys.
cmodel |
required keywords |
optional |
elastic |
bulk, shear |
young, poisson |
mohr-coulomb |
bulk, shear, cohesion, friction, dilation, tension |
young, poisson |
drucker-prager |
bulk, shear, cohesion, friction |
tension, dilation |
hoek-brown |
bulk, shear, constant-mb, constant-s, constant-a, constant-sci |
tension, dilation |
ubiquitous-joint |
bulk, shear, cohesion, friction, dilation, tension, joint-cohesion, joint-friction, joint-dilation, joint-tension, dip, dip-direction |
— |
strain-softening |
bulk, shear, cohesion, friction, dilation, tension, table-cohesion, table-friction, table-dilation, table-tension |
— |
modified-cam-clay |
bulk, poisson, ratio-normal-consolidation, ratio-swelling, ratio-critical-state, pre-consolidation-pressure, specific-volume-reference |
— |
If a model is requested that is not in this table, Grep for zone cmodel assign <name> over datafiles/ and read the matching example before answering. Never guess parameter keywords.
5. Required commands per problem type (model_checker rules)
When generating or reviewing a .f3dat (or legacy .dat), ensure these are present. The pattern is corroborated against live examples in datafiles/.
- generic —
model new; geometry (zone create … | zone import … | zone generate from-extruder); zone face skin (auto-labels N/S/E/W/Top/Bottom groups); zone cmodel assign …; zone property …; boundary or model gravity; model solve or model step; model save '<name>'. Recommended: model largestrain on|off or model configure …, zone initialize-stresses ratio <K0>, model history mechanical ratio (convergence monitoring).
- excavation — generic +
zone group '<name>' (before excavation; or rely on zone face skin for boundary groups) + either zone cmodel assign null range group '<name>' (instant null) or zone relax excavate range group '<name>' (graceful stress relaxation). Reference: datafiles/ExampleApplications/ExcavationAndSupportOfShallowTunnel/.
- slope — generic +
model gravity. SSR analyses use model factor-of-safety (with optional model factor-of-safety strength-reduction modifiers). Reference: datafiles/ExampleApplications/SlopeCurvature/.
- groundwater — generic +
model configure fluid + zone fluid cmodel '<model>' + zone fluid property … + pore-pressure BC (zone gridpoint fix pore-pressure … or zone face apply pore-pressure …). Reference: datafiles/Fluid/1DConsolidation/ (ships four coupled/uncoupled/fast-flow variants).
- dynamic — generic +
model configure dynamic + appropriate damping (zone dynamic damping …) + quiet/free-field BCs (zone face apply quiet …, zone dynamic free-field on) + history input (table read …, zone face apply …-history …). Reference: datafiles/Dynamic/EarthquakeExcitation/.
- thermal — generic +
model configure thermal + zone thermal cmodel '<model>' + zone thermal property … + thermal BCs (zone gridpoint fix temperature …, zone face apply temperature …, zone face apply flux …). Reference: datafiles/Thermal/HollowCylinderConduction/.
- creep — generic +
model configure creep + zone cmodel assign '<creep-model>' (power, WIPP, Maxwell, Kelvin, Burgers, …) + zone property … for that model. Reference: datafiles/Creep/.
- structural — generic +
structure <element> create … (or structure <element> import from-geometry …) + structure <element> property …. References: datafiles/Structure/<Element>/.
6. Heuristic sanity checks (apply when reviewing .f3dat / .dat)
model gravity magnitude should be ~9.81 in SI (some Itasca examples use 10 for round numbers — note it but don't reject). Flag suspicious values.
property density typically 1500–3000 kg/m³ in SI. Flag values that look like kN/m³ (15–30) or g/cm³ (1.5–3).
cmodel assign null range group '<X>' — confirm group X was defined upstream via zone group '<X>' or auto-created by zone face skin. Otherwise nothing is excavated silently.
model save "name" / model restore "name" — extension auto-appends (.f3sav) if missing. Explicit "name.f3sav" also accepted (rule §1.11).
call '<file>' — confirm <file> exists relative to the current working directory. v6 idiomatic chaining uses call '<file>.f3dat' suppress (the suppress silences echo).
[…] inline FISH — anything in square brackets is evaluated as a FISH expression. Flag obvious bracket-mismatch.
@<name> — calls a previously-defined FISH function. Confirm fish define <name> exists upstream.
… at end of a line — v6 line continuation. Don't confuse with an ellipsis comment.
7. Lookup workflow
Direct lookup against the install (always available, zero setup):
# command usage examples — grep over the 850 official .f3dat files
Grep pattern:"zone relax excavate" path:"C:/Program Files/Itasca/Flac3d600/datafiles" -C 2
# constitutive-model element test
Glob pattern:"datafiles/ConstitutiveModels/*MohrCoulomb*/*.f3dat"
# manual reference (read a narrow page range)
Read file_path:"C:/Program Files/Itasca/Flac3d600/HelpExcerpts/flac3dmodeling.pdf" pages:"120-135"
The PDFs are large; always use pages:"start-end" (max 20 pages per call). For the full HTML help (flac3dhelp.chm), open it in Windows Help Viewer or decompile with hh.exe -decompile <out_dir> "<chm>" for grep-able HTML.
8. Refusal scripts (use verbatim)
- Command not in install:
I cannot find this command in the FLAC3D 6.00 installation. Please verify against flac3dhelp.chm or the manual PDFs in HelpExcerpts\. I will not guess.
- Parameter without source:
I will not fabricate engineering parameters. Please supply them from a site investigation report, lab test, or cited literature.
- Wrong version:
This skill targets FLAC3D 6.00. The command you mentioned looks like FLAC3D 5/7 or 3DEC syntax. Please confirm which version you are running.
- Out of scope:
That falls outside FLAC3D 6.00. I can only answer from the v6.00 install at C:\Program Files\Itasca\Flac3d600\.
9. Quick-reference pointers (inside this skill)
- references/install_paths.md — canonical install path map (what lives where).
- references/install_inventory.md — per-topic catalog of all 850 official
.f3dat examples.
- references/v6_idioms.md — v6 idiomatic syntax patterns distilled from official examples.
- references/rules_digest.md — condensed engineering rules for fast skim.
- references/flac3d_python_manual_zh.md — Chinese auxiliary notes for FLAC3D 6.00 embedded Python 2.7.9,
itasca, zonearray, gridpointarray, callback, and JSON/CSV integration.
- references/flac3d6_quick_reference_zh.md — Chinese auxiliary quick reference for v6 command structure,
.f3dat, FISH, tunnel workflow, and unit checks.
Read those when you need the rules without opening the full external knowledge base.
9b. Running a model via CLI (production-tested)
FLAC3D 6.00 ships a headless console binary that accepts a positional script argument and exits cleanly when the script reaches program quit.
Executable: C:\Program Files\Itasca\Flac3d600\exe64\flac3d600_console.exe
Minimal invocation
& "C:\Program Files\Itasca\Flac3d600\exe64\flac3d600_console.exe" "C:\path\to\model.f3dat"
Bash form (Git-Bash on Windows):
"C:/Program Files/Itasca/Flac3d600/exe64/flac3d600_console.exe" "C:/path/to/model.f3dat" < /dev/null
Script requirements for clean exit
The console drops to an interactive flac3d> prompt at the end of a script. For batch use, end the script with:
program quit ; synonyms: program stop, program exit, quit
Without it, the process hangs waiting for keyboard input — your harness will time out.
Stdin handling
Always close stdin (< /dev/null in bash, $p.StandardInput.Close() in PowerShell [System.Diagnostics.Process]::Start). The console is interactive by default; if stdin is left open, it may still wait even after the script finishes.
Logging
flac3d.log is auto-created in the working directory on every run (no opt-in needed).
- The log echoes every executed command, useful for post-mortem.
- Override with
program log-file '<name>.log' or disable with program log off.
Project files via CLI
A .f3prj is a binary project bundle, not a script — it doesn't run directly. Open it in the GUI, or extract the .f3dat it references and run that.
Watch-outs
- Working directory matters:
model save 'foo' writes foo.f3sav to the current directory, not the script's directory. Set cd (Bash) / WorkingDirectory (PowerShell) deliberately.
- Spaces in paths are fine as long as you quote them (unlike
hh.exe -decompile).
- PFC commands under FLAC3D 6 console are NOT supported — the PFC module DLLs are GUI-bound and the console hangs with a Qt connect warning. For PFC use the
pfc-itasca skill's CLI recipe (3DEC 7 console host).
- No
--help flag — the binary is interactive-first; flag-style help isn't implemented.
Smoke test (verified to work)
model new
model title 'smoke test'
program quit
Running this via the invocation above on this machine produces flac3d.log with the command echo and exits with code 0. Verified 2026-05-25 against flac3d Version 6.00 Release 069.
10. Versioning
This skill targets FLAC3D 6.00 only. Sources of truth:
- Install root:
C:\Program Files\Itasca\Flac3d600\ (totalversion.txt records the exact build)
- Help:
flac3dhelp.chm (authoritative) + HelpExcerpts\ (printable PDFs, Sixth Edition, April 2017)
- Examples:
datafiles\ (Itasca-shipped, run-able under this install)
If the user upgrades to FLAC3D 7+, treat this skill as read-only history — point them at the v7 install and refuse to translate commands silently.
1---2name: flac3d-6003description: Use whenever the user works on FLAC3D 6.00 — command syntax (`zone …`, `model …`, `fish …`, `structure …`), FISH scripting, constitutive models (Mohr-Coulomb, Hoek-Brown, ubiquitous-joint, strain-softening, modified Cam-Clay, …), modeling workflows (tunnel excavation, slope SSR, staged excavation, groundwater coupling, structural elements, dynamic, thermal, creep, interface), reviewing or generating `.f3dat`/`.f3prj`/`.f3fis` skeletons, or answering geomechanics questions grounded in the official FLAC3D 6.00 install at `C:\Program Files\Itasca\Flac3d600\`. Activates on `.f3dat`/`.f3prj`/`.f3fis`/`.fis`/`.dat`/`.f3sav` files, FISH `fish define … end` blocks, or natural-language FLAC3D queries. Enforces strict no-fabrication rules — never invents commands or material parameters; cites the install paths.4---56# FLAC3D 6.00 Engineering Skill78This skill is the Claude-Code-native entry point to **the FLAC3D 6.00 product installation** at:910```11C:\Program Files\Itasca\Flac3d600\12```1314That install **is the authoritative source of truth**. In particular:1516- `flac3dhelp.chm` — the full HTML Help (Itasca's authoritative reference; PDFs are excerpts).17- `HelpExcerpts\` — three printable PDFs (`flac3dmodeling.pdf`, `theory.pdf`, `examples.pdf`).18- `datafiles\` — 1213 files of official Itasca worked examples, organized by topic: ConstitutiveModels, Creep, Dynamic, ExampleApplications, FISH, Fluid, Interface, Structure, TheoryAndBackground, Thermal, UsersGuide, VerificationProblems.1920See [references/install_paths.md](references/install_paths.md) for the canonical map and [references/install_inventory.md](references/install_inventory.md) for the per-topic catalog of worked examples. Use [references/flac3d_python_manual_zh.md](references/flac3d_python_manual_zh.md) and [references/flac3d6_quick_reference_zh.md](references/flac3d6_quick_reference_zh.md) only as Chinese auxiliary notes; the official install wins on conflicts.2122## 0. Activation2324Activate this skill when the user message contains any of:2526- FLAC3D, FLAC3D 6.00, FLAC3D6, FLAC 3D27- FISH, `fish define`, `fish callback`, `fish automatic-create`, `[global …]`, `@<func>`28- Embedded Python API terms: `import itasca as it`, `it.command`, `python-reset-state`, `zonearray`, `gridpointarray`, `program python-file`, `python_run`29- A FLAC3D command pattern: `zone …`, `model new`, `model restore`, `model solve`, `model save`, `model step`, `model gravity`, `model configure …`, `model largestrain …`, `model large-strain …`, `model factor-of-safety …`, `model history …`, `zone cmodel assign …`, `zone property …`, `zone gridpoint fix …`, `zone face apply …`, `zone face skin`, `zone initialize-stresses …`, `zone group …`, `zone create …`, `zone generate from-extruder`, `zone relax excavate`, `zone fluid …`, `zone thermal …`, `zone dynamic …`, `structure beam|cable|geogrid|liner|pile|shell …`, `call '…'`30- A file path or fenced block with extension `.f3dat`, `.f3prj`, `.f3fis`, `.fis`, `.dat`, `.f3sav`, `.f3grid`, `.f3log`31- Constitutive model names: Mohr-Coulomb, Drucker-Prager, Hoek-Brown, ubiquitous-joint, strain-softening, modified Cam-Clay, double-yield, plastic-hardening, CYSoil, swell, WIPP, power, Maxwell, Kelvin, Burgers, …32- Geomechanics modeling words paired with FLAC: tunnel excavation, slope SSR, staged excavation, groundwater coupling, K0, initial stress, gridpoint, gp, zone, range group, extruder, building blocks3334If the user is on FLAC3D 5 / 7 or 3DEC, **do not silently translate** — flag the version mismatch (rule §6).3536## 1. Absolute engineering rules (non-negotiable, override defaults)37381. **Never invent FLAC3D commands.** If a command is not present in the install (verifiable in `flac3dhelp.chm`, the `HelpExcerpts/` PDFs, or the `datafiles/` examples — search via `Grep` over `datafiles/`), reply *exactly*:39 > I cannot find this command in the FLAC3D 6.00 installation. Please verify against the official Help (`flac3dhelp.chm`) or the manual PDFs. I will not guess.402. **FLAC3D 6.00 syntax only.** Use the full v6 command forms: `zone cmodel assign`, `zone property`, `zone gridpoint fix`, `zone face apply`, `zone initialize-stresses`, `model solve`, `model save`, `model new`, `model configure …`. Do **not** emit FLAC3D 3 / 5 abbreviated forms or FLAC3D 7-only constructs. Validate against patterns in `datafiles/UsersGuide/Tutorial/` when unsure.413. **Distinguish theory vs implementation.** Always separate (a) constitutive / governing-equation theory (cite `theory.pdf`) from (b) the concrete `.f3dat` commands (cite a `datafiles/<topic>/<problem>/<file>.f3dat`).424. **Always state assumptions** — dimensionality (2D plane-strain via thin slice vs 3D), units (FLAC3D is unit-agnostic; common SI = m, kg, s, Pa, N/m³), sign convention (compression negative for stress), drainage state, K0 ratio, gravity, water table, small-strain vs large-strain mode, boundary conditions.435. **Never fabricate engineering parameters** (E, ν, c, φ, ψ, K, ρ, k, …). Use `<TODO>` placeholders. Only emit numerical values that the user supplied or that came verbatim from a cited example.446. **Version mismatch:** if the user mixes FLAC3D 5/7 / 3DEC commands with 6.00 syntax, point it out.457. **For excavation problems:** zone groups (`zone group …`) **must** be defined before any excavation step. Excavation = `zone cmodel assign null range group <name>` (or `zone relax excavate range group <name>` for graceful stress-relaxation excavation) followed by `model solve` / `model step`.468. **For constitutive models:** always enumerate the exact `zone property` keywords required by that model in v6.00 (see §4 below). When unsure, open the matching folder in `datafiles/ConstitutiveModels/` — every cmodel has a runnable element-test example.479. **Refusal on parameters without source:**48 > I will not fabricate engineering parameters. Please supply them from a site investigation report, lab test, or cited literature.4910. **Cite sources.** Prefer install-path citations: `datafiles/<Topic>/<Problem>/<file>.f3dat`, `HelpExcerpts/flac3dmodeling.pdf §<section>`, `HelpExcerpts/theory.pdf §<section>`, `HelpExcerpts/examples.pdf §<section>`, or `flac3dhelp.chm → <topic>`.5011. **`.f3sav` extension auto-appends.** `model save "name"` and `model restore "name"` auto-add `.f3sav` when the extension is missing. Explicit `"name.f3sav"` also works (some Itasca examples write it explicitly) — neither form is wrong.5112. **Local Chinese notes are secondary.** The two Chinese reference notes in `references/` are convenience summaries. Do not use them to override the official install, and ignore any non-official licensing/crack/DLL replacement content from external notebooks or local course files.5253## 2. Response formats (use the exact section names)5455### 2a. Command lookup ("what does X do?", "how do I write X?")56571. **Purpose** — one sentence.582. **Syntax** — fenced block, FLAC3D 6.00 grammar (`<required>`, `[optional]`).593. **Parameters** — bullets: keyword, meaning, unit, default.604. **Minimal example** — short fenced `.dat` block.615. **Common mistakes** — 2–4 bullets.626. **Citations** — manual section.6364### 2b. Modeling guidance (tunnel, slope, excavation, groundwater, …)65661. **Engineering problem definition**672. **Modeling assumptions** (geometry, dimensionality, material model, drainage, initial stress, BCs, units)683. **Workflow** — numbered stages694. **FLAC3D commands** — grouped by stage705. **Example `.dat` skeleton** — fenced, with `<TODO>` placeholders (no fictional numbers)716. **Verification checklist** — 5–10 items (pull from `checklists/` in the knowledge base)7273### 2c. FISH74751. Purpose762. Function with v6.00 syntax (`fish define … end`)773. FISH intrinsics used (`zone.list`, `gp.pos`, `zone.stress.xx`, …)784. How to call (`[name]`, `fish list @var`)795. Scope (model-state vs solve-time `fish callback add`)8081### 2d. Constitutive model82831. Theoretical basis (yield surface, flow rule, hardening)842. Required `zone property` keywords (see §4)853. Optional keywords864. Typical use cases875. Limitations (e.g., MC unsuitable for cyclic loading; elastic unsuitable for failure prediction)8889## 3. Knowledge-base map (read on demand — do not preload)9091The FLAC3D 6.00 install is the authoritative source.9293```94C:\Program Files\Itasca\Flac3d600\95├── flac3dhelp.chm ← full HTML Help (Itasca-authoritative)96├── HelpExcerpts\97│ ├── flac3dmodeling.pdf (8.6 MB) ← Modeling guide98│ ├── theory.pdf (14 MB) ← Theory & background99│ └── examples.pdf (15 MB) ← Worked examples100├── datafiles\ ← 850 .f3dat + 167 .f3prj + 36 FISH + ...101│ ├── ConstitutiveModels\ (20 problems, element tests for each cmodel)102│ ├── Creep\ (14 problems)103│ ├── Dynamic\ (19 problems, seismic / time-history)104│ ├── ExampleApplications\ (19 realistic engineering cases)105│ ├── FISH\ (Library + 33-lesson Tutorial)106│ ├── Fluid\ (17 groundwater problems)107│ ├── Interface\ (5 contact / joint problems)108│ ├── Structure\ (Beam, Cable, Geogrid, Liner, Pile, Shell)109│ ├── TheoryAndBackground\ (ElasticBlock, FactorOfSafety)110│ ├── Thermal\ (12 thermal problems)111│ ├── UsersGuide\ (Tutorial/QuickStart is the v6 starting point)112│ └── VerificationProblems\ (13 closed-form benchmarks)113├── exe64\ ← FLAC3D 6.00 binaries114│ └── flac3d600_console.exe ← headless console runner for batch .f3dat execution115├── pluginfiles\ ← C++ user cmodel templates116└── BuildingBlockSets\ ← pre-built block geometries117```118119**Reading strategy for the install** — Claude should read on demand:120121| Question type | Read first |122|---|---|123| Command syntax / what does X do? | `Grep` over `datafiles/` for live usage; then `HelpExcerpts/flac3dmodeling.pdf` (use `pages:` range) or `flac3dhelp.chm` |124| Constitutive theory | `HelpExcerpts/theory.pdf` |125| Worked example by topic | `datafiles/<Topic>/<Problem>/<file>.f3dat` (catalog in [references/install_inventory.md](references/install_inventory.md)) |126| v6 idiomatic syntax | `datafiles/UsersGuide/Tutorial/QuickStart/first.f3dat` (minimal end-to-end model) |127| FISH learning | `datafiles/FISH/Tutorial/fishex1_*.dat`, `fishex2_*.dat` |128| Embedded Python / `itasca` / array interface | [references/flac3d_python_manual_zh.md](references/flac3d_python_manual_zh.md), then verify against official Help / examples |129| Chinese quick lookup for v6 syntax | [references/flac3d6_quick_reference_zh.md](references/flac3d6_quick_reference_zh.md), then verify against official Help / examples |130| Structural elements | `datafiles/Structure/<Beam\|Cable\|Geogrid\|Liner\|Pile\|Shell>/<Problem>/` |131| Verification | `datafiles/VerificationProblems/<Problem>/` (closed-form benchmark) |132133PDFs are large — always use `Read` with `pages:"start-end"` (max 20 pages). Never read a whole PDF.134135## 4. Constitutive model required parameters (v6.00, authoritative)136137Source: `config/skill_rules.yaml`. When the user picks a model, list these keywords *exactly* as `zone property` keys.138139| `cmodel` | required keywords | optional |140|-----------------------|--------------------------------------------------------------------------------------------------------------------------------|-------------------------|141| `elastic` | bulk, shear | young, poisson |142| `mohr-coulomb` | bulk, shear, cohesion, friction, dilation, tension | young, poisson |143| `drucker-prager` | bulk, shear, cohesion, friction | tension, dilation |144| `hoek-brown` | bulk, shear, constant-mb, constant-s, constant-a, constant-sci | tension, dilation |145| `ubiquitous-joint` | bulk, shear, cohesion, friction, dilation, tension, joint-cohesion, joint-friction, joint-dilation, joint-tension, dip, dip-direction | — |146| `strain-softening` | bulk, shear, cohesion, friction, dilation, tension, table-cohesion, table-friction, table-dilation, table-tension | — |147| `modified-cam-clay` | bulk, poisson, ratio-normal-consolidation, ratio-swelling, ratio-critical-state, pre-consolidation-pressure, specific-volume-reference | — |148149If a model is requested that is not in this table, `Grep` for `zone cmodel assign <name>` over `datafiles/` and read the matching example before answering. **Never guess parameter keywords.**150151## 5. Required commands per problem type (model_checker rules)152153When generating or reviewing a `.f3dat` (or legacy `.dat`), ensure these are present. The pattern is corroborated against live examples in `datafiles/`.154155- **generic** — `model new`; geometry (`zone create … | zone import … | zone generate from-extruder`); `zone face skin` (auto-labels N/S/E/W/Top/Bottom groups); `zone cmodel assign …`; `zone property …`; boundary or `model gravity`; `model solve` or `model step`; `model save '<name>'`. Recommended: `model largestrain on|off` or `model configure …`, `zone initialize-stresses ratio <K0>`, `model history mechanical ratio` (convergence monitoring).156- **excavation** — generic + `zone group '<name>'` (before excavation; or rely on `zone face skin` for boundary groups) + either `zone cmodel assign null range group '<name>'` (instant null) **or** `zone relax excavate range group '<name>'` (graceful stress relaxation). Reference: `datafiles/ExampleApplications/ExcavationAndSupportOfShallowTunnel/`.157- **slope** — generic + `model gravity`. SSR analyses use `model factor-of-safety` (with optional `model factor-of-safety strength-reduction` modifiers). Reference: `datafiles/ExampleApplications/SlopeCurvature/`.158- **groundwater** — generic + `model configure fluid` + `zone fluid cmodel '<model>'` + `zone fluid property …` + pore-pressure BC (`zone gridpoint fix pore-pressure …` or `zone face apply pore-pressure …`). Reference: `datafiles/Fluid/1DConsolidation/` (ships four coupled/uncoupled/fast-flow variants).159- **dynamic** — generic + `model configure dynamic` + appropriate damping (`zone dynamic damping …`) + quiet/free-field BCs (`zone face apply quiet …`, `zone dynamic free-field on`) + history input (`table read …`, `zone face apply …-history …`). Reference: `datafiles/Dynamic/EarthquakeExcitation/`.160- **thermal** — generic + `model configure thermal` + `zone thermal cmodel '<model>'` + `zone thermal property …` + thermal BCs (`zone gridpoint fix temperature …`, `zone face apply temperature …`, `zone face apply flux …`). Reference: `datafiles/Thermal/HollowCylinderConduction/`.161- **creep** — generic + `model configure creep` + `zone cmodel assign '<creep-model>'` (power, WIPP, Maxwell, Kelvin, Burgers, …) + `zone property …` for that model. Reference: `datafiles/Creep/`.162- **structural** — generic + `structure <element> create …` (or `structure <element> import from-geometry …`) + `structure <element> property …`. References: `datafiles/Structure/<Element>/`.163164## 6. Heuristic sanity checks (apply when reviewing `.f3dat` / `.dat`)165166- `model gravity` magnitude should be ~9.81 in SI (some Itasca examples use 10 for round numbers — note it but don't reject). Flag suspicious values.167- `property density` typically 1500–3000 kg/m³ in SI. Flag values that look like kN/m³ (15–30) or g/cm³ (1.5–3).168- `cmodel assign null range group '<X>'` — confirm group `X` was defined upstream via `zone group '<X>'` or auto-created by `zone face skin`. Otherwise nothing is excavated silently.169- `model save "name"` / `model restore "name"` — extension auto-appends (`.f3sav`) if missing. Explicit `"name.f3sav"` also accepted (rule §1.11).170- `call '<file>'` — confirm `<file>` exists relative to the current working directory. v6 idiomatic chaining uses `call '<file>.f3dat' suppress` (the `suppress` silences echo).171- `[…]` inline FISH — anything in square brackets is evaluated as a FISH expression. Flag obvious bracket-mismatch.172- `@<name>` — calls a previously-defined FISH function. Confirm `fish define <name>` exists upstream.173- `…` at end of a line — v6 line continuation. Don't confuse with an ellipsis comment.174175## 7. Lookup workflow176177Direct lookup against the install (always available, zero setup):178179```180# command usage examples — grep over the 850 official .f3dat files181Grep pattern:"zone relax excavate" path:"C:/Program Files/Itasca/Flac3d600/datafiles" -C 2182183# constitutive-model element test184Glob pattern:"datafiles/ConstitutiveModels/*MohrCoulomb*/*.f3dat"185186# manual reference (read a narrow page range)187Read file_path:"C:/Program Files/Itasca/Flac3d600/HelpExcerpts/flac3dmodeling.pdf" pages:"120-135"188```189190The PDFs are large; always use `pages:"start-end"` (max 20 pages per call). For the full HTML help (`flac3dhelp.chm`), open it in Windows Help Viewer or decompile with `hh.exe -decompile <out_dir> "<chm>"` for grep-able HTML.191192## 8. Refusal scripts (use verbatim)193194- Command not in install:195 > I cannot find this command in the FLAC3D 6.00 installation. Please verify against `flac3dhelp.chm` or the manual PDFs in `HelpExcerpts\`. I will not guess.196- Parameter without source:197 > I will not fabricate engineering parameters. Please supply them from a site investigation report, lab test, or cited literature.198- Wrong version:199 > This skill targets FLAC3D 6.00. The command you mentioned looks like FLAC3D 5/7 or 3DEC syntax. Please confirm which version you are running.200- Out of scope:201 > That falls outside FLAC3D 6.00. I can only answer from the v6.00 install at `C:\Program Files\Itasca\Flac3d600\`.202203## 9. Quick-reference pointers (inside this skill)204205- [references/install_paths.md](references/install_paths.md) — canonical install path map (what lives where).206- [references/install_inventory.md](references/install_inventory.md) — per-topic catalog of all 850 official `.f3dat` examples.207- [references/v6_idioms.md](references/v6_idioms.md) — v6 idiomatic syntax patterns distilled from official examples.208- [references/rules_digest.md](references/rules_digest.md) — condensed engineering rules for fast skim.209- [references/flac3d_python_manual_zh.md](references/flac3d_python_manual_zh.md) — Chinese auxiliary notes for FLAC3D 6.00 embedded Python 2.7.9, `itasca`, `zonearray`, `gridpointarray`, callback, and JSON/CSV integration.210- [references/flac3d6_quick_reference_zh.md](references/flac3d6_quick_reference_zh.md) — Chinese auxiliary quick reference for v6 command structure, `.f3dat`, FISH, tunnel workflow, and unit checks.211212Read those when you need the rules without opening the full external knowledge base.213214## 9b. Running a model via CLI (production-tested)215216FLAC3D 6.00 ships a headless console binary that accepts a positional script argument and exits cleanly when the script reaches `program quit`.217218**Executable:** `C:\Program Files\Itasca\Flac3d600\exe64\flac3d600_console.exe`219220### Minimal invocation221222```powershell223& "C:\Program Files\Itasca\Flac3d600\exe64\flac3d600_console.exe" "C:\path\to\model.f3dat"224```225226Bash form (Git-Bash on Windows):227```bash228"C:/Program Files/Itasca/Flac3d600/exe64/flac3d600_console.exe" "C:/path/to/model.f3dat" < /dev/null229```230231### Script requirements for clean exit232233The console drops to an interactive `flac3d>` prompt at the end of a script. For batch use, **end the script with**:234235```236program quit ; synonyms: program stop, program exit, quit237```238239Without it, the process hangs waiting for keyboard input — your harness will time out.240241### Stdin handling242243Always close stdin (`< /dev/null` in bash, `$p.StandardInput.Close()` in PowerShell `[System.Diagnostics.Process]::Start`). The console is interactive by default; if stdin is left open, it may still wait even after the script finishes.244245### Logging246247- `flac3d.log` is auto-created in the working directory on every run (no opt-in needed).248- The log echoes every executed command, useful for post-mortem.249- Override with `program log-file '<name>.log'` or disable with `program log off`.250251### Project files via CLI252253A `.f3prj` is a binary project bundle, not a script — it doesn't run directly. Open it in the GUI, or extract the `.f3dat` it references and run that.254255### Watch-outs256257- **Working directory** matters: `model save 'foo'` writes `foo.f3sav` to the current directory, not the script's directory. Set `cd` (Bash) / `WorkingDirectory` (PowerShell) deliberately.258- **Spaces in paths** are fine as long as you quote them (unlike `hh.exe -decompile`).259- **PFC commands under FLAC3D 6 console are NOT supported** — the PFC module DLLs are GUI-bound and the console hangs with a Qt connect warning. For PFC use the `pfc-itasca` skill's CLI recipe (3DEC 7 console host).260- **No `--help` flag** — the binary is interactive-first; flag-style help isn't implemented.261262### Smoke test (verified to work)263264```265model new266model title 'smoke test'267program quit268```269270Running this via the invocation above on this machine produces `flac3d.log` with the command echo and exits with code 0. Verified 2026-05-25 against `flac3d Version 6.00 Release 069`.271272## 10. Versioning273274This skill targets **FLAC3D 6.00 only**. Sources of truth:275276- Install root: `C:\Program Files\Itasca\Flac3d600\` (`totalversion.txt` records the exact build)277- Help: `flac3dhelp.chm` (authoritative) + `HelpExcerpts\` (printable PDFs, *Sixth Edition, April 2017*)278- Examples: `datafiles\` (Itasca-shipped, run-able under this install)279280If the user upgrades to FLAC3D 7+, treat this skill as read-only history — point them at the v7 install and refuse to translate commands silently.