Advanced Multi-Physics (AMP)
On-Line Documentation
OxideTimeIntegrator.h
Go to the documentation of this file.
1#ifndef included_AMP_OxideTimeIntegrator
2#define included_AMP_OxideTimeIntegrator
3
4
5#include "AMP/time_integrators/TimeIntegrator.h"
6#include "AMP/time_integrators/oxide/OxideTimeIntegratorParameters.h"
7#include "AMP/vectors/Vector.h"
8
9#include <string>
10
11
12namespace AMP::TimeIntegrator {
13
18{
19public:
30 explicit OxideTimeIntegrator( std::shared_ptr<TimeIntegratorParameters> parameters );
31
34
39 void initialize( std::shared_ptr<TimeIntegratorParameters> parameters ) override;
40
46 void reset( std::shared_ptr<const TimeIntegratorParameters> parameters ) override;
47
68 int advanceSolution( const double dt,
69 const bool first_step,
70 std::shared_ptr<AMP::LinearAlgebra::Vector> in,
71 std::shared_ptr<AMP::LinearAlgebra::Vector> out ) override;
72
79 bool checkNewSolution( void ) override;
80
88 void updateSolution( void ) override;
89
97 double getNextDt( const bool good_solution ) override;
98
99private:
100 // declare the default constructor to be private
102
103 // The mesh over which we define the oxide
104 std::shared_ptr<AMP::Mesh::Mesh> d_mesh;
105
106 // Some internal vectors
107 AMP::LinearAlgebra::Vector::shared_ptr d_oxide; // Oxide depth of each point (m)
108 AMP::LinearAlgebra::Vector::shared_ptr d_alpha; // Alpha depth of each point (m)
109 AMP::LinearAlgebra::Vector::shared_ptr d_temp; // Temperature of each point (K)
110
111 // Internal data for calculating the oxide
112 std::vector<int> N_layer;
114 AMP::LinearAlgebra::Vector::shared_ptr conc; // Oxygen concentration of each layer (g/cm^3)
115};
116} // namespace AMP::TimeIntegrator
117
118#endif
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
Definition Vector.h:60
This class solves the time-dependent oxide growth on a surface.
AMP::LinearAlgebra::Vector::shared_ptr depth
double getNextDt(const bool good_solution) override
void initialize(std::shared_ptr< TimeIntegratorParameters > parameters) override
AMP::LinearAlgebra::Vector::shared_ptr d_temp
int advanceSolution(const double dt, const bool first_step, std::shared_ptr< AMP::LinearAlgebra::Vector > in, std::shared_ptr< AMP::LinearAlgebra::Vector > out) override
Integrate through the specified time increment in days.
AMP::LinearAlgebra::Vector::shared_ptr d_alpha
std::shared_ptr< AMP::Mesh::Mesh > d_mesh
OxideTimeIntegrator(std::shared_ptr< TimeIntegratorParameters > parameters)
AMP::LinearAlgebra::Vector::shared_ptr conc
virtual ~OxideTimeIntegrator()
Empty destructor for TimeIntegrator.
void reset(std::shared_ptr< const TimeIntegratorParameters > parameters) override
AMP::LinearAlgebra::Vector::shared_ptr d_oxide
Abstract base class for time integration.
std::shared_ptr< AMP::TimeIntegrator::TimeIntegrator > shared_ptr
Convience typedef.



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