Advanced Multi-Physics (AMP)
On-Line Documentation
OxideModel.h
Go to the documentation of this file.
1#ifndef included_AMP_OxideModel
2#define included_AMP_OxideModel
3
4
5#include <string>
6
7
8namespace AMP::TimeIntegrator {
9
10
15{
16public:
31 static void get_equilibrium_concetration( double T, double *C );
32
33
44 static void get_diffusion_coefficients( double T, double *D );
45
46
63 static int integrateOxide( double dT,
64 int N,
65 const int *N2,
66 const double *x0,
67 const double *Cb,
68 double **C0,
69 const double *D,
70 double **C1,
71 double *x1,
72 double *v1 );
73
74
75private:
86 static void computeVelocity( const int N,
87 const double *x,
88 const double *Cb,
89 const int *Nl,
90 double const *const *C,
91 const double *D,
92 double *v );
93
94
95 /* This function computes the maximum timestep based on diffusion
96 * @param[in] N Number of zones
97 * @param[in] x Boundary position
98 * @param[in] Cb Concentration at boundaries
99 * @param[in] C Concentration of each layer (N)
100 * @param[in] D Diffusion coefficient
101 */
103 const int N, const double x[2], const double Cb[2], const double *C, const double D );
104
105
106 /* This function performs a linear solve to get the future oxygen concentration
107 * given the current oxygen concentration, the current and future boundary
108 * velocities, and the current boundary positions.
109 * @param[in] N Number of zones
110 * @param[in] dt Timestep
111 * @param[in] x0 Initial boundary position
112 * @param[in] v0 Velocity of boundaries
113 * @param[in] Cb Concentration at boundaries
114 * @param[in] C0 Initial concentration (N)
115 * @param[in] D Diffusion coefficient
116 * @param[out] C1 Final concentration (N)
117 * @param[out] x1 Final boundary position
118 */
119 static void solveLinearDiffusionLayer( const int N,
120 const double dt,
121 const double x0[2],
122 const double v[2],
123 const double Cb[2],
124 const double *C0,
125 const double D,
126 double *C1,
127 double *x1 );
128};
129} // namespace AMP::TimeIntegrator
130
131#endif
This class provides routines for oxide calculations at a point.
Definition OxideModel.h:15
static void get_diffusion_coefficients(double T, double *D)
Function to return the diffusion coefficients in the layers.
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 an...
static void get_equilibrium_concetration(double T, double *C)
Function to return the equiblibrium concentration at the phase boundaries in zirconium.
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)
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.



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:41.
Comments on this page