Imported from gabrielserrao/resEngineerAgent (
SKILL/SKILL.md). Install upstream withnpx skills add gabrielserrao/resEngineerAgent --skill SKILL. Copyright stays with the author.
pyResToolbox MCP Server — Agent Usage Guide
This skill teaches you how to effectively use the pyResToolbox MCP Server, which provides 108 production-ready reservoir engineering tools via the Model Context Protocol.
The server wraps the pyResToolbox Python library by Mark Burgoyne and is served through FastMCP.
Repository: https://github.com/gabrielserrao/pyrestoolbox-mcp
CRITICAL: Parameter Naming Conventions
Different tool families use different parameter names for similar concepts. Getting these wrong will cause validation errors. Pay close attention:
Pressure parameter names
- Oil PVT tools:
p(pressure array/scalar) - Gas PVT tools:
p(pressure array/scalar) - Inflow tools:
psd(sandface pressure) — NOTpwforp - Nodal tools:
pr(reservoir pressure inside ReservoirModel),thp(tubing head) - Geomech tools:
pore_pressure,vertical_stress, etc.
Gas specific gravity parameter names
- Oil tools:
sg_g(gas specific gravity) - Gas tools:
sg(gas specific gravity) — NOTsg_gorsg_gas - Inflow gas tools:
sg— same as gas tools - Nodal tools:
gas_sg
Method parameter names
gas_z_factor: parameter ismethod→ "DAK", "HY", "WYW", "BUR"gas_formation_volume_factor,gas_viscosity,gas_density,gas_compressibility: parameter iszmethod→ "DAK", "HY", "WYW", "BUR" — NOTmethodgas_critical_properties: parameter ismethod→ "PMC", "SUT", "BUR", "BNS"gas_delta_pseudopressure,create_gas_pvt: uses BOTHzmethodANDcmethod- Oil tools: parameter is
method - Nodal tools: parameter is
vlp_method→ "HB", "WG", "GRAY", "BB" - Fracture gradient: parameter is
method→ "hubbert_willis", "eaton", "matthews_kelly"
Temperature parameter name
- Most tools:
degf(degrees Fahrenheit in field units) - Nodal ReservoirModel:
degf - Nodal CompletionModel:
wellhead_tempandbht - Matbal tools:
temperature
Unit Systems
Every tool accepts a metric boolean parameter. Default is False (field units).
| System | Pressure | Temperature | Length | Rate (oil) | Rate (gas) | GOR |
|---|---|---|---|---|---|---|
| Field | psia | °F | ft | STB/day | MSCF/day | scf/stb |
| Metric | barsa | °C | m | sm³/day | sm³/day | sm³/sm³ |
Set metric: true when the user provides metric values. Always state units in output.
Valid Method Codes — Complete Reference
These are the EXACT string values accepted by each Literal type. Using any other value will cause a Pydantic validation error.
Bubble Point / Solution GOR methods
| Code | Method | Used in |
|---|---|---|
"STAN" |
Standing (1947) | oil_bubble_point, oil_solution_gor |
"VALMC" |
Valko & McCain (2003) | oil_bubble_point, oil_solution_gor |
"VELAR" |
Velarde (1997) | oil_bubble_point, oil_solution_gor |
Default for bubble point: "VALMC". Default for solution GOR: "VELAR".
Oil FVF methods
| Code | Method | Used in |
|---|---|---|
"MCAIN" |
McCain et al. (1988) | oil_formation_volume_factor |
"STAN" |
Standing (1947) | oil_formation_volume_factor |
Default: "MCAIN". Note the spelling is MCAIN not MCCAIN.
Oil Viscosity methods
| Code | Method | Used in |
|---|---|---|
"BR" |
Beggs & Robinson (1975) | oil_viscosity |
Only "BR" is available. No alternatives.
Z-factor methods (parameter name varies — see above)
| Code | Method | Used in |
|---|---|---|
"DAK" |
Dranchuk & Abou-Kassem (1975) | All gas tools |
"HY" |
Hall & Yarborough (1973) | All gas tools |
"WYW" |
Wang, Ye & Wu (2021) | All gas tools |
"BUR" |
Burgoyne/Nielsen/Stanko EOS (2025, SPE-229932) | All gas tools |
Default: "DAK". Use "BUR" for hydrogen-containing or unusual gas mixtures.
Critical Properties methods
| Code | Method | Used in |
|---|---|---|
"PMC" |
Piper, McCain & Corredor (1993) | gas_critical_properties |
"SUT" |
Sutton (1985) | gas_critical_properties |
"BUR" |
Burgoyne/Nielsen/Stanko (2025) | gas_critical_properties |
"BNS" |
Same as BUR (alternate name) | gas_critical_properties |
Default: "PMC". Note: matbal tools accept "PMC", "SUT", "BUR" only (no "BNS").
VLP correlations (parameter: vlp_method)
| Code | Method | Best for |
|---|---|---|
"WG" |
Woldesemayat-Ghajar | General (recommended) |
"HB" |
Hagedorn-Brown (1965) | Vertical oil wells |
"GRAY" |
Gray (1978) | Gas wells with condensate |
"BB" |
Beggs & Brill (1973) | General purpose, deviated |
Default: "WG".
Relative Permeability families
| Code | Method | Table Generation | Curve Fitting |
|---|---|---|---|
"COR" |
Corey (1954) | YES | YES |
"LET" |
Lomeland, Ebeltoft & Thomas | YES | YES |
"JER" |
Jerauld (2006) | NO | YES |
IMPORTANT: "JER" is only valid for fit_relative_permeability, NOT for
generate_rel_perm_table. Using "JER" for table generation will fail.
Rel perm table types (parameter: krtable)
| Code | Description |
|---|---|
"SWOF" |
Water-oil table |
"SGOF" |
Gas-oil table |
"SGWFN" |
Gas-water function table |
Decline Curve methods
| Code | Method | When to use |
|---|---|---|
"exponential" |
Exponential decline | Boundary-dominated flow |
"harmonic" |
Harmonic decline | b=1 case |
"hyperbolic" |
Hyperbolic decline | General Arps (0<b<2) |
"duong" |
Duong (2011) | Tight/shale/unconventional |
"best" |
Auto-select (highest R²) | Let the tool pick |
Note: For fit_decline_cumulative, "duong" is NOT available.
Ratio analysis methods
| Code | Method |
|---|---|
"linear" |
Linear model |
"exponential" |
Exponential model |
"power" |
Power model |
"logistic" |
Logistic model |
"best" |
Auto-select (fitting only) |
Geomech-specific Literal values
Fracture gradient method: "hubbert_willis", "eaton", "matthews_kelly"
Fracture width model: "PKN", "KGD"
Pore pressure method: "sonic", "resistivity"
Dynamic-to-static correlation: "eissa_kazi", "plona_cook", "linear"
Lithology: "sandstone", "shale", "carbonate" (some tools add "general")
UCS correlation: "mcnally", "horsrud", "chang", "lal", "vernik"
Shear failure criteria: "mohr_coulomb", "drucker_prager", "mogi_coulomb",
"modified_lade", "modified_wiebols"
Leak-off test type: "LOT", "FIT"
Component library EOS
| Code | Method |
|---|---|
"PR79" |
Peng-Robinson 1979 |
"PR77" |
Peng-Robinson 1977 |
"SRK" |
Soave-Redlich-Kwong |
"RK" |
Redlich-Kwong |
Default: "PR79".
Sensitivity analysis valid modules
"gas", "oil", "brine", "simtools", "layer", "library", "nodal",
"matbal", "dca"
Parameter Validation Constraints
These are enforced by Pydantic and will cause errors if violated.
Oil parameters
| Parameter | Constraint |
|---|---|
api |
gt=0, le=100 |
degf |
gt=-460, lt=1000 |
sg_g |
ge=0, le=3 |
rsb |
ge=0 |
p |
must be > 0 (validated) |
rs |
must be >= 0 |
bo |
must be > 0 |
nrows |
gt=0, le=200 |
Gas parameters
| Parameter | Constraint |
|---|---|
sg |
ge=0.5, le=2.0 |
degf |
gt=-460, lt=1000 |
p |
must be > 0 |
h2s |
ge=0.0, le=1.0 |
co2 |
ge=0.0, le=1.0 |
n2 |
ge=0.0, le=1.0 |
h2 |
ge=0.0, le=1.0 |
Inflow parameters
| Parameter | Constraint |
|---|---|
pi |
gt=0 |
pb |
ge=0 |
psd |
must be > 0 |
h |
gt=0 |
k |
gt=0 |
re |
gt=0 |
rw |
gt=0, must be < re |
s |
any float (default 0.0) |
Geomech parameters
| Parameter | Constraint |
|---|---|
poisson_ratio |
gt=0, lt=0.5 |
friction_angle |
gt=0, lt=90 |
biot_coefficient |
gt=0, le=1 |
porosity |
gt=0, lt=1 |
wellbore_azimuth |
ge=0, le=360 |
wellbore_inclination |
ge=0, le=90 |
tectonic_factor |
ge=0, le=1 |
Rel perm parameters
| Parameter | Constraint |
|---|---|
kromax |
ge=0, le=1 |
krwmax |
ge=0, le=1 |
krgmax |
ge=0, le=1 |
swc |
ge=0, le=1 |
sorw |
ge=0, le=1 |
no, nw |
gt=0 |
Lo,Eo,To |
gt=0 |
Rachford-Rice
| Parameter | Constraint |
|---|---|
zis |
min 2 elements, all >= 0, sum ≈ 1.0 |
Kis |
min 2 elements, all >= 0 |
DCA parameters
| Parameter | Constraint |
|---|---|
qi |
gt=0 |
di |
gt=0 (Arps), ge=0 (forecast) |
b |
ge=0, le=2 |
m |
gt=1 (Duong) |
a |
gt=0 (Duong) |
Nodal Analysis — Nested Object Structure
Nodal tools require nested Pydantic objects. You MUST pass them as nested dicts:
CompletionModel (required by most nodal tools)
{
"tubing_id": 2.992,
"tubing_length": 10000.0,
"wellhead_temp": 80.0,
"bht": 200.0,
"roughness": 0.0006,
"casing_id": 0.0,
"metric": false
}
ReservoirModel (required by ipr_curve, operating_point)
{
"pr": 4000.0,
"degf": 180.0,
"k": 100.0,
"h": 50.0,
"re": 1500.0,
"rw": 0.354,
"S": 0.0,
"D": 0.0,
"metric": false
}
Multi-segment completion (optional, overrides tubing_id/length)
{
"segments": [
{"md": 5000.0, "id": 4.5, "deviation": 0.0},
{"md": 10000.0, "id": 2.992, "deviation": 30.0}
],
"wellhead_temp": 80.0,
"bht": 200.0
}
Tool Categories & Exact Call Signatures
1. Oil PVT Properties
| Tool | Required Parameters | Optional (with defaults) |
|---|---|---|
oil_bubble_point |
api, degf, rsb | sg_g=0.0, method="VALMC", metric=false |
oil_solution_gor |
api, degf, p | sg_g=0.0, pb=0.0, rsb=0.0, method="VELAR", metric=false |
oil_formation_volume_factor |
api, degf, p | sg_g=0.0, pb=0.0, rs=0.0, rsb=0.0, method="MCAIN", metric=false |
oil_viscosity |
api, degf, p | pb=0.0, rs=0.0, rsb=0.0, method="BR", metric=false |
oil_density |
p, api, degf, rs, sg_g, bo | metric=false |
oil_compressibility |
p, api, degf, pb, sg_g, rs | rsb=0.0, metric=false |
oil_api_from_sg |
sg (oil specific gravity) | — |
oil_sg_from_api |
api | — |
generate_black_oil_table |
pi, api, degf, sg_g | pmax=0.0, pb=0.0, rsb=0.0, nrows=50, export=false, pb_method="VALMC", rs_method="VELAR", bo_method="MCAIN", uo_method="BR", metric=false |
create_oil_pvt |
api, sg_sp, pb, temperature, pressures[] | rsb=0.0, sg_g=0.0, uo_target=0.0, p_uo=0.0, rs_method="VELAR", pb_method="VALMC", bo_method="MCAIN", metric=false |
Additional oil tools: oil_rs_at_bubble_point, evolved_gas_sg, stock_tank_gas_sg,
oil_sg_from_jacoby, oil_twu_critical_properties, weighted_average_gas_sg,
stock_tank_incremental_gor, validate_gas_gravities, oil_harmonize_pvt
2. Gas PVT Properties
| Tool | Required Parameters | Optional (with defaults) |
|---|---|---|
gas_z_factor |
sg, degf, p | h2s=0.0, co2=0.0, n2=0.0, h2=0.0, method="DAK", metric=false |
gas_critical_properties |
sg | h2s=0.0, co2=0.0, n2=0.0, h2=0.0, method="PMC", metric=false |
gas_formation_volume_factor |
sg, degf, p | h2s/co2/n2/h2=0.0, zmethod="DAK", metric=false |
gas_viscosity |
sg, degf, p | h2s/co2/n2/h2=0.0, zmethod="DAK", metric=false |
gas_density |
sg, degf, p | h2s/co2/n2/h2=0.0, zmethod="DAK", metric=false |
gas_compressibility |
sg, degf, p | h2s/co2/n2/h2=0.0, zmethod="DAK", metric=false |
gas_pseudopressure |
sg, degf, p1, p2 | h2s/co2/n2/h2=0.0, zmethod="DAK", metric=false |
gas_pressure_from_pz |
pz, sg, degf | h2s/co2/n2/h2=0.0, zmethod="DAK", metric=false |
gas_water_content |
p, degf | metric=false |
gas_sg_from_composition |
hc_mw | co2=0.0, h2s=0.0, n2=0.0, h2=0.0, metric=false |
gas_hydrate_prediction |
p, degf, sg | method="TOWLER", inhibitor_type=null, inhibitor_wt_pct=0.0, co2/h2s/n2/h2=0.0, p_res=null, degf_res=null, metric=false |
gas_sg_from_gradient |
grad, degf, p | metric=false |
gas_fws_sg |
sg_g, cgr, api_st | metric=false |
gas_delta_pseudopressure |
p1, p2, degf, sg | h2s/co2/n2/h2=0.0, zmethod="DAK", cmethod="PMC", metric=false |
create_gas_pvt |
pressures[], temperature | sg=0.75, co2/h2s/n2/h2=0.0, zmethod="DAK", cmethod="PMC", metric=false |
WARNING: gas_z_factor uses method but other gas tools use zmethod. This is a
common source of errors!
3. Well Performance & Inflow (uses psd for sandface pressure)
| Tool | Required Parameters | Optional (with defaults) |
|---|---|---|
oil_rate_radial |
pi, pb, api, degf, sg_g, psd, h, k, re, rw | s=0.0, rsb=0.0, vogel=false |
oil_rate_linear |
pi, pb, api, degf, sg_g, psd, h, k, area, length | rsb=0.0 |
gas_rate_radial |
pi, sg, degf, psd, h, k, re, rw | s=0.0, h2s=0.0, co2=0.0, n2=0.0 |
gas_rate_linear |
pi, sg, degf, psd, h, k, area, length | h2s=0.0, co2=0.0, n2=0.0 |
CRITICAL: Parameter is psd (sandface pressure), NOT pwf. Using pwf will fail.
The rw (wellbore radius) must be less than re (drainage radius) or validation fails.
4. Nodal Analysis (requires nested objects)
| Tool | Required Parameters |
|---|---|
flowing_bhp |
thp, completion:{...}, vlp_method, well_type, + rate params |
ipr_curve |
reservoir:{...}, well_type |
outflow_curve |
thp, completion:{...}, vlp_method, well_type |
operating_point |
thp, completion:{...}, reservoir:{...}, vlp_method, well_type |
generate_vfp_prod_table |
table_num, completion:{...}, well_type, vlp_method |
generate_vfp_inj_table |
table_num, completion:{...}, flo_type |
well_type: "gas", "oil" (for most), or "gas", "oil", "water" (for ipr_curve)
flo_type (VFP injection only): "WAT", "GAS", "OIL"
5. Simulation Support
| Tool | Required Parameters | Key Options |
|---|---|---|
generate_rel_perm_table |
(all optional with defaults) | krtable="SWOF"/"SGOF"/"SGWFN", krfamily="COR"/"LET" only |
fit_relative_permeability |
sw[], kr[] | krfamily="COR"/"LET"/"JER" |
fit_relative_permeability_best |
sw[], kr[] | Auto-selects best model |
generate_aquifer_influence |
(all optional) | start=0.01, end=1000, rows=25, res=10, infl="pot"/"press" |
rachford_rice_flash |
zis[], Kis[] | zis must sum to ~1.0 |
generate_black_oil_table_og |
pi, api, degf, sg_g, pmax | Various optional params |
generate_pvtw_table |
pi, degf | wt=0.0, ch4_sat=0.0, pmin=500, pmax=10000, nrows=20 |
extract_eclipse_problem_cells |
filename | silent=true |
validate_simulation_deck |
files2scrape[] | tozip=false, console_summary=true |
evaluate_jerauld |
s[], a, b | — |
check_let_physical |
s[], L, E, T | All L,E,T must be > 0 |
6. Decline Curve Analysis
| Tool | Required Parameters | Key Options |
|---|---|---|
fit_decline |
time[], rates[] | method="best" (default), t_start, t_end |
fit_decline_cumulative |
cumulative_production[], rates[] | method="best", NO duong option |
decline_forecast |
qi, t_end | di=0.0, b=0.0, method="hyperbolic", dt=1.0, q_min=0.0, uptime=1.0, a/m for Duong |
arps_rate |
qi, di, b, t | — |
arps_cumulative |
qi, di, b, t | — |
estimated_ultimate_recovery |
qi, di, b, q_min | — |
duong_rate |
qi, a, m, t | m must be > 1 |
fit_ratio |
x[], ratio[] | method="best", domain="cum"/"time" |
ratio_forecast |
method, a, b, x | c=0.0 (logistic), domain="cum"/"time" |
7. Material Balance
| Tool | Required Parameters | Key Options |
|---|---|---|
gas_material_balance |
pressures[], cumulative_gas[], temperature | gas_sg=0.65, z_method="DAK", c_method="PMC" (NO "BNS") |
oil_material_balance |
pressures[], cumulative_oil[], temperature | api, sg_sp, pb, rsb, rs_method="VELAR", bo_method="MCAIN", z_method="DAK", c_method="PMC" |
NOTE: Matbal uses z_method and c_method (with underscore), NOT zmethod/cmethod.
8. Brine & CO₂ Properties
| Tool | Required Parameters | Key Options |
|---|---|---|
calculate_brine_properties |
p, degf, wt (wt% NaCl, 0-30) | ch4=0.0, co2=0.0, metric=false |
co2_brine_mutual_solubility |
pres, temp, ppm | metric=false, cw_sat=0.0 |
soreide_whitson_vle |
pres, temp | ppm=0.0, y_CO2/y_H2S/y_N2/y_H2=0.0, sg=0.65, metric=false |
Note: Brine salinity uses wt (weight percent) in calculate_brine_properties but
ppm in the other two tools. Don't mix them up.
9. Reservoir Heterogeneity
| Tool | Required Parameters |
|---|---|
lorenz_to_beta |
value (float, 0-1) |
beta_to_lorenz |
value (float, 0-1) |
lorenz_from_flow_fractions |
flow_frac[], perm_frac[] (must sum to ~1.0) |
flow_fractions_from_lorenz |
flow_frac[], perm_frac[] (must sum to ~1.0) |
generate_layer_distribution |
lorenz (0-1), nlay (int) |
10. Geomechanics (27 tools)
Read references/tools-reference.md for complete parameter details. Key tools:
| Tool | Key Required Params | Key Literal Values |
|---|---|---|
geomech_vertical_stress |
depth | avg_density=144.0 |
geomech_pore_pressure_eaton |
depth, observed_value, normal_value, overburden_psi | method="sonic"/"resistivity" |
geomech_horizontal_stress |
vertical_stress, pore_pressure, poisson_ratio | tectonic_factor=0.0 |
geomech_fracture_gradient |
depth, vertical_stress, pore_pressure | method="hubbert_willis"/"eaton"/"matthews_kelly" |
geomech_safe_mud_weight_window |
pore_pressure, fracture_pressure, depth | safety margins |
geomech_breakdown_pressure |
sigma_h_max, sigma_h_min, pore_pressure | tensile_strength=0.0 |
geomech_hydraulic_fracture_width |
net_pressure, fracture_height, fracture_half_length, youngs_modulus, poisson_ratio | model="PKN"/"KGD" |
geomech_ucs_from_logs |
(one of: sonic_dt, porosity, youngs_modulus) | lithology="sandstone"/"shale"/"carbonate"/"general", correlation="mcnally"/"horsrud"/"chang"/"lal"/"vernik" |
geomech_shear_failure_criteria |
sigma_1, sigma_2, sigma_3, ucs, cohesion, friction_angle | criteria=["mohr_coulomb","drucker_prager","mogi_coulomb","modified_lade","modified_wiebols"] |
geomech_dynamic_to_static_moduli |
dynamic_youngs or dynamic_poisson | correlation="eissa_kazi"/"plona_cook"/"linear", lithology="sandstone"/"shale"/"carbonate" |
11. Utility Tools
| Tool | Required Parameters |
|---|---|
get_component_properties |
component (string, e.g. "Methane", "C1", "CO2") |
recommend_methods |
(all optional) |
recommend_gas_methods |
(all optional) |
recommend_oil_methods |
(all optional) |
recommend_vlp_method |
(all optional) |
parameter_sweep |
function_module, function_name, base_parameters, vary_parameter, vary_values[] |
tornado_sensitivity |
function_module, function_name, base_parameters, ranges:{param: [low, high]} |
Common Workflows
Workflow 1: Complete Oil PVT Analysis
oil_bubble_point→ get Pb (pass api, degf, rsb, sg_g)oil_solution_gorat multiple pressures → Rs profileoil_formation_volume_factor→ Booil_viscosity→ μooil_density→ ρo (requires rs, sg_g, bo as inputs)- Or use
generate_black_oil_tablewith pi, api, degf, sg_g to get everything at once
Workflow 2: Well Performance Study
oil_bubble_point→ determine Pboil_rate_radialat severalpsdvalues → build IPR- Or use
ipr_curvefrom nodal module (requires nested reservoir object) outflow_curve→ VLP curve (requires nested completion object)operating_point→ intersection of IPR and VLP
Workflow 3: Simulation Input Generation
generate_rel_perm_tablewith COR or LET → SWOF/SGOF tablesgenerate_black_oil_tableorgenerate_black_oil_table_og→ PVTO/PVDGgenerate_pvtw_table→ PVTW keywordgenerate_aquifer_influence→ AQUTABgenerate_vfp_prod_table/generate_vfp_inj_table→ VFP tables
Workflow 4: Gas Reservoir Evaluation
gas_critical_properties→ Tc, Pc (with contaminants h2s, co2, n2, h2)gas_z_factorat multiple pressures → Z-factor profile (param:method)gas_rate_radial→ deliverability (param:psdfor sandface pressure,sgfor gas gravity)gas_material_balance→ OGIP from P/Z data (param:z_method,c_method)
Workflow 5: Geomechanics / Drilling
geomech_vertical_stress→ overburdengeomech_pore_pressure_eaton→ pore pressuregeomech_horizontal_stress→ min/max horizontal stressgeomech_safe_mud_weight_window→ safe drilling windowgeomech_fracture_gradient→ fracture initiation pressure
Workflow 6: CO₂ Sequestration Screening
calculate_brine_properties→ formation brine baseline (salinity in wt%)co2_brine_mutual_solubility→ CO₂ solubility (salinity in ppm)soreide_whitson_vle→ multi-gas phase equilibrium
Best Practices for Error-Free Calls
-
Check parameter names against this document. The #1 source of errors is using wrong parameter names (
pwfvspsd,methodvszmethod,sgvssg_g). -
Check enum values are exact strings. Must be EXACT:
"VALMC"not"ValMC","DAK"not"dak","SWOF"not"swof". -
Verify numeric constraints. API must be 0-100, gas SG must be 0.5-2.0, Poisson's ratio must be 0-0.5 (exclusive), friction angle 0-90 (exclusive).
-
Arrays must be valid. Pressures > 0, compositions sum to ~1.0 for Rachford-Rice, flow/perm fractions sum to ~1.0 for layer tools.
-
Use arrays for sweeps. Many tools accept arrays for pressure. Use this instead of calling the tool multiple times.
-
Compare correlations. Call the same tool with different method values and present the comparison as a table.
-
Chain tools for workflows. Use output of one tool as input to the next.
-
Use recommend tools first. Call
recommend_oil_methods,recommend_gas_methods, orrecommend_vlp_methodif unsure which correlation to use. -
Present results clearly. Format as tables with units in headers. Round pressure to 1 decimal, Bo to 4 decimals, viscosity to 2 decimals, Z-factor to 4 decimals.
Error Handling
Common errors and fixes:
| Error | Cause | Fix |
|---|---|---|
Unknown parameter 'pwf' |
Wrong parameter name | Use psd for inflow tools |
Unknown parameter 'method' |
Wrong method param name | Use zmethod for gas Bg/μg/ρg/cg |
Input should be 'DAK', 'HY', 'WYW' or 'BUR' |
Wrong Literal value | Check exact string in method table above |
Gas specific gravity must be >= 0.5 |
sg out of range | Ensure 0.5 ≤ sg ≤ 2.0 |
Wellbore radius must be < drainage radius |
rw >= re | Make rw < re |
Mole fractions must sum to 1.0 |
Composition doesn't sum | Ensure zis sums to ~1.0 |
All pressure values must be positive |
Negative/zero pressure | Ensure all pressures > 0 |
krfamily 'JER' not valid |
JER used for table generation | Only use COR or LET for generate_rel_perm_table |
References
For the complete parameter reference of all 108 tools, read:
references/tools-reference.md— Full tool signatures with every parameter, type, constraint, and default
