💧
OLI API
  • Welcome to the OLI API documentation
  • Basic workflow
  • Authentication
    • Bearer Token
    • API Keys
      • Generate a Key
      • List All Keys
      • Delete a Key
  • Generating chemistry model files
    • ChemBuilder API
      • Getting Started with ChemBuilder
        • Set Thermodynamic Framework
        • Include Private Databanks
        • Include Inflows
          • Include Assays
          • Include Pseudocomponent
        • Choose Phases
        • Specify Model Name
        • Choose Redox
        • Choose Solids
        • Add Kinetics
      • ChemBuilder Query
        • Species Query
        • Redox Query
        • Solid Phase Query
        • Databank Query
        • Kinetics Query
        • Query Output Results
      • Supporting Information for ChemBuilder
        • Add Comment
        • "enabled" Keyword
        • ChemBuilder Errors
    • Chemistry Wizard
  • Uploading chemistry model files
  • Get list of uploaded files
  • Quickstart example: Python
  • Known issues and Limitations
  • OLI ENGINE API
    • Main methods
      • API call blueprint
      • Chemistry information
      • Isothermal flash
      • Isenthalpic flash
      • Bubble point flash
      • Dew point flash
      • Vapor amount flash
      • Vapor fraction flash
      • Isochoric flash
      • set pH flash
      • Precipitation point flash
      • Autoclave
      • Custom flash
      • Corrosion contact surfaces
      • Corrosion rates
      • Water analysis
  • Additional methods
    • Flash history - Chemistry model
    • Result - by jobId
    • delete file
    • cancel run
  • Inflows input
  • Optional inputs
  • Kinetic calculation inputs
  • Kinetic calculation outputs
  • Input units
  • User defined output unit set
  • Survey calculation
  • Stream output
  • Error/Warning output
  • Definition of terms
  • OLI Process API
    • Uploading a Process API package
      • Creating a Process API package
    • Get list of all uploaded ProcessAPI packages
    • Get input specs for Process API package
    • Get output specs for ProcessAPI package
    • Run a Process API calculation
    • Get calculation status and results
  • Deleting a process package
  • Undelete a process package
  • Process API input specification
    • "data" object
      • "flowsheet" object
        • "chemical-info" object
        • "general-info" object
        • "properties" object
        • "units_set_info" object
  • OLI ScaleChem API
    • Uploading chemistry model files for ScaleChem API
    • Get list of uploaded ScaleChem model files
    • Main methods
      • Brine analysis
      • Gas analysis
      • Oil analysis
      • Mixer calculation
      • Scale scenario
Powered by GitBook
On this page

Was this helpful?

  1. Generating chemistry model files
  2. ChemBuilder API
  3. Getting Started with ChemBuilder

Choose Redox

Redox offers the capability to specify all oxidation states for a chemical element. A sample code featuring a Redox field is available below.

{
  "params": {
    "thermodynamicFramework": "MSE (H3O+ ion)",
    "modelName": "testModel",
    "phases": [
      "liquid1",
      "vapor",
      "solid",
      "liquid2"
    ],
    "inflows": [
      {
        "name": "H2O"
      },
      {
        "name": "NACL"
      },
      {
        "name": "UREA"
      },
      {
        "name": "NH3"
      },
      {
        "name": "CO2"
      },
      {
        "name": "CACO3"
      },
      {
        "name": "Benzene"
      },
      {
        "name": "Ethanol"
      }
    ],
    "redox": {
      "enabled": "true",
      "subSystems": [
        {
          "name": "Chlorine",
          "enabled": false,
          "valenceStates": [
            {
              "name": "Cl(-1)",
              "enabled": true
            },
            {
              "name": "Cl(+1)",
              "enabled": false
            },
            {
              "name": "Cl(+7)",
              "enabled": true
            }
          ]
        },
        {
          "name": "Calcium",
          "enabled": true,
          "valenceStates": [
            {
              "name": "Ca(0)",
              "enabled": true
            },
            {
              "name": "Ca(+2)"
            }
          ]
        },
        {
          "name": "Nitrogen",
          "valenceStates": [
            {
              "name": "N(-3)",
              "enabled": true
            },
            {
              "name": "N(-2)"
            },
            {
              "name": "N(-1)",
              "enabled": true
            },
            {
              "name": "N",
              "enabled": true
            },
            {
              "name": "N(+1)",
              "enabled": true
            },
            {
              "name": "N(+2)"
            },
            {
              "name": "N(+3)",
              "enabled": true
            },
            {
              "name": "N(+4)"
            },
            {
              "name": "N(+5)",
              "enabled": true
            }
          ]
        }
      ]
    }
  }
}

The Redox field is optional for generating .dbs files.

If Redox is enabled, the "subSystems" object becomes mandatory. Within this object, users must include the name along with a list of all valence states.

redox
always required
type

subSystems

Array of JSON Object

Subsystem properties

subSystems
always required
type

name

String

valenceStates

Array of JSON Object

Enabling a subSystem element automatically enables all of its valence states by default.

To disable specific valence states, the user must explicitly set "enabled": false.

Please refer to Redox Query for information on element availability and its valence states. The output of a Redox Query can be directly inserted into the JSON input for generating .dbs files, as the JSON structure of both datasets is identical.

The JSON object of Redox and its internal JSON objects can be enabled or disabled using "enabled" Keyword

PreviousSpecify Model NameNextChoose Solids

Last updated 11 months ago

Was this helpful?

✔️
✔️
✔️