[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-resultsskill":3,"mdc-n56c91-key":45,"related-repo-nvidia-resultsskill":931,"related-org-nvidia-resultsskill":1004},{"slug":4,"name":5,"fn":6,"description":7,"org":8,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":40,"sourceUrl":43,"mdContent":44},"resultsskill","results_skill","analyze simulation binary output files","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.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[13,17,20,21],{"name":14,"slug":15,"type":16},"Performance","performance","tag",{"name":18,"slug":19,"type":16},"Data Analysis","data-analysis",{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},"Simulation","simulation",4115,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FGenerativeAIExamples","2026-07-14T05:32:14.078951","Apache-2.0",1093,[30,31,32,33,34,35,36,37,38,39],"gpu-acceleration","large-language-models","llm","llm-inference","microservice","nemo","rag","retrieval-augmented-generation","tensorrt","triton-inference-server",{"repoUrl":25,"stars":24,"forks":28,"topics":41,"description":42},[30,31,32,33,34,35,36,37,38,39],"Generative AI reference workflows optimized for accelerated infrastructure and microservice architecture.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FGenerativeAIExamples\u002Ftree\u002FHEAD\u002Findustries\u002Fenergy\u002Fsimulation-workflow-agent\u002Fsim_agent\u002Fsrc\u002Fsimulator_agent\u002Fskills\u002Fresults_skill","---\nname: results_skill\ndescription: 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.\nlicense: Apache-2.0\nmetadata:\n  author: sim-agent\n  version: \"1.0\"\n  category: simulator\ncompatibility: Requires numpy and simulation output files (.SMSPEC, .INIT, .EGRID). Uses EclReader for summary\u002Fgrid (Apache-2.0). Flow diagnostics requires pyflowdiagnostics and RPTRST FLOWS in the simulation.\n---\n\n# Results Skill\n\nThis skill provides tools for reading and analyzing simulation binary output files.\n\n## Overview\n\nThe Results skill enables agents to:\n\n- **Read** time-series summary data from simulation outputs\n- **Extract** static grid properties from initialization files\n- **Run flow diagnostics** (time-of-flight, tracer concentrations, allocation factors, F-Phi plots, Lorenz coefficient)\n- **Access** binary simulation results programmatically\n\n## Tools\n\n### read_simulation_summary\n\nReads time-series data from simulation summary files (.UNSMRY \u002F .SMSPEC).\n\n**Usage:**\n```python\nread_simulation_summary(\n    case_path: str,\n    variables: List[str],\n    entities: Optional[List[str]] = None\n) -> str\n```\n\n**Parameters:**\n- `case_path`: Path to the .DATA file (tool finds corresponding .SMSPEC file)\n- `variables`: Summary variables to extract (e.g., [\"FOPR\", \"FOPT\", \"WBHP\"])\n- `entities`: Optional well\u002Fgroup names to filter results (e.g., [\"PROD1\", \"INJ1\"])\n\n**Example:**\n```\nread_simulation_summary(\n    case_path=\"SPE1CASE1.DATA\",\n    variables=[\"FOPR\", \"FOPT\"],\n    entities=[\"PROD1\"]\n)\n```\n\n**Returns:** Summary data with time range, timesteps, and variable values.\n\n**When to use:**\n- When user asks for specific summary metrics (TOOL_DECISION_TREE.md Section 2.6, LLM choice)\n- For extracting time-series data for analysis\n- When comparing numerical results between cases\n\n### read_grid_properties\n\nReads static grid properties from initialization files (.INIT \u002F .EGRID).\n\n**Usage:**\n```python\nread_grid_properties(\n    case_path: str,\n    properties: List[str]\n) -> str\n```\n\n**Parameters:**\n- `case_path`: Path to the .DATA file (tool finds corresponding .INIT or .EGRID file)\n- `properties`: Properties to extract (e.g., [\"PORO\", \"PERMX\", \"PERMY\"])\n\n**Example:**\n```\nread_grid_properties(\n    case_path=\"SPE1CASE1.DATA\",\n    properties=[\"PORO\", \"PERMX\"]\n)\n```\n\n**Returns:** Grid dimensions, property statistics (min, max, mean), and property arrays.\n\n**When to use:**\n- When user asks for grid property information (Section 2.6, LLM choice)\n- For analyzing reservoir characteristics\n- When validating grid setup\n\n**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).\n\n### run_flow_diagnostics\n\nRuns flow diagnostics on simulation results using [pyflowdiagnostics](https:\u002F\u002Fgithub.com\u002FGEG-ETHZ\u002Fpyflowdiagnostics). Computes time-of-flight (TOF), tracer concentrations, flow allocation factors, F-Phi (flow-storage capacity) curves, and Lorenz coefficients.\n\n**Usage:**\n```python\nrun_flow_diagnostics(\n    case_path: str,\n    time_step_ids: Optional[List[int]] = None,\n) -> str\n```\n\n**Parameters:**\n- `case_path`: Path to the .DATA file (simulation must have been run with RPTRST FLOWS)\n- `time_step_ids`: Report step IDs to analyze (e.g. [1, 2, 3]). Default: last report step from SMSPEC\n\n**Requirement:** Simulation must include flux output in RPTRST:\n```\nRPTRST\nBASIC=2 FLOWS PRESSURE ALLPROPS \u002F\n```\n\n**Output:** Creates `{case_stem}.fdout\u002F` directory with JSON, CSV, Excel, and GRDECL files.\n\n**When to use:**\n- When user asks for flow diagnostics, time-of-flight, tracer, allocation, F-Phi, Lorenz coefficient\n- To analyze injector-producer connectivity and sweep efficiency\n- For post-processing of simulation results (see [MRST Flow Diagnostics](https:\u002F\u002Fwww.sintef.no\u002Fprojectweb\u002Fmrst\u002Fmodules\u002Fdiagnostics\u002F))\n\n## Workflow Integration\n\nThis skill integrates with the Simulator Agent's decision tree (TOOL_DECISION_TREE.md):\n\n1. **Results Analysis (Section 2.6):**\n   ```\n   read_simulation_summary (via LLM choice)\n   read_grid_properties (via LLM choice)\n   run_flow_diagnostics (via LLM choice)\n   ```\n\n2. **After Simulation (Section 3.3):**\n   ```\n   run_and_heal → summarize → optionally use results tools for detailed analysis\n   ```\n\n## Implementation Details\n\nTools are implemented as LangChain tools with Pydantic input schemas. The skill uses:\n\n- **EclReader**: Apache-2.0 reader for summary (.SMSPEC\u002F.UNSMRY) and grid (.INIT\u002F.EGRID) files\n- **File resolution**: Automatically finds .SMSPEC, .INIT, .EGRID files from .DATA path\n- **Time axis handling**: Supports both date-based and step-based time axes\n- **Well filtering**: Filters results by well\u002Fgroup names when provided\n\n## Error Handling\n\nAll tools return descriptive error messages if:\n- Case files are not found\n- Required output files (.SMSPEC, .INIT) are missing\n- Requested variables or properties are not available\n- Binary file reading fails\n\n## File Resolution\n\nTools automatically resolve output file paths from the DATA file path:\n- `CASE.DATA` → `CASE.SMSPEC` (summary)\n- `CASE.DATA` → `CASE.INIT` or `CASE.EGRID` (grid properties)\n- Paths are resolved relative to the DATA file directory\n\n## Limitations\n\n- **Grid structure**: Grid dimensions, geometry, and EGRID are not in the tool catalog; use GUI tools (e.g., ResInsight)\n- **Spatial visualization**: Grid, permeability, porosity, pore volume, pressure, saturation, and other spatial fields are not in the tool catalog; use GUI tools\n- **Time-series plotting**: Use `plot_summary_metric` for visualization instead of raw data extraction\n\n## References\n\n- [Tool Decision Tree](references\u002FTOOL_DECISION_TREE.md) - Routing logic\n- [OPM Results Tools README](..\u002F..\u002Ftools\u002FREADME.md) - Detailed tool documentation\n\n",{"data":46,"body":52},{"name":5,"description":7,"license":27,"metadata":47,"compatibility":51},{"author":48,"version":49,"category":50},"sim-agent","1.0","simulator","Requires numpy and simulation output files (.SMSPEC, .INIT, .EGRID). Uses EclReader for summary\u002Fgrid (Apache-2.0). Flow diagnostics requires pyflowdiagnostics and RPTRST FLOWS in the simulation.",{"type":53,"children":54},"root",[55,64,70,77,82,128,134,140,145,153,212,220,269,277,287,297,305,323,328,333,340,377,384,414,421,430,439,446,464,474,479,495,502,539,546,577,587,596,614,621,647,653,658,696,702,707,750,756,761,784,790,795,847,853,894,900,925],{"type":56,"tag":57,"props":58,"children":60},"element","h1",{"id":59},"results-skill",[61],{"type":62,"value":63},"text","Results Skill",{"type":56,"tag":65,"props":66,"children":67},"p",{},[68],{"type":62,"value":69},"This skill provides tools for reading and analyzing simulation binary output files.",{"type":56,"tag":71,"props":72,"children":74},"h2",{"id":73},"overview",[75],{"type":62,"value":76},"Overview",{"type":56,"tag":65,"props":78,"children":79},{},[80],{"type":62,"value":81},"The Results skill enables agents to:",{"type":56,"tag":83,"props":84,"children":85},"ul",{},[86,98,108,118],{"type":56,"tag":87,"props":88,"children":89},"li",{},[90,96],{"type":56,"tag":91,"props":92,"children":93},"strong",{},[94],{"type":62,"value":95},"Read",{"type":62,"value":97}," time-series summary data from simulation outputs",{"type":56,"tag":87,"props":99,"children":100},{},[101,106],{"type":56,"tag":91,"props":102,"children":103},{},[104],{"type":62,"value":105},"Extract",{"type":62,"value":107}," static grid properties from initialization files",{"type":56,"tag":87,"props":109,"children":110},{},[111,116],{"type":56,"tag":91,"props":112,"children":113},{},[114],{"type":62,"value":115},"Run flow diagnostics",{"type":62,"value":117}," (time-of-flight, tracer concentrations, allocation factors, F-Phi plots, Lorenz coefficient)",{"type":56,"tag":87,"props":119,"children":120},{},[121,126],{"type":56,"tag":91,"props":122,"children":123},{},[124],{"type":62,"value":125},"Access",{"type":62,"value":127}," binary simulation results programmatically",{"type":56,"tag":71,"props":129,"children":131},{"id":130},"tools",[132],{"type":62,"value":133},"Tools",{"type":56,"tag":135,"props":136,"children":138},"h3",{"id":137},"read_simulation_summary",[139],{"type":62,"value":137},{"type":56,"tag":65,"props":141,"children":142},{},[143],{"type":62,"value":144},"Reads time-series data from simulation summary files (.UNSMRY \u002F .SMSPEC).",{"type":56,"tag":65,"props":146,"children":147},{},[148],{"type":56,"tag":91,"props":149,"children":150},{},[151],{"type":62,"value":152},"Usage:",{"type":56,"tag":154,"props":155,"children":160},"pre",{"className":156,"code":157,"language":158,"meta":159,"style":159},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","read_simulation_summary(\n    case_path: str,\n    variables: List[str],\n    entities: Optional[List[str]] = None\n) -> str\n","python","",[161],{"type":56,"tag":162,"props":163,"children":164},"code",{"__ignoreMap":159},[165,176,185,194,203],{"type":56,"tag":166,"props":167,"children":170},"span",{"class":168,"line":169},"line",1,[171],{"type":56,"tag":166,"props":172,"children":173},{},[174],{"type":62,"value":175},"read_simulation_summary(\n",{"type":56,"tag":166,"props":177,"children":179},{"class":168,"line":178},2,[180],{"type":56,"tag":166,"props":181,"children":182},{},[183],{"type":62,"value":184},"    case_path: str,\n",{"type":56,"tag":166,"props":186,"children":188},{"class":168,"line":187},3,[189],{"type":56,"tag":166,"props":190,"children":191},{},[192],{"type":62,"value":193},"    variables: List[str],\n",{"type":56,"tag":166,"props":195,"children":197},{"class":168,"line":196},4,[198],{"type":56,"tag":166,"props":199,"children":200},{},[201],{"type":62,"value":202},"    entities: Optional[List[str]] = None\n",{"type":56,"tag":166,"props":204,"children":206},{"class":168,"line":205},5,[207],{"type":56,"tag":166,"props":208,"children":209},{},[210],{"type":62,"value":211},") -> str\n",{"type":56,"tag":65,"props":213,"children":214},{},[215],{"type":56,"tag":91,"props":216,"children":217},{},[218],{"type":62,"value":219},"Parameters:",{"type":56,"tag":83,"props":221,"children":222},{},[223,234,252],{"type":56,"tag":87,"props":224,"children":225},{},[226,232],{"type":56,"tag":162,"props":227,"children":229},{"className":228},[],[230],{"type":62,"value":231},"case_path",{"type":62,"value":233},": Path to the .DATA file (tool finds corresponding .SMSPEC file)",{"type":56,"tag":87,"props":235,"children":236},{},[237,243,245,250],{"type":56,"tag":162,"props":238,"children":240},{"className":239},[],[241],{"type":62,"value":242},"variables",{"type":62,"value":244},": Summary variables to extract (e.g., ",{"type":56,"tag":166,"props":246,"children":247},{},[248],{"type":62,"value":249},"\"FOPR\", \"FOPT\", \"WBHP\"",{"type":62,"value":251},")",{"type":56,"tag":87,"props":253,"children":254},{},[255,261,263,268],{"type":56,"tag":162,"props":256,"children":258},{"className":257},[],[259],{"type":62,"value":260},"entities",{"type":62,"value":262},": Optional well\u002Fgroup names to filter results (e.g., ",{"type":56,"tag":166,"props":264,"children":265},{},[266],{"type":62,"value":267},"\"PROD1\", \"INJ1\"",{"type":62,"value":251},{"type":56,"tag":65,"props":270,"children":271},{},[272],{"type":56,"tag":91,"props":273,"children":274},{},[275],{"type":62,"value":276},"Example:",{"type":56,"tag":154,"props":278,"children":282},{"className":279,"code":281,"language":62},[280],"language-text","read_simulation_summary(\n    case_path=\"SPE1CASE1.DATA\",\n    variables=[\"FOPR\", \"FOPT\"],\n    entities=[\"PROD1\"]\n)\n",[283],{"type":56,"tag":162,"props":284,"children":285},{"__ignoreMap":159},[286],{"type":62,"value":281},{"type":56,"tag":65,"props":288,"children":289},{},[290,295],{"type":56,"tag":91,"props":291,"children":292},{},[293],{"type":62,"value":294},"Returns:",{"type":62,"value":296}," Summary data with time range, timesteps, and variable values.",{"type":56,"tag":65,"props":298,"children":299},{},[300],{"type":56,"tag":91,"props":301,"children":302},{},[303],{"type":62,"value":304},"When to use:",{"type":56,"tag":83,"props":306,"children":307},{},[308,313,318],{"type":56,"tag":87,"props":309,"children":310},{},[311],{"type":62,"value":312},"When user asks for specific summary metrics (TOOL_DECISION_TREE.md Section 2.6, LLM choice)",{"type":56,"tag":87,"props":314,"children":315},{},[316],{"type":62,"value":317},"For extracting time-series data for analysis",{"type":56,"tag":87,"props":319,"children":320},{},[321],{"type":62,"value":322},"When comparing numerical results between cases",{"type":56,"tag":135,"props":324,"children":326},{"id":325},"read_grid_properties",[327],{"type":62,"value":325},{"type":56,"tag":65,"props":329,"children":330},{},[331],{"type":62,"value":332},"Reads static grid properties from initialization files (.INIT \u002F .EGRID).",{"type":56,"tag":65,"props":334,"children":335},{},[336],{"type":56,"tag":91,"props":337,"children":338},{},[339],{"type":62,"value":152},{"type":56,"tag":154,"props":341,"children":343},{"className":156,"code":342,"language":158,"meta":159,"style":159},"read_grid_properties(\n    case_path: str,\n    properties: List[str]\n) -> str\n",[344],{"type":56,"tag":162,"props":345,"children":346},{"__ignoreMap":159},[347,355,362,370],{"type":56,"tag":166,"props":348,"children":349},{"class":168,"line":169},[350],{"type":56,"tag":166,"props":351,"children":352},{},[353],{"type":62,"value":354},"read_grid_properties(\n",{"type":56,"tag":166,"props":356,"children":357},{"class":168,"line":178},[358],{"type":56,"tag":166,"props":359,"children":360},{},[361],{"type":62,"value":184},{"type":56,"tag":166,"props":363,"children":364},{"class":168,"line":187},[365],{"type":56,"tag":166,"props":366,"children":367},{},[368],{"type":62,"value":369},"    properties: List[str]\n",{"type":56,"tag":166,"props":371,"children":372},{"class":168,"line":196},[373],{"type":56,"tag":166,"props":374,"children":375},{},[376],{"type":62,"value":211},{"type":56,"tag":65,"props":378,"children":379},{},[380],{"type":56,"tag":91,"props":381,"children":382},{},[383],{"type":62,"value":219},{"type":56,"tag":83,"props":385,"children":386},{},[387,397],{"type":56,"tag":87,"props":388,"children":389},{},[390,395],{"type":56,"tag":162,"props":391,"children":393},{"className":392},[],[394],{"type":62,"value":231},{"type":62,"value":396},": Path to the .DATA file (tool finds corresponding .INIT or .EGRID file)",{"type":56,"tag":87,"props":398,"children":399},{},[400,406,408,413],{"type":56,"tag":162,"props":401,"children":403},{"className":402},[],[404],{"type":62,"value":405},"properties",{"type":62,"value":407},": Properties to extract (e.g., ",{"type":56,"tag":166,"props":409,"children":410},{},[411],{"type":62,"value":412},"\"PORO\", \"PERMX\", \"PERMY\"",{"type":62,"value":251},{"type":56,"tag":65,"props":415,"children":416},{},[417],{"type":56,"tag":91,"props":418,"children":419},{},[420],{"type":62,"value":276},{"type":56,"tag":154,"props":422,"children":425},{"className":423,"code":424,"language":62},[280],"read_grid_properties(\n    case_path=\"SPE1CASE1.DATA\",\n    properties=[\"PORO\", \"PERMX\"]\n)\n",[426],{"type":56,"tag":162,"props":427,"children":428},{"__ignoreMap":159},[429],{"type":62,"value":424},{"type":56,"tag":65,"props":431,"children":432},{},[433,437],{"type":56,"tag":91,"props":434,"children":435},{},[436],{"type":62,"value":294},{"type":62,"value":438}," Grid dimensions, property statistics (min, max, mean), and property arrays.",{"type":56,"tag":65,"props":440,"children":441},{},[442],{"type":56,"tag":91,"props":443,"children":444},{},[445],{"type":62,"value":304},{"type":56,"tag":83,"props":447,"children":448},{},[449,454,459],{"type":56,"tag":87,"props":450,"children":451},{},[452],{"type":62,"value":453},"When user asks for grid property information (Section 2.6, LLM choice)",{"type":56,"tag":87,"props":455,"children":456},{},[457],{"type":62,"value":458},"For analyzing reservoir characteristics",{"type":56,"tag":87,"props":460,"children":461},{},[462],{"type":62,"value":463},"When validating grid setup",{"type":56,"tag":65,"props":465,"children":466},{},[467,472],{"type":56,"tag":91,"props":468,"children":469},{},[470],{"type":62,"value":471},"Note:",{"type":62,"value":473}," 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).",{"type":56,"tag":135,"props":475,"children":477},{"id":476},"run_flow_diagnostics",[478],{"type":62,"value":476},{"type":56,"tag":65,"props":480,"children":481},{},[482,484,493],{"type":62,"value":483},"Runs flow diagnostics on simulation results using ",{"type":56,"tag":485,"props":486,"children":490},"a",{"href":487,"rel":488},"https:\u002F\u002Fgithub.com\u002FGEG-ETHZ\u002Fpyflowdiagnostics",[489],"nofollow",[491],{"type":62,"value":492},"pyflowdiagnostics",{"type":62,"value":494},". Computes time-of-flight (TOF), tracer concentrations, flow allocation factors, F-Phi (flow-storage capacity) curves, and Lorenz coefficients.",{"type":56,"tag":65,"props":496,"children":497},{},[498],{"type":56,"tag":91,"props":499,"children":500},{},[501],{"type":62,"value":152},{"type":56,"tag":154,"props":503,"children":505},{"className":156,"code":504,"language":158,"meta":159,"style":159},"run_flow_diagnostics(\n    case_path: str,\n    time_step_ids: Optional[List[int]] = None,\n) -> str\n",[506],{"type":56,"tag":162,"props":507,"children":508},{"__ignoreMap":159},[509,517,524,532],{"type":56,"tag":166,"props":510,"children":511},{"class":168,"line":169},[512],{"type":56,"tag":166,"props":513,"children":514},{},[515],{"type":62,"value":516},"run_flow_diagnostics(\n",{"type":56,"tag":166,"props":518,"children":519},{"class":168,"line":178},[520],{"type":56,"tag":166,"props":521,"children":522},{},[523],{"type":62,"value":184},{"type":56,"tag":166,"props":525,"children":526},{"class":168,"line":187},[527],{"type":56,"tag":166,"props":528,"children":529},{},[530],{"type":62,"value":531},"    time_step_ids: Optional[List[int]] = None,\n",{"type":56,"tag":166,"props":533,"children":534},{"class":168,"line":196},[535],{"type":56,"tag":166,"props":536,"children":537},{},[538],{"type":62,"value":211},{"type":56,"tag":65,"props":540,"children":541},{},[542],{"type":56,"tag":91,"props":543,"children":544},{},[545],{"type":62,"value":219},{"type":56,"tag":83,"props":547,"children":548},{},[549,559],{"type":56,"tag":87,"props":550,"children":551},{},[552,557],{"type":56,"tag":162,"props":553,"children":555},{"className":554},[],[556],{"type":62,"value":231},{"type":62,"value":558},": Path to the .DATA file (simulation must have been run with RPTRST FLOWS)",{"type":56,"tag":87,"props":560,"children":561},{},[562,568,570,575],{"type":56,"tag":162,"props":563,"children":565},{"className":564},[],[566],{"type":62,"value":567},"time_step_ids",{"type":62,"value":569},": Report step IDs to analyze (e.g. ",{"type":56,"tag":166,"props":571,"children":572},{},[573],{"type":62,"value":574},"1, 2, 3",{"type":62,"value":576},"). Default: last report step from SMSPEC",{"type":56,"tag":65,"props":578,"children":579},{},[580,585],{"type":56,"tag":91,"props":581,"children":582},{},[583],{"type":62,"value":584},"Requirement:",{"type":62,"value":586}," Simulation must include flux output in RPTRST:",{"type":56,"tag":154,"props":588,"children":591},{"className":589,"code":590,"language":62},[280],"RPTRST\nBASIC=2 FLOWS PRESSURE ALLPROPS \u002F\n",[592],{"type":56,"tag":162,"props":593,"children":594},{"__ignoreMap":159},[595],{"type":62,"value":590},{"type":56,"tag":65,"props":597,"children":598},{},[599,604,606,612],{"type":56,"tag":91,"props":600,"children":601},{},[602],{"type":62,"value":603},"Output:",{"type":62,"value":605}," Creates ",{"type":56,"tag":162,"props":607,"children":609},{"className":608},[],[610],{"type":62,"value":611},"{case_stem}.fdout\u002F",{"type":62,"value":613}," directory with JSON, CSV, Excel, and GRDECL files.",{"type":56,"tag":65,"props":615,"children":616},{},[617],{"type":56,"tag":91,"props":618,"children":619},{},[620],{"type":62,"value":304},{"type":56,"tag":83,"props":622,"children":623},{},[624,629,634],{"type":56,"tag":87,"props":625,"children":626},{},[627],{"type":62,"value":628},"When user asks for flow diagnostics, time-of-flight, tracer, allocation, F-Phi, Lorenz coefficient",{"type":56,"tag":87,"props":630,"children":631},{},[632],{"type":62,"value":633},"To analyze injector-producer connectivity and sweep efficiency",{"type":56,"tag":87,"props":635,"children":636},{},[637,639,646],{"type":62,"value":638},"For post-processing of simulation results (see ",{"type":56,"tag":485,"props":640,"children":643},{"href":641,"rel":642},"https:\u002F\u002Fwww.sintef.no\u002Fprojectweb\u002Fmrst\u002Fmodules\u002Fdiagnostics\u002F",[489],[644],{"type":62,"value":645},"MRST Flow Diagnostics",{"type":62,"value":251},{"type":56,"tag":71,"props":648,"children":650},{"id":649},"workflow-integration",[651],{"type":62,"value":652},"Workflow Integration",{"type":56,"tag":65,"props":654,"children":655},{},[656],{"type":62,"value":657},"This skill integrates with the Simulator Agent's decision tree (TOOL_DECISION_TREE.md):",{"type":56,"tag":659,"props":660,"children":661},"ol",{},[662,679],{"type":56,"tag":87,"props":663,"children":664},{},[665,670],{"type":56,"tag":91,"props":666,"children":667},{},[668],{"type":62,"value":669},"Results Analysis (Section 2.6):",{"type":56,"tag":154,"props":671,"children":674},{"className":672,"code":673,"language":62},[280],"read_simulation_summary (via LLM choice)\nread_grid_properties (via LLM choice)\nrun_flow_diagnostics (via LLM choice)\n",[675],{"type":56,"tag":162,"props":676,"children":677},{"__ignoreMap":159},[678],{"type":62,"value":673},{"type":56,"tag":87,"props":680,"children":681},{},[682,687],{"type":56,"tag":91,"props":683,"children":684},{},[685],{"type":62,"value":686},"After Simulation (Section 3.3):",{"type":56,"tag":154,"props":688,"children":691},{"className":689,"code":690,"language":62},[280],"run_and_heal → summarize → optionally use results tools for detailed analysis\n",[692],{"type":56,"tag":162,"props":693,"children":694},{"__ignoreMap":159},[695],{"type":62,"value":690},{"type":56,"tag":71,"props":697,"children":699},{"id":698},"implementation-details",[700],{"type":62,"value":701},"Implementation Details",{"type":56,"tag":65,"props":703,"children":704},{},[705],{"type":62,"value":706},"Tools are implemented as LangChain tools with Pydantic input schemas. The skill uses:",{"type":56,"tag":83,"props":708,"children":709},{},[710,720,730,740],{"type":56,"tag":87,"props":711,"children":712},{},[713,718],{"type":56,"tag":91,"props":714,"children":715},{},[716],{"type":62,"value":717},"EclReader",{"type":62,"value":719},": Apache-2.0 reader for summary (.SMSPEC\u002F.UNSMRY) and grid (.INIT\u002F.EGRID) files",{"type":56,"tag":87,"props":721,"children":722},{},[723,728],{"type":56,"tag":91,"props":724,"children":725},{},[726],{"type":62,"value":727},"File resolution",{"type":62,"value":729},": Automatically finds .SMSPEC, .INIT, .EGRID files from .DATA path",{"type":56,"tag":87,"props":731,"children":732},{},[733,738],{"type":56,"tag":91,"props":734,"children":735},{},[736],{"type":62,"value":737},"Time axis handling",{"type":62,"value":739},": Supports both date-based and step-based time axes",{"type":56,"tag":87,"props":741,"children":742},{},[743,748],{"type":56,"tag":91,"props":744,"children":745},{},[746],{"type":62,"value":747},"Well filtering",{"type":62,"value":749},": Filters results by well\u002Fgroup names when provided",{"type":56,"tag":71,"props":751,"children":753},{"id":752},"error-handling",[754],{"type":62,"value":755},"Error Handling",{"type":56,"tag":65,"props":757,"children":758},{},[759],{"type":62,"value":760},"All tools return descriptive error messages if:",{"type":56,"tag":83,"props":762,"children":763},{},[764,769,774,779],{"type":56,"tag":87,"props":765,"children":766},{},[767],{"type":62,"value":768},"Case files are not found",{"type":56,"tag":87,"props":770,"children":771},{},[772],{"type":62,"value":773},"Required output files (.SMSPEC, .INIT) are missing",{"type":56,"tag":87,"props":775,"children":776},{},[777],{"type":62,"value":778},"Requested variables or properties are not available",{"type":56,"tag":87,"props":780,"children":781},{},[782],{"type":62,"value":783},"Binary file reading fails",{"type":56,"tag":71,"props":785,"children":787},{"id":786},"file-resolution",[788],{"type":62,"value":789},"File Resolution",{"type":56,"tag":65,"props":791,"children":792},{},[793],{"type":62,"value":794},"Tools automatically resolve output file paths from the DATA file path:",{"type":56,"tag":83,"props":796,"children":797},{},[798,817,842],{"type":56,"tag":87,"props":799,"children":800},{},[801,807,809,815],{"type":56,"tag":162,"props":802,"children":804},{"className":803},[],[805],{"type":62,"value":806},"CASE.DATA",{"type":62,"value":808}," → ",{"type":56,"tag":162,"props":810,"children":812},{"className":811},[],[813],{"type":62,"value":814},"CASE.SMSPEC",{"type":62,"value":816}," (summary)",{"type":56,"tag":87,"props":818,"children":819},{},[820,825,826,832,834,840],{"type":56,"tag":162,"props":821,"children":823},{"className":822},[],[824],{"type":62,"value":806},{"type":62,"value":808},{"type":56,"tag":162,"props":827,"children":829},{"className":828},[],[830],{"type":62,"value":831},"CASE.INIT",{"type":62,"value":833}," or ",{"type":56,"tag":162,"props":835,"children":837},{"className":836},[],[838],{"type":62,"value":839},"CASE.EGRID",{"type":62,"value":841}," (grid properties)",{"type":56,"tag":87,"props":843,"children":844},{},[845],{"type":62,"value":846},"Paths are resolved relative to the DATA file directory",{"type":56,"tag":71,"props":848,"children":850},{"id":849},"limitations",[851],{"type":62,"value":852},"Limitations",{"type":56,"tag":83,"props":854,"children":855},{},[856,866,876],{"type":56,"tag":87,"props":857,"children":858},{},[859,864],{"type":56,"tag":91,"props":860,"children":861},{},[862],{"type":62,"value":863},"Grid structure",{"type":62,"value":865},": Grid dimensions, geometry, and EGRID are not in the tool catalog; use GUI tools (e.g., ResInsight)",{"type":56,"tag":87,"props":867,"children":868},{},[869,874],{"type":56,"tag":91,"props":870,"children":871},{},[872],{"type":62,"value":873},"Spatial visualization",{"type":62,"value":875},": Grid, permeability, porosity, pore volume, pressure, saturation, and other spatial fields are not in the tool catalog; use GUI tools",{"type":56,"tag":87,"props":877,"children":878},{},[879,884,886,892],{"type":56,"tag":91,"props":880,"children":881},{},[882],{"type":62,"value":883},"Time-series plotting",{"type":62,"value":885},": Use ",{"type":56,"tag":162,"props":887,"children":889},{"className":888},[],[890],{"type":62,"value":891},"plot_summary_metric",{"type":62,"value":893}," for visualization instead of raw data extraction",{"type":56,"tag":71,"props":895,"children":897},{"id":896},"references",[898],{"type":62,"value":899},"References",{"type":56,"tag":83,"props":901,"children":902},{},[903,914],{"type":56,"tag":87,"props":904,"children":905},{},[906,912],{"type":56,"tag":485,"props":907,"children":909},{"href":908},"references\u002FTOOL_DECISION_TREE.md",[910],{"type":62,"value":911},"Tool Decision Tree",{"type":62,"value":913}," - Routing logic",{"type":56,"tag":87,"props":915,"children":916},{},[917,923],{"type":56,"tag":485,"props":918,"children":920},{"href":919},"..\u002F..\u002Ftools\u002FREADME.md",[921],{"type":62,"value":922},"OPM Results Tools README",{"type":62,"value":924}," - Detailed tool documentation",{"type":56,"tag":926,"props":927,"children":928},"style",{},[929],{"type":62,"value":930},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":932,"total":205},[933,949,965,981,988],{"slug":934,"name":935,"fn":936,"description":937,"org":938,"tags":939,"stars":24,"repoUrl":25,"updatedAt":948},"inputfileskill","input_file_skill","manage simulator input files","Parse, modify, validate, and patch simulator input files. Use when working with reservoir simulation input files, testing scenarios, or validating simulation configurations. This implementation supports reference format (.DATA); other simulators use different extensions (e.g., .afi, .DAT). Supports natural language modifications, keyword patching, and syntax validation.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[940,943,944,945],{"name":941,"slug":942,"type":16},"Configuration","configuration",{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},{"name":946,"slug":947,"type":16},"Validation","validation","2026-07-14T05:32:16.602719",{"slug":950,"name":951,"fn":952,"description":953,"org":954,"tags":955,"stars":24,"repoUrl":25,"updatedAt":964},"plotskill","plot_skill","visualize simulation summary metrics","Plot and compare simulation summary metrics. Use when visualizing time-series results, comparing multiple cases, or analyzing production performance. Supports single and multi-metric plots, case comparisons, and automatic metric keyword resolution.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[956,959,962,963],{"name":957,"slug":958,"type":16},"Charts","charts",{"name":960,"slug":961,"type":16},"Data Visualization","data-visualization",{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},"2026-07-14T05:32:19.171135",{"slug":966,"name":967,"fn":968,"description":969,"org":970,"tags":971,"stars":24,"repoUrl":25,"updatedAt":980},"ragskill","rag_skill","retrieve simulator documentation and examples","Retrieve information from simulator manual and example DATA files. Use when answering keyword format questions, syntax queries, or when looking up official documentation and working examples. Essential for understanding keyword definitions, parameter tables, and concrete usage patterns.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[972,975,976,979],{"name":973,"slug":974,"type":16},"Documentation","documentation",{"name":10,"slug":9,"type":16},{"name":977,"slug":978,"type":16},"Research","research",{"name":22,"slug":23,"type":16},"2026-07-14T05:32:15.32946",{"slug":4,"name":5,"fn":6,"description":7,"org":982,"tags":983,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[984,985,986,987],{"name":18,"slug":19,"type":16},{"name":10,"slug":9,"type":16},{"name":14,"slug":15,"type":16},{"name":22,"slug":23,"type":16},{"slug":989,"name":990,"fn":991,"description":992,"org":993,"tags":994,"stars":24,"repoUrl":25,"updatedAt":1003},"simulationskill","simulation_skill","run and monitor simulations","Run, monitor, and control simulations. Use when executing simulations, checking progress, or stopping running simulations. Supports foreground and background execution, progress monitoring, and process management.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[995,998,1001,1002],{"name":996,"slug":997,"type":16},"Automation","automation",{"name":999,"slug":1000,"type":16},"Monitoring","monitoring",{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},"2026-07-14T05:32:17.914931",{"items":1005,"total":1159},[1006,1022,1039,1050,1062,1076,1089,1103,1116,1127,1141,1150],{"slug":1007,"name":1007,"fn":1008,"description":1009,"org":1010,"tags":1011,"stars":1019,"repoUrl":1020,"updatedAt":1021},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1012,1013,1016],{"name":973,"slug":974,"type":16},{"name":1014,"slug":1015,"type":16},"MCP","mcp",{"name":1017,"slug":1018,"type":16},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1023,"name":1023,"fn":1024,"description":1025,"org":1026,"tags":1027,"stars":1036,"repoUrl":1037,"updatedAt":1038},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1028,1031,1034],{"name":1029,"slug":1030,"type":16},"Containers","containers",{"name":1032,"slug":1033,"type":16},"Deployment","deployment",{"name":1035,"slug":158,"type":16},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1040,"name":1040,"fn":1041,"description":1042,"org":1043,"tags":1044,"stars":1036,"repoUrl":1037,"updatedAt":1049},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1045,1048],{"name":1046,"slug":1047,"type":16},"CI\u002FCD","ci-cd",{"name":1032,"slug":1033,"type":16},"2026-07-14T05:25:59.97109",{"slug":1051,"name":1051,"fn":1052,"description":1053,"org":1054,"tags":1055,"stars":1036,"repoUrl":1037,"updatedAt":1061},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1056,1057,1058],{"name":1046,"slug":1047,"type":16},{"name":1032,"slug":1033,"type":16},{"name":1059,"slug":1060,"type":16},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1063,"name":1063,"fn":1064,"description":1065,"org":1066,"tags":1067,"stars":1036,"repoUrl":1037,"updatedAt":1075},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1068,1071,1072],{"name":1069,"slug":1070,"type":16},"Debugging","debugging",{"name":1059,"slug":1060,"type":16},{"name":1073,"slug":1074,"type":16},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1077,"name":1077,"fn":1078,"description":1079,"org":1080,"tags":1081,"stars":1036,"repoUrl":1037,"updatedAt":1088},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1082,1085],{"name":1083,"slug":1084,"type":16},"Best Practices","best-practices",{"name":1086,"slug":1087,"type":16},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1090,"name":1090,"fn":1091,"description":1092,"org":1093,"tags":1094,"stars":1036,"repoUrl":1037,"updatedAt":1102},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1095,1098,1101],{"name":1096,"slug":1097,"type":16},"Machine Learning","machine-learning",{"name":1099,"slug":1100,"type":16},"Migration","migration",{"name":10,"slug":9,"type":16},"2026-07-17T06:07:11.777011",{"slug":1104,"name":1104,"fn":1105,"description":1106,"org":1107,"tags":1108,"stars":1036,"repoUrl":1037,"updatedAt":1115},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1109,1112],{"name":1110,"slug":1111,"type":16},"QA","qa",{"name":1113,"slug":1114,"type":16},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1117,"name":1117,"fn":1118,"description":1119,"org":1120,"tags":1121,"stars":1036,"repoUrl":1037,"updatedAt":1126},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1122,1123],{"name":1032,"slug":1033,"type":16},{"name":1124,"slug":1125,"type":16},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1128,"name":1128,"fn":1129,"description":1130,"org":1131,"tags":1132,"stars":1036,"repoUrl":1037,"updatedAt":1140},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1133,1136,1137],{"name":1134,"slug":1135,"type":16},"Code Review","code-review",{"name":1059,"slug":1060,"type":16},{"name":1138,"slug":1139,"type":16},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1142,"name":1142,"fn":1143,"description":1144,"org":1145,"tags":1146,"stars":1036,"repoUrl":1037,"updatedAt":1149},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1147,1148],{"name":1110,"slug":1111,"type":16},{"name":1113,"slug":1114,"type":16},"2026-07-14T05:25:54.928983",{"slug":1151,"name":1151,"fn":1152,"description":1153,"org":1154,"tags":1155,"stars":1036,"repoUrl":1037,"updatedAt":1158},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1156,1157],{"name":996,"slug":997,"type":16},{"name":1046,"slug":1047,"type":16},"2026-07-30T05:29:03.275638",496]