Skip to content

ps.micp

ps.micp.Biology(*, rows) -> None

MICP’s biological and chemical parameters, one row of thirteen per saturation region.

ps.micp.Biology(rows=[(35.0, 3.18e-07, 1.27e-05, 7.99e-04, 0.5, 0.5, 8.51e-07, 4.0e-06, 0.58, 21.3, 2.0e-05, 2710.0, 1.67)]) states one region’s thirteen parameters, in the column order below.

Each row writes one record of BIOFPARA (PROPS), in region order, which ps.load reads back. ps.micp.Package(biology=...) holds it, at physics/micp/biology. Flow reads the columns, in the model’s units, as: the biofilm density (a density), the microbial death rate and the maximum growth rate (each per time), the half-velocity constant for oxygen (a concentration), the growth yield and the oxygen consumption factor (each a ratio without unit), the attachment and detachment rates (per time), the detachment exponent (a number), the maximum urea utilization rate (per time) in urea_saturation, the half-velocity constant for urea (a concentration) in oxygen_half_saturation, the calcite density (a density) and the urea-to-calcite yield (a ratio without unit, which may exceed 1).

Rows: (biofilm_density, death_rate, growth_rate, half_velocity, yield_growth, yield_oxygen, attachment_rate, detachment_rate, detachment_exponent, urea_saturation, oxygen_half_saturation, calcite_density, yield_urea_to_calcite). State each row as a sequence in this order, or as a mapping by column name.

ps.micp.Diffusion(*, microbes: ScalarPropertyInput, oxygen: ScalarPropertyInput, urea: ScalarPropertyInput) -> None

MICP’s diffusion: the coefficient each species diffuses through the water by.

ps.micp.Diffusion(microbes=1.0e-9, oxygen=2.0e-9, urea=1.4e-9) gives each species its diffusion coefficient in water.

Each is a diffusion coefficient (an area per time) in the model’s units. It writes one record of DIFFMICP (PROPS), which ps.load reads back. ps.micp.Package(diffusion=...) holds it, at physics/micp/diffusion.

ps.micp.InitialState(*, microbes=None, oxygen=None, urea=None, biofilm=None, calcite=None) -> None

MICP’s initial state: the microbe, oxygen and urea concentrations, biofilm and calcite.

ps.micp.InitialState(microbes=0.0, oxygen=0.0, urea=0.0) starts every cell with none of the three in its water.

Each field is one number, a value per layer or a value per cell, in the model’s units: the three concentrations, and the biofilm and calcite as volume fractions. Each stated field writes its SOLUTION card (SMICR, SOXYG, SUREA, SBIOF, SCALC), which ps.load reads back; one at least is stated. ps.micp.Package(initial_state=...) holds it, at physics/micp/initial_state.

ps.micp.Package(*, permeability: PermeabilityFactor, biology: Biology, diffusion: Diffusion | None = None, initial_state: InitialState | None = None) -> None

Microbially induced calcite precipitation: the plugging, the biology, diffusion and state.

ps.micp.Package(permeability=factor, biology=biology) turns the MICP model on; ps.Model(physics=[...]) holds it, at physics/micp.

It switches MICP on (MICP in RUNSPEC) and writes PERMFACT, BIOFPARA and DIFFMICP (PROPS) and the initial state in SOLUTION; ps.load reads each back. A well injects microbes, oxygen and urea with ps.wells.InjectedStream(well=..., microbe_concentration=..., oxygen_concentration=..., urea_concentration=...), the stream’s MICP card. The model refuses the package without a water phase (micp.phase.water_required).

ps.micp.PermeabilityFactor(*, rows) -> None

MICP plugging: the permeability left against the porosity calcite and biofilm leave.

ps.micp.PermeabilityFactor(rows=[(0.5, 0.1), (1.0, 1.0)]) leaves a tenth of the permeability where calcite and biofilm have taken half the porosity.

Each row is a porosity factor (the porosity left over the initial porosity) and the permeability factor there (the permeability over the initial permeability), both fractions, the porosity factors strictly rising. It writes PERMFACT (PROPS), one table every saturation region reads, which ps.load reads back. ps.micp.Package(permeability=...) holds it, at physics/micp/permeability.

Rows: (porosity_factor, permeability_factor). State each row as a sequence in this order, or as a mapping by column name.

PetroScript is licensed under the Apache License 2.0. © 2026 Blauweiss EDV LLC. PetroScript by Blauweiss AI.For AI agents: llms.txt