freecad-automation-fem-chain-workflow

Sub-skill of freecad-automation: CalculiX FEM analysis chain — geometry creation via gmsh, INP export, ccx solve, and result extraction.

5 stars

Best use case

freecad-automation-fem-chain-workflow is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Sub-skill of freecad-automation: CalculiX FEM analysis chain — geometry creation via gmsh, INP export, ccx solve, and result extraction.

Teams using freecad-automation-fem-chain-workflow should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/fem-chain-workflow/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/_archive/engineering/cad/freecad-automation/fem-chain-workflow/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/fem-chain-workflow/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How freecad-automation-fem-chain-workflow Compares

Feature / Agentfreecad-automation-fem-chain-workflowStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Sub-skill of freecad-automation: CalculiX FEM analysis chain — geometry creation via gmsh, INP export, ccx solve, and result extraction.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# FEM Chain Workflow (CalculiX)

## Overview

End-to-end structural FEM pipeline: gmsh geometry → INP file → CalculiX solve → stress/displacement extraction.

## Pipeline Steps

1. **Create geometry** — gmsh OCC kernel (plate-with-hole, STEP import, etc.)
2. **Define analysis** — material, BCs, loads → INP file via INPWriter
3. **Solve** — CalculiX `ccx` subprocess
4. **Extract results** — parse `.frd` (nodal fields) and `.dat` (reactions)

## Quick Start: Plate-with-Hole Validation

```python
from digitalmodel.solvers.calculix.fem_chain import FEMChain

chain = FEMChain()
result = chain.run_plate_validation(sigma_applied=100.0)
print(f"Kt = {result['kt']:.3f}")  # ~3.0 within 5%
```

## Custom Analysis

```python
from pathlib import Path
from digitalmodel.solvers.calculix.fem_chain import FEMChain

chain = FEMChain(work_dir=Path("/tmp/my_fem"))

# 1. Create geometry (quarter-symmetry plate with hole)
stats = chain.create_plate_with_hole(
    plate_w=200.0, plate_h=200.0, hole_r=10.0,
    thickness=1.0, element_size=5.0,
)

# 2. Setup analysis
chain.setup_analysis(
    material={"name": "STEEL", "E": 210000.0, "nu": 0.3},
    loads=[{
        "type": "cload", "node_set": "LOAD",
        "dof": 1, "magnitude": 100.0, "direction": (1, 0, 0),
    }],
    boundary_conditions=[
        {"node_set": "SYM_X", "dof_start": 1, "dof_end": 1},
        {"node_set": "SYM_Y", "dof_start": 2, "dof_end": 2},
        {"node_set": "FIX_Z", "dof_start": 3, "dof_end": 3},
    ],
)

# 3. Solve
status = chain.solve()
assert status["success"]

# 4. Results
results = chain.extract_results()
print(f"Max von Mises: {results['max_von_mises']:.1f} MPa")
print(f"Max displacement: {results['max_displacement']:.6f} mm")
```

## Key Classes

| Class | Module | Purpose |
|-------|--------|---------|
| `FEMChain` | `solvers.calculix.fem_chain` | End-to-end orchestrator |
| `INPWriter` | `solvers.calculix.inp_writer` | Mesh → INP file conversion |
| `CalculiXResultParser` | `solvers.calculix.result_parser` | `.frd`/`.dat` parsing |
| `GMSHMeshGenerator` | `solvers.gmsh_meshing.mesh_generator` | STEP import + meshing |

## Prerequisites

- `gmsh` Python package (pip install gmsh)
- `ccx` binary on PATH (CalculiX solver)
- Check availability: `from digitalmodel.solvers.calculix.fem_chain import is_calculix_available`

## Node Sets (Plate-with-Hole)

| Set | Description |
|-----|-------------|
| `SYM_X` | Nodes on x=0 symmetry plane |
| `SYM_Y` | Nodes on y=0 symmetry plane |
| `FIX_Z` | Nodes on z=0 face (out-of-plane constraint) |
| `LOAD` | Nodes on far edge (x=W/2) for applied traction |

## Validated Results

- Plate-with-hole Kt within 5% of theoretical 3.0 (d/W < 0.3)
- Quarter-symmetry model with W/d > 5

Related Skills

digitalmodel-orcawave-orcaflex-proof-workflows

5
from vamseeachanta/workspace-hub

Class-level digitalmodel OrcaWave/OrcaFlex readiness, semantic-proof, fixture-proof, and closeout workflows.

taxact-browser-automation-patterns

5
from vamseeachanta/workspace-hub

Patterns for automating TaxAct Business online (Ionic SPA) via Chrome browser MCP tools — field interaction, navigation, shadow DOM handling

portable-pattern-verification-workflow

5
from vamseeachanta/workspace-hub

Multi-package implementation with verification strategy for cross-platform configuration hardening

plan-gated-issue-validation-workflow

5
from vamseeachanta/workspace-hub

Systematic validation pattern for plan-approved GitHub issues with pre-existing deliverables

multi-year-tax-filing-verification-workflow

5
from vamseeachanta/workspace-hub

Verify and reconcile complex multi-form tax filings by cross-referencing source documents, identifying data dependencies, and validating line-by-line against authoritative records.

multi-file-tax-reconciliation-workflow

5
from vamseeachanta/workspace-hub

Systematic parallel review and reconciliation of multi-document tax filings with cross-reference validation

metadata-only-wiki-sweep-workflow

5
from vamseeachanta/workspace-hub

Disciplined inventory process for cataloging documents by filename/path without content claims, using parent-centric grouping to prevent stub proliferation

handle-pdf-download-popups-in-automation

5
from vamseeachanta/workspace-hub

Recover when PDF download buttons open inaccessible popups; fall back to capturing structured data instead

handle-browser-automation-financial-site-blocks

5
from vamseeachanta/workspace-hub

Workflow for working around Chrome extension blocks on financial sites during data collection tasks

freetaxusa-efiling-workflow

5
from vamseeachanta/workspace-hub

Navigate FreeTaxUSA e-filing process through final steps, handling session timeouts and identifying required manual signature steps

financial-site-bypass-workflow

5
from vamseeachanta/workspace-hub

Workflow for accessing restricted financial sites when browser automation is blocked

financial-data-export-workflow

5
from vamseeachanta/workspace-hub

Structured process for exporting and analyzing multi-year brokerage transaction history when browser automation is blocked