Advanced Multi-Physics (AMP)
On-Line Documentation
Static Public Member Functions | Static Private Member Functions | List of all members
AMP::TimeIntegrator::OxideModel Class Reference

This class provides routines for oxide calculations at a point. More...

#include <OxideModel.h>

Static Public Member Functions

static void get_diffusion_coefficients (double T, double *D)
 Function to return the diffusion coefficients in the layers.
 
static void get_equilibrium_concetration (double T, double *C)
 Function to return the equiblibrium concentration at the phase boundaries in zirconium.
 
static int integrateOxide (double dT, int N, const int *N2, const double *x0, const double *Cb, double **C0, const double *D, double **C1, double *x1, double *v1)
 Function to integrate the oxide over a fixed timestep. This routine will take the current solution and use an internal time stepping to advance the solution to the next point in time.
 

Static Private Member Functions

static double computeDiffustionTimestep (const int N, const double x[2], const double Cb[2], const double *C, const double D)
 
static void computeVelocity (const int N, const double *x, const double *Cb, const int *Nl, double const *const *C, const double *D, double *v)
 This function computes the velocity of the bounary layers.
 
static void solveLinearDiffusionLayer (const int N, const double dt, const double x0[2], const double v[2], const double Cb[2], const double *C0, const double D, double *C1, double *x1)
 

Detailed Description

This class provides routines for oxide calculations at a point.

Definition at line 14 of file OxideModel.h.

Member Function Documentation

◆ computeDiffustionTimestep()

static double AMP::TimeIntegrator::OxideModel::computeDiffustionTimestep ( const int  N,
const double  x[2],
const double  Cb[2],
const double *  C,
const double  D 
)
staticprivate

◆ computeVelocity()

static void AMP::TimeIntegrator::OxideModel::computeVelocity ( const int  N,
const double *  x,
const double *  Cb,
const int *  Nl,
double const *const *  C,
const double *  D,
double *  v 
)
staticprivate

This function computes the velocity of the bounary layers.

Parameters
[in]NNumber of layers
[in]xBoundary position (N+1)
[in]CbConcentration at boundaries (2*N)
[in]NlNumber of zones in each layer (N)
[in]CConcentration of each layer ( N x (Nl(i)) )
[in]DDiffusion coefficient of each layer (N)
[out]vVelocity of each boundary interface (N+1)

◆ get_diffusion_coefficients()

static void AMP::TimeIntegrator::OxideModel::get_diffusion_coefficients ( double  T,
double *  D 
)
static

Function to return the diffusion coefficients in the layers.

Parameters
TTemperature to use for the diffusion coefficients (K)
DReturned diffusion coefficients in the layers (cm^2/s). The output will be a 1x3 array: D[0] - The diffusion coefficient in the oxide layer D[1] - The diffusion coefficient in the alpha layer D[2] - The diffusion coefficient in the beta layer

◆ get_equilibrium_concetration()

static void AMP::TimeIntegrator::OxideModel::get_equilibrium_concetration ( double  T,
double *  C 
)
static

Function to return the equiblibrium concentration at the phase boundaries in zirconium.

Parameters
TTemperature to use for the equiblibrium (K)
CReturned equilibrium concentrations at the phase boundaries. The output will be a 1x6 array: C[0] - The concentration in the oxide at the oxide-gas interface (g/cm^3) C[1] - The concentration in the oxide at the oxide-alpha interface (g/cm^3) C[2] - The concentration in the alpha at the alpha-oxide interface (g/cm^3) C[3] - The concentration in the alpha at the alpha-beta interface (g/cm^3) C[4] - The concentration in the beta at the beta-alpha interface (g/cm^3) C[5] - The concentration in the beta at the beta-bulk interface (g/cm^3)

◆ integrateOxide()

static int AMP::TimeIntegrator::OxideModel::integrateOxide ( double  dT,
int  N,
const int *  N2,
const double *  x0,
const double *  Cb,
double **  C0,
const double *  D,
double **  C1,
double *  x1,
double *  v1 
)
static

Function to integrate the oxide over a fixed timestep. This routine will take the current solution and use an internal time stepping to advance the solution to the next point in time.

Returns
value is the number of internal timesteps taken.
Parameters
[in]dTTimestep (s)
[in]NNumber of layers
[in]N2Number of points in each layer
[in]x0Initial boundary position (cm) (N+1)
[in]CbConcentration at boundaries (g/cm^3) (2xN)
[in]C0Initial concentration of each layer (g/cm^3) {N}(1xN2)
[in]DDiffusion coefficient of each layer (cm^2/s) (N)
[out]C1Final concentration of each layer (g/cm^3) {N}(1xN2)
[out]x1Final boundary position (cm) (N+1)
[out]v1Final boundary velocity (cm/s) (N+1)

◆ solveLinearDiffusionLayer()

static void AMP::TimeIntegrator::OxideModel::solveLinearDiffusionLayer ( const int  N,
const double  dt,
const double  x0[2],
const double  v[2],
const double  Cb[2],
const double *  C0,
const double  D,
double *  C1,
double *  x1 
)
staticprivate

The documentation for this class was generated from the following file:



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:45.
Comments on this page