Doublet Streamline Model Physics

VerifiedCaution

Validates code and provides physics reasoning for 2-D injection-production doublet model using streamline methods. Use for streamline geometry modifications, transport calculations, and debugging simulation behavior.

Sby Skills Guide Bot
Data & AIAdvanced
3/4/2026
Claude Code
#streamline-simulation#transport-physics#numerical-methods#breakthrough-curves#scientific-computing

Recommended for

Automated summary

Supplies physics knowledge and validation procedures for a 2-D injection-production doublet model solved with streamline methods.

Strengths

  • Explicitly covers the three transport types (hydrodynamic, chemical, thermal) with their respective solution methods
  • Provides structured physics validation and reasoning workflows, including checks for coordinate transformations and breakthrough integration
  • Flags concrete numerical pitfalls such as Bessel kernel overflow and the need for scaled i1e instead of i1

Limitations

  • Heavily reliant on companion files (EQUATIONS.md, SYMBOLS.md, DERIVATIONS.md, SANITY_CHECKS.md) whose contents are not included here
  • Assumes familiarity with bipolar coordinates, Green's functions, and streamline methods
  • Does not provide runnable test commands or numeric reference values to compare results against
When to use it

Use when modifying streamline geometry, transport solvers, or breakthrough curves in the doublet model, or when explaining and debugging its physical behavior.

When not to use it

Avoid for simulation projects outside this specific 2-D doublet model or for general development tasks with no physics component.

Security analysis

Caution
Quality score82/100

The SKILL.md is a domain-knowledge reference for a streamline-based doublet reservoir model. It contains no destructive, exfiltrating, or obfuscated instructions, and the only tool usage implied is reading files and (via Bash) presumably running tests or numerical checks. The residual risk is the blanket Bash grant and unaudited linked documents, which merits 'caution' rather than 'safe'/'risky'.

Findings
  • •Declares Bash in allowed-tools, giving the agent shell execution capability even though the skill content is purely reference/documentation
  • •References companion documents (EQUATIONS.md, SYMBOLS.md, DERIVATIONS.md, SANITY_CHECKS.md) whose contents are not visible in the reviewed bundle and therefore cannot be audited
  • •No explicit commands are given; no network calls, credential access, file deletion, or obfuscation present
How this analysis is made

Examples

Review a thermal kernel change
I changed the thermal transport to compute the Bessel Green's kernel differently. Can you check whether my change risks overflow and whether I should be using i1e instead of i1?
Debug breakthrough behavior
The breakthrough curve for the chemical transport looks wrong near beta close to 0 and pi. Walk me through the physics validation steps and tell me what integration boundary issues to check.
Explain streamline geometry
Explain how the take-off angle beta and time-of-flight tau relate along a circular streamline in the bipolar coordinate system, and what I need to verify if I modify the geometry calculation.

name: doublet description: Validates code and provides physics reasoning for the 2-D injection-production doublet model using streamline methods. Use when modifying streamline geometry, transport calculations (hydrodynamic, chemical, thermal), breakthrough curves, or Green's function kernels. Also use when debugging simulation behavior or explaining physics concepts. allowed-tools: Read, Grep, Glob, Bash

Doublet Streamline Model Physics Knowledge

This skill provides physics knowledge for the 2-D doublet (injection-production well pair) model using streamline methods. The model solves advection-reaction-dispersion problems along circular streamlines in a potential flow field.

When This Skill Applies

  • Modifying streamline geometry calculations (bipolar coordinates)
  • Changing transport solvers (hydrodynamic, chemical, thermal)
  • Implementing or modifying breakthrough curve integration
  • Working with Green's function kernels for thermal transport
  • Debugging unexpected breakthrough behavior
  • Planning changes to physics-related code
  • Explaining why the model behaves a certain way

Core Physics Reference

The model tracks transport in a 2-D potential flow field between an injector (+a, 0) and producer (-a, 0):

| Module | Transport Type | Solution Method | |--------|----------------|-----------------| | Hydrodynamic | Pure advection | Time-of-flight along streamlines | | Chemical | Advection + capacity-limited reaction | Logistic traveling wave | | Thermal | Advection + fluid-matrix exchange | Bessel-function Green's kernel |

Key state variables:

| Variable | Symbol | Meaning | Units | |----------|--------|---------|-------| | Take-off angle | β | Angle at which streamline leaves injector | rad | | Time-of-flight | τ(β) | Travel time from injector to producer | s | | Arc position | φ | Angle along circular streamline | rad | | Concentration | C(φ,t) | Solute mass fraction | kg/kg | | Capacity | S(φ,t) | Remaining reaction capacity | kg/kg | | Fluid temperature | Tf(φ,t) | Fluid temperature along streamline | °C | | Matrix temperature | Tm(φ,t) | Rock matrix temperature | °C |

For detailed equations, see EQUATIONS.md. For symbol definitions and units, see SYMBOLS.md. For derivation logic, see DERIVATIONS.md. For edge cases and sanity checks, see SANITY_CHECKS.md.


Workflow A: Physics Validation

Use this workflow when reviewing or planning code changes.

Step 1: Identify affected transport type

Determine which transport physics is affected:

  • Hydrodynamic: Streamline geometry, time-of-flight, velocity field
  • Chemical: Capacity-limited reaction, logistic traveling wave
  • Thermal: Fluid-matrix exchange, Bessel function kernel

Step 2: Check coordinate system consistency

The model uses multiple coordinate systems:

  • Cartesian (x, y) for plotting
  • Bipolar (ξ, β) for streamline parameterization
  • Polar about streamline center (R, φ) for local calculations

Verify transformations are applied correctly.

Step 3: Verify breakthrough integration

Breakthrough curves integrate over all streamlines:

C_prod(t) = (1/π) ∫_0^π C(β, t) dβ

Check that:

  • Integration weights are correct (trapezoidal or custom)
  • β limits span [0, π] (or arrived streamlines only)
  • Singularities at β → 0, π are handled

Step 4: Check Green's function stability (thermal)

For thermal transport, the Bessel kernel G(τ, t) can overflow:

  • Verify exponent recentering is applied
  • Check that i1e (scaled Bessel I1) is used instead of i1
  • Verify prefix integrals use cumulative_trapezoid

Step 5: Report findings

Summarize:

  • Which transport type is affected
  • Any coordinate transformation issues
  • Any integration boundary issues
  • Any numerical stability concerns
  • Recommendations for correction

Workflow B: Physics Reasoning

Use this workflow when explaining behavior, debugging, or proposing solutions.

For explaining physics concepts:

  1. Identify the relevant equations and parameters
  2. State the physical interpretation
  3. Explain cause-and-effect relationships
  4. Use the derivation steps from DERIVATIONS.md to show connections

For debugging simulation issues:

  1. Identify which transport type shows unexpected behavior
  2. Check if the issue relates to:
    • Breakthrough timing (τ calculation)
    • Front retardation (reaction capacity)
    • Thermal lag (fluid-matrix exchange rates)
  3. Trace through the analytical solution
  4. Check edge cases against SANITY_CHECKS.md

For proposing physics-consistent changes:

  1. Identify which equations are affected
  2. Show how new terms integrate into the transport equations
  3. Demonstrate that mass/energy balance is preserved
  4. Identify any new sanity checks needed

Quick Reference: Module Structure

| Module | Purpose | Key Functions | |--------|---------|---------------| | doublet.py | Main model (streamlines, chemical, thermal) | Tf, Ctf, Cxf, Ttf, Txf, breakthrough | | streamlines.py | Bipolar coordinate streamlines | streamline_bipolar, streamtube_width | | diffusion.py | Green's kernel solver with diffusion | solve_kernel_capacity, cxfD, ctDf | | thermal.py | Thermal kernel (alternative impl.) | thermal_kernel_Tf_Tm_xvec_t | | thermal2.py | Optimized thermal solver | G_grid_efficient, run_breakthrough, Tprodf | | notebook_widgets.py | Interactive Jupyter visualizations | visualize_* functions |


Key Physical Constraints

These must always hold:

  1. Streamline geometry: Streamlines are circular arcs through (±a, 0)
  2. Travel time bounds: T(β=0) = 4πna²/(3Q) is minimum arrival time
  3. Velocity singularity: v → ∞ at wells (handled by coordinate transformation)
  4. Conservation: Integrated flux across all streamlines equals Q
  5. Retardation: Chemical front travels at speed v·C_inj/(C_inj + S_0)
  6. Thermal equilibrium: As t → ∞, Tf → Tm → T_inj (behind the front)

Transport Type Classification

| Transport | Governing Equation | Solution Type | |-----------|-------------------|---------------| | Hydrodynamic | ∂C/∂t + v·∇C = 0 | Method of characteristics | | Chemical (no diffusion) | ∂C/∂t + v·∇C = -kCS | Logistic traveling wave | | Chemical (with diffusion) | ∂C/∂t + v·∇C = D∇²C - kCS | Green's function convolution | | Thermal | ∂Tf/∂t + v·∇Tf = -γ(Tf - Tm) | Bessel kernel (Eq. 47) | | Matrix | ∂Tm/∂t = β(Tf - Tm) | Exponential convolution (Eq. 48) |


Dimensionless Groups

| Group | Definition | Physical Meaning | |-------|------------|------------------| | Retardation R | (C_inj + S_0)/C_inj | Front slowdown factor | | Damköhler Da | k·τ | Reaction extent over travel time | | Péclet Pe | v·L/D | Advection vs diffusion | | β·τ | (exchange rate)·(travel time) | Matrix equilibration extent | | γ·τ | (exchange rate)·(travel time) | Fluid cooling extent |

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/doublet-streamline-model-physics-mmbizjnw/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/doublet-streamline-model-physics-mmbizjnw' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/doublet-streamline-model-physics-mmbizjnw/download' --output '.skill-downloads/doublet-streamline-model-physics-mmbizjnw/SKILL.md.part' && mv '.skill-downloads/doublet-streamline-model-physics-mmbizjnw/SKILL.md.part' '.skill-downloads/doublet-streamline-model-physics-mmbizjnw/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Read, Grep, Glob, Bash

Original excerpt: Quick Reference: Module Structure
ModulePurposeKey Functions
doublet.pyMain model (streamlines, chemical, thermal)Tf, Ctf, Cxf, Ttf, Txf, breakthrough
streamlines.pyBipolar coordinate streamlinesstreamline_bipolar, streamtube_width
diffusion.pyGreen's kernel solver with diffusionsolve_kernel_capacity, cxfD, ctDf
thermal.pyThermal kernel (alternative impl.)thermal_kernel_Tf_Tm_xvec_t
thermal2.pyOptimized thermal solverG_grid_efficient, run_breakthrough, Tprodf
notebook_widgets.pyInteractive Jupyter visualizationsvisualize_* functions

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/doublet-streamline-model-physics-mmbizjnw/SKILL.md' && test -s '.skill-downloads/doublet-streamline-model-physics-mmbizjnw/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/doublet' && cp -R '.skill-downloads/doublet-streamline-model-physics-mmbizjnw' '.claude/skills/doublet'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/doublet-streamline-model-physics-mmbizjnw'

openskills read 'doublet-streamline-model-physics-mmbizjnw'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/doublet-streamline-model-physics-mmbizjnw/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills