Corrosion rates

This function calculates the corrosion rates of a given metal contact surface under a specified solution condition.

This calculation is currently only supported for the AQ thermodynamic framework

corrosion rates

POST https://api.olisystems.com/engine/flash/{dbs_file_id}/corrosion-rates

calculate the corrosion rate

Headers

Name
Type
Description

Authorization

string

Bearer {access_token}

Content-Type

string

application/json

{
	"code": 200,
	"data": {
		"file_id": "dee854a6-59db-487d-ad08-a20dee691133",
		"jobId": "f6b3375e-cd0f-4ace-a5ee-71e047b76754",
		"resultsLink": "https://api.olisystems.com/result/flash/f6b3375e-cd0f-4ace-a5ee-71e047b76754?context=engine",
		"status": "IN PROGRESS"
	},
	"message": "Process execution started Successfully",
	"status": "SUCCESS"
}

Request payload

{
    "params": {
        "temperature": {
            "value": 40.0,
            "unit": "°C"
        },
        "pressure": {
            "value": 1.5,
            "unit": "atm"
        },
        "calculationType": "isothermal",
        "inflows": {
            "unit": "mol",
            "values": {
                "H2O": 50.0,
                "NACL": 0.01,
                "HNO3": 1,
                "FEEL": 0.0
            },
            "totalAmount":
            {
                "value": 51.01,
                "unit": "mol"
            }
        },
        "corrosionParameters":
        {
            "contactSurface": "Carbon steel G10100 (generic)",
            "flowType": "static"
        }
}

params

type

description

temperature

pressure

calculationType

string

single point flash calculation type of solution, e.g. isothermal

params.calculationType currently only supports the "isothermal" type.

Corrosion parameters

params.corrosionParameters

type

description

contactSurface

string

flowType

string

flow configuration

Options for flowType

params.corrosionParameters.flowType

description

static

mimics static flow

pipeFlow

mimics pipe flow

rotatingDisk

several parallel disks that are rotating

rotatingCylinder

several parallel cylinders that are rotating

completeAgitation

liquid phase is completely agitated and no mass transfer limitations apply

definedShearStress

define the stress of applied force over material

approximateMultiPhaseFlow

mimics an approximate multi-phase flow

Additional corrosion parameters may be required for different flow types, which are explained as below

Additional parameters if flowType is pipeFlow

{
    "params": {
        ...<snip>...,
        "corrosionParameters":
        {
            "contactSurface": "Carbon steel G10100 (generic)",
            "flowType": "pipeFlow",
            "pipeDiameter": {
                "value": 0.05,
                "unit": "m"
            },
            "pipeFlowVelocity": {
                "value": 6.0,
                "unit": "ft/s"
            }
        },
        ...<snip>...
}

params.corrosionParameters

type

description

pipeDiameter

pipeFlowVelocity

Additional parameters if flowType is rotatingDisk

{
    "params": {
        ...<snip>...,
        "corrosionParameters":
        {
            "contactSurface": "Carbon steel G10100 (generic)",
            "flowType": "rotatingDisk",
            "diskDiameter": {
                "value": 0.6,
                "unit": "in"
            },
            "diskRotationSpeed": {
                "value": 15.0,
                "unit": "cycle/s"
            }
        },
        ...<snip>...
}

params.corrosionParameters

type

description

diskDiameter

diskRotationSpeed

Additional parameters if flowType is rotatingCylinder

{
    "params": {
        ...<snip>...,
        "corrosionParameters":
        {
            "contactSurface": "Carbon steel G10100 (generic)",
            "flowType": "rotatingCylinder",
            "rotorDiameter": {
                "value": 5,
                "unit": "mm"
            },
            "rotorRotation": {
                "value": 1000,
                "unit": "cycle/min"
            }
        },
        ...<snip>...
}

params.corrosionParameters

type

description

rotorDiameter

rotorRotation

Additional parameters if flowType is definedShearStress

{
    "params": {
        ...<snip>...,
        "corrosionParameters":
        {
            "contactSurface": "Carbon steel G10100 (generic)",
            "flowType": "definedShearStress",
            "shearStress": {
                "value": 0.01,
                "unit": "kPa"
            }
        },
        ...<snip>...
}

params.corrosionParameters

type

description

shearStress

Additional parameters if flowType is approximateMultiPhaseFlow

{
    "params": {
        ...<snip>...,
        "corrosionParameters":
        {
            "contactSurface": "Carbon steel G10100 (generic)",
            "flowType": "approximateMultiPhaseFlow",
            "pipeDiameter": {
                "value": 10.0,
                "unit": "cm"
            },
            "liquidFlowInPipe": {
                "value": 0.2,
                "unit": "m3/s"
            },
            "gasFlowInPipe": {
                "value": 0.1,
                "unit": "m3/s"
            },
            "pipeRoughness": {
                "value": 0.15,
                "unit": "cm"
            },
            "viscAbs2ndLiq": {
                "value": 15.0,
                "unit": "cP"
            },
            "waterCutAtPointOfDispersionInversion": 0.7,
            "maxRelViscosityOfDispersionAtInversion": 10.0
        },
        ...<snip>...
}

params.corrosionParameters

type

description

pipeDiameter

liquidFlowInPipe

gasFlowInPipe

pipeRoughness

viscAbs2ndLiq

waterCutAtPointOfDispersionInversion

number

water cut at point of dispersion inversion

maxRelViscosityOfDispersionAtInversion

number

max relative viscosity of dispersion at inversion

in addition to the inputs shown above some optional properties may also be specified. They can be viewed here

Response (status = "PROCESSED")

{
    "code": 200,
    "data": {
        "result": {
           ...<snip>...
            "corrosionOutputs": {
                "corrosionPotential": {
                    "value": -0.2751504098799078,
                    "unit": "V (SHE)"
                },
                "repassivationPotential": {
                    "value": -0.4851063187462839,
                    "unit": "V (SHE)"
                },
                "corrosionRateGPerMsqDay": {
                    "value": 382.2467320945027,
                    "unit": "g/m3-day"
                },
                "corrosionRateMmPerYear": {
                    "value": 17.728088591422296,
                    "unit": "mm/yr"
                },
                "corrosionRateMilPerYear": {
                    "value": 697.9562437567834,
                    "unit": "mil/yr"
                },
                "corrosionCurrentDensity": {
                    "value": 15.288766842782513,
                    "unit": "A/sq-m"
                },
                "maximumPitCurrentDensity": {
                    "value": 23.87887042448192,
                    "unit": "A/sq-m"
                }
            }
        }
    }, 
    "message": "Results returned successfully", 
    "status": "PROCESSED"
}

The output of this calculation is the stream output which is common result output for all OLI's flash calculations or an error. In addition to this output the the corrosion output information can be conveniently retrieved from the data.result.corrosionOutputs array

data.result.corrosionOutputs

type

description

corrosionPotential

corrosion potential

repassivationPotential

repassivation potential

corrosionRateGPerMsqDay

corrosion rate in gram per cubic meter day

corrosionRateMmPerYear

corrosion rate in mm per year

corrosionRateMilPerYear

corrosion rate in mil per year

corrosionCurrentDensity

corrosion current density

maximumPitCurrentDensity

maximum pit current density

All output units are fixed to what is shown in this example

Survey Calculation

Survey calculation is supported for the variables below. Please refer to Survey calculation for explained input schema.

supported params.surveyInputs[{}].field

"/params/temperature/value"

"/params/pressure/value"

Last updated