mcpbeat Sign in

Results Skill

Read and analyze simulation binary output files. Use when extracting summary data, grid properties, or running flow diagnostics (time-of-flight, tracer, allocation, F-Phi, Lorenz) from completed simulations.

15k tokens
context cost
the whole folder, loaded on every use
9
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
4138
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/NVIDIA/GenerativeAIExamples --skill results_skill

What comes with it

55 651 bytes besides the instruction
__init__.py
assets/README.md
references/TOOL_DECISION_TREE.md
scripts/__init__.py
scripts/ecl_reader.py
scripts/flow_diagnostics_tools.py
scripts/opm_results_tools.py
test.py

The instruction itself

12 sections, as written by the author

Results Skill

This skill provides tools for reading and analyzing simulation binary output files.

Overview

The Results skill enables agents to:

  • Read time-series summary data from simulation outputs
  • Extract static grid properties from initialization files
  • Run flow diagnostics (time-of-flight, tracer concentrations, allocation factors, F-Phi plots, Lorenz coefficient)
  • Access binary simulation results programmatically

Tools

read_simulation_summary

Reads time-series data from simulation summary files (.UNSMRY / .SMSPEC).

Usage:

read_simulation_summary(
    case_path: str,
    variables: List[str],
    entities: Optional[List[str]] = None
) -> str

Parameters:

  • case_path: Path to the .DATA file (tool finds corresponding .SMSPEC file)
  • variables: Summary variables to extract (e.g., ["FOPR", "FOPT", "WBHP"])
  • entities: Optional well/group names to filter results (e.g., ["PROD1", "INJ1"])

Example:

read_simulation_summary(
    case_path="SPE1CASE1.DATA",
    variables=["FOPR", "FOPT"],
    entities=["PROD1"]
)

Returns: Summary data with time range, timesteps, and variable values.

When to use:

  • When user asks for specific summary metrics (TOOL_DECISION_TREE.md Section 2.6, LLM choice)
  • For extracting time-series data for analysis
  • When comparing numerical results between cases

read_grid_properties

Reads static grid properties from initialization files (.INIT / .EGRID).

Usage:

read_grid_properties(
    case_path: str,
    properties: List[str]
) -> str

Parameters:

  • case_path: Path to the .DATA file (tool finds corresponding .INIT or .EGRID file)
  • properties: Properties to extract (e.g., ["PORO", "PERMX", "PERMY"])

Example:

read_grid_properties(
    case_path="SPE1CASE1.DATA",
    properties=["PORO", "PERMX"]
)

Returns: Grid dimensions, property statistics (min, max, mean), and property arrays.

When to use:

  • When user asks for grid property information (Section 2.6, LLM choice)
  • For analyzing reservoir characteristics
  • When validating grid setup

Note: Spatial visualization (grid structure, permeability, porosity, pore volume, pressure, saturation, etc.) is not in the tool catalog; the agent suggests using a GUI (e.g. ResInsight) for those (Section 2.0).

run_flow_diagnostics

Runs flow diagnostics on simulation results using pyflowdiagnostics. Computes time-of-flight (TOF), tracer concentrations, flow allocation factors, F-Phi (flow-storage capacity) curves, and Lorenz coefficients.

Usage:

run_flow_diagnostics(
    case_path: str,
    time_step_ids: Optional[List[int]] = None,
) -> str

Parameters:

  • case_path: Path to the .DATA file (simulation must have been run with RPTRST FLOWS)
  • time_step_ids: Report step IDs to analyze (e.g. [1, 2, 3]). Default: last report step from SMSPEC

Requirement: Simulation must include flux output in RPTRST:

RPTRST
BASIC=2 FLOWS PRESSURE ALLPROPS /

Output: Creates {case_stem}.fdout/ directory with JSON, CSV, Excel, and GRDECL files.

When to use:

  • When user asks for flow diagnostics, time-of-flight, tracer, allocation, F-Phi, Lorenz coefficient
  • To analyze injector-producer connectivity and sweep efficiency
  • For post-processing of simulation results (see MRST Flow Diagnostics)

Workflow Integration

This skill integrates with the Simulator Agent's decision tree (TOOL_DECISION_TREE.md):

  • Results Analysis (Section 2.6):
   read_simulation_summary (via LLM choice)
   read_grid_properties (via LLM choice)
   run_flow_diagnostics (via LLM choice)
  • After Simulation (Section 3.3):
   run_and_heal → summarize → optionally use results tools for detailed analysis

Implementation Details

Tools are implemented as LangChain tools with Pydantic input schemas. The skill uses:

  • EclReader: Apache-2.0 reader for summary (.SMSPEC/.UNSMRY) and grid (.INIT/.EGRID) files
  • File resolution: Automatically finds .SMSPEC, .INIT, .EGRID files from .DATA path
  • Time axis handling: Supports both date-based and step-based time axes
  • Well filtering: Filters results by well/group names when provided

Error Handling

All tools return descriptive error messages if:

  • Case files are not found
  • Required output files (.SMSPEC, .INIT) are missing
  • Requested variables or properties are not available
  • Binary file reading fails

File Resolution

Tools automatically resolve output file paths from the DATA file path:

  • CASE.DATACASE.SMSPEC (summary)
  • CASE.DATACASE.INIT or CASE.EGRID (grid properties)
  • Paths are resolved relative to the DATA file directory

Limitations

  • Grid structure: Grid dimensions, geometry, and EGRID are not in the tool catalog; use GUI tools (e.g., ResInsight)
  • Spatial visualization: Grid, permeability, porosity, pore volume, pressure, saturation, and other spatial fields are not in the tool catalog; use GUI tools
  • Time-series plotting: Use plot_summary_metric for visualization instead of raw data extraction

References

  • Tool Decision Tree - Routing logic
  • OPM Results Tools README - Detailed tool documentation

Other skills for the same job

different authors, same section of the catalogue
Skill Creator
by anthropics
vendor ×10

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

56k tokens scripts
Skill Creator
by vercel-labs
vendor ×10

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

12k tokens scripts
Skill Creator
by JayZeeDesign
×9

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

10k tokens scripts
Template Skill
by JayZeeDesign
×7

Replace with description of the skill and when Claude should use it.

35 tokens
Dispatching Parallel Agents
by ZhanlinCui
×5

Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies

2k tokens
Skill Development
by anthropics
vendor ×4

This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.

9k tokens
Find Skills
by sanity-io
vendor ×4

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

1k tokens
Writing Skills
by ZhanlinCui
×4

Use when creating new skills, editing existing skills, or verifying skills work before deployment

26k tokens scripts

How to use it

Copy the folder

Take nvidia/results_skill from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.