Skip to content

JSON input specification

dp-69 edited this page Jul 26, 2024 · 5 revisions

JSON specification for xpm input

Paragraph indent resembles the nesting levels in the JSON input file.

This file has been automatically generated from a machine-readable JSON schema.

image : object

Image properties.

  • path : string
       Path to an 8-bit uncompressed image.

  • size : int[3]
       Voxel count in 3 dimensions.

  • resolution : real
       Side length of a voxel, m.

  • phase : object

    • void : int
         Value for void voxels, must be 0.

    • solid : int
         Value for solid voxels.

macro : object

Macroscopic network properties.

  • contact_angle : real
       Contact angle, deg.
       default : 0

  • trans_multiplier : real
       Transmissibility multiplier.
       default : 1

darcy : array

Array of darcy properties per under-resolved image value.

  • value : int
       Value of the underlying under-resolved phase.

  • poro : real
       Porosity, frac.

  • perm : real
       Permeability, mD.

  • cap_press : array[2]
       Capillary pressure curves, Pa (one data table per flooding cycle).

  • rel_perm : array[2]
       Relative permeability curves (array of two data tables per flooding cycle).

  • rgb : int[3]
       Color in RGB format.

  • file : string
       Path to an external JSON file that contains relevant darcy properties.

Acceptable data table format is [[x1, y1], [x2, y2], ...] or [x1, y1, x2, y2, ...] where x(i) < x(i+1).

solver : object

Linear solver properties.

  • cache : object
       Caching of pressure solutions.

    • use : bool
         default : false

    • save : bool
         default : false

  • decomposition : int[3]
       Volume decomposition in 3 dimensions. MPI processor count is the product of 3 components.

  • tolerance : real
       The convergence tolerance.
       default : 1.00e-6

  • max_iterations : int
       Maximum number of iterations.
       default : 100

  • print_level : int
       Requests automatic printing of setup and solve information.
       0 : no printout
       1 : print setup information
       2 : print solve information
       3 : print both setup and solve information
       default : 0

  • aggressive_number_of_levels : int
       Defines the number of levels of aggressive coarsening.
       default : 0

report : object

Reporting properties.

  • display : string
       Display property of the 3D view.
       values : "pressure" | "saturation" | "permeability" | "phase" | "velem" | "decomposition"

  • invasion_percolation : bool
       Simulate invasion percolation.
       default : false

  • occupancy_images : bool
       Write 3D image files for different occupancies.
       default : false

  • capillary_pressure_sw_step : real
       Sw step in capillary pressure curves.
       default : 0.05

  • relative_permeability_sw_step : real
       Sw step in relative permeability curves.
       default : 0.075

Examples

Two-phase image

{
  "$schema": "https://raw.githubusercontent.com/dp-69/xpm/main/files/xpm.schema.json",
  "image": {
    "path": "EstailladesNano-v0s255_335x335x503_0p032um.raw",
    "size": [335, 335, 503],
    "resolution": 32.0e-9,
    "phase": {
      "void": 0,
      "solid": 255
    }  
  },
  "macro" : {
    "trans_multiplier": 1,
    "contact_angle" : 59
  },
  "solver": {
    "cache" : { "use" : true, "save" : true },
    "decomposition": [4, 3, 3],
    "tolerance": 1e-9,
    "max_iterations": 19    
  },
  "report" : {
    "invasion_percolation": true,
    "display" : "saturation",
    "occupancy_images": false,
    "capillary_pressure_sw_step": 0.075,
    "relative_permeability_sw_step": 0.1
  }
}