This class solves the time-dependent oxide growth on a surface. More...
#include <OxideTimeIntegrator.h>

Public Types | |
| typedef std::shared_ptr< AMP::TimeIntegrator::TimeIntegrator > | shared_ptr |
| Convience typedef. | |
Protected Member Functions | |
| void | getFromInput (std::shared_ptr< const AMP::Database > db) |
| void | getFromRestart () |
Protected Attributes | |
| double | d_current_dt = std::numeric_limits<double>::signaling_NaN() |
| double | d_current_time = std::numeric_limits<double>::signaling_NaN() |
| double | d_final_time = std::numeric_limits<double>::signaling_NaN() |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_ic_vector = nullptr |
| int | d_iDebugPrintInfoLevel = 0 |
| double | d_initial_dt = std::numeric_limits<double>::signaling_NaN() |
| initial time increment | |
| double | d_initial_time = std::numeric_limits<double>::signaling_NaN() |
| bool | d_initialized = false |
| int | d_integrator_step = 0 |
| double | d_max_dt = std::numeric_limits<double>::max() |
| maximum allowable timestep (user defined) | |
| int | d_max_integrator_steps = 0 |
| double | d_min_dt = std::numeric_limits<double>::signaling_NaN() |
| std::string | d_object_name |
| double | d_old_dt = std::numeric_limits<double>::signaling_NaN() |
| std::shared_ptr< AMP::Operator::Operator > | d_operator |
| std::shared_ptr< AMP::Operator::Operator > | d_pMassOperator |
| std::shared_ptr< TimeIntegratorParameters > | d_pParameters |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_pSourceTerm |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_solution_vector |
| int | d_total_steprejects = 0 |
| std::shared_ptr< AMP::IO::Writer > | d_writer |
| keeps track of total number of step rejections | |
Private Member Functions | |
| OxideTimeIntegrator ()=delete | |
Private Attributes | |
| AMP::LinearAlgebra::Vector::shared_ptr | conc |
| AMP::LinearAlgebra::Vector::shared_ptr | d_alpha |
| std::shared_ptr< AMP::Mesh::Mesh > | d_mesh |
| AMP::LinearAlgebra::Vector::shared_ptr | d_oxide |
| AMP::LinearAlgebra::Vector::shared_ptr | d_temp |
| AMP::LinearAlgebra::Vector::shared_ptr | depth |
| std::vector< int > | N_layer |
This class solves the time-dependent oxide growth on a surface.
Definition at line 17 of file OxideTimeIntegrator.h.
|
inherited |
Convience typedef.
Definition at line 37 of file TimeIntegrator.h.
|
explicit |
The constructor for TimeIntegrator initializes the default state of the integrator. Data members are initialized from the input and restart databases.
Note that no vectors are created in the constructor. Vectors are created and initialized in the initialize() member function.
|
virtual |
Empty destructor for TimeIntegrator.
|
privatedelete |
|
overridevirtual |
Integrate through the specified time increment in days.
Integrate through the specified time increment in days.
The boolean first_step argument is true when this is the very first call to the advance function. Otherwise it is false. Note that, when the argument is true, the use of extrapolation to construct the initial guess for the advanced solution may not be possible.
| dt | Time step size (days) |
| first_step | Whether this is the first step |
| in | Input vector |
| out | Output vector |
Implements AMP::TimeIntegrator::TimeIntegrator.
|
inlinevirtualinherited |
Append the vectors of interest to the rhs vector.
This function will append the necessary vectors that this solver owns to the global vector provided. Note that each solver may own any number of vectors, but no vector may be owned by multiple solvers.
| vec | The vector to append |
Definition at line 219 of file TimeIntegrator.h.
|
inlinevirtualinherited |
Append the vectors of interest to the solution vector.
This function will append the necessary vectors that this solver owns to the global vector provided. Note that each solver may own any number of vectors, but no vector may be owned by multiple solvers.
| vec | The vector to append |
Definition at line 208 of file TimeIntegrator.h.
Check time advanced solution to determine whether it is acceptable. Return true if the solution is acceptable; return false otherwise. The meaning of this value must be intepreted properly by the user-supplied solution checking routine.
Implements AMP::TimeIntegrator::TimeIntegrator.
Return current timestep.
Return current timestep.
Return final integration time.
Return current integration time.
Return final integration time.
Return final integration time.
|
protectedinherited |
|
protectedinherited |
Reimplemented in AMP::TimeIntegrator::BDFIntegrator.
Definition at line 268 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_current_dt.
|
inherited |
Get a unique id hash for the vector.
get initial time step.
Definition at line 179 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_initial_dt.
Return initial integration time.
Return initial integration time.
Return current integration step number.
Return current integration step number.
Return maximum number of integration steps.
Return maximum number of integration steps.
|
overridevirtual |
Return time increment for next solution advance. Timestep selection is generally based on whether the solution meets some user-defined criteria. This routine assumes that, before it is called, the routine checkNewSolution() was called. The boolean argument is the return value from that call.
Reimplemented from AMP::TimeIntegrator::TimeIntegrator.
|
inlineinherited |
Definition at line 246 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_operator.
|
inlinevirtualinherited |
Retrieve the current solution.
Definition at line 137 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_solution_vector.
|
inlinevirtualinherited |
Reimplemented in AMP::TimeIntegrator::IDATimeIntegrator.
Definition at line 266 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_pSourceTerm.
|
inlinevirtualinherited |
Scaling factors for previous time history vectors.
For RK methods the previous time vector is always scaled by 1. For multistep methods this vector can consist of multiple scalings with the first entry being the scaling for $y^{n-1}$, the next being for $y^{n-2}$ etc
Reimplemented in AMP::TimeIntegrator::BDFIntegrator.
Definition at line 276 of file TimeIntegrator.h.
|
inlinevirtualinherited |
Definition at line 248 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_total_steprejects.
|
overridevirtual |
Initialize state of time integrator. This includes creating solution vector and initializing solver components.
Reimplemented from AMP::TimeIntegrator::TimeIntegrator.
|
inherited |
Print out all members of integrator instance to given output stream.
|
virtualinherited |
Reimplemented in AMP::TimeIntegrator::BDFIntegrator, and AMP::TimeIntegrator::ImplicitIntegrator.
|
inherited |
Write out state of object to given database.
When assertion checking is active, the database pointer must be non-null.
|
virtualinherited |
Register any child objects.
This function will register child objects with the manager
| manager | Restart manager |
Reimplemented in AMP::TimeIntegrator::BDFIntegrator, AMP::TimeIntegrator::ImplicitIntegrator, AMP::TimeIntegrator::RK12TimeIntegrator, AMP::TimeIntegrator::RK23TimeIntegrator, AMP::TimeIntegrator::RK2TimeIntegrator, AMP::TimeIntegrator::RK34TimeIntegrator, AMP::TimeIntegrator::RK45TimeIntegrator, and AMP::TimeIntegrator::RK4TimeIntegrator.
|
inlinevirtualinherited |
Reimplemented in AMP::TimeIntegrator::ImplicitIntegrator.
Definition at line 241 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_operator.
|
inlinevirtualinherited |
Registers a writer with the solver.
This function will register a writer with the solver. The solver may then register any vector components it "owns" with the writer.
| writer | The writer to register |
Definition at line 227 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_writer.
|
overridevirtual |
Resets the internal state of the time integrator as needed. A parameter argument is passed to allow for general flexibility in determining what needs to be reset.
Implements AMP::TimeIntegrator::TimeIntegrator.
|
inlinevirtualinherited |
Definition at line 250 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_current_dt.
|
inlinevirtualinherited |
Definition at line 254 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_current_time.
|
inlinevirtualinherited |
Definition at line 258 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_final_time.
|
inlinevirtualinherited |
Definition at line 252 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_initial_dt.
|
inlinevirtualinherited |
Definition at line 256 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_initial_time.
|
inlinevirtualinherited |
Definition at line 262 of file TimeIntegrator.h.
References AMP::TimeIntegrator::TimeIntegrator::d_pSourceTerm.
|
inlinevirtualinherited |
Reimplemented in AMP::TimeIntegrator::BDFIntegrator.
Definition at line 284 of file TimeIntegrator.h.
Have the number of integration steps reached the maximum.
Return true if the number of integration steps performed by the integrator has not reached the specified maximum; return false otherwise.
Reimplemented in AMP::TimeIntegrator::ImplicitIntegrator.
|
virtualinherited |
Return the name of the TimeIntegrator.
Reimplemented in AMP::TimeIntegrator::BDFIntegrator, AMP::TimeIntegrator::ExplicitEuler, AMP::TimeIntegrator::RK12TimeIntegrator, AMP::TimeIntegrator::RK23TimeIntegrator, AMP::TimeIntegrator::RK2TimeIntegrator, AMP::TimeIntegrator::RK34TimeIntegrator, AMP::TimeIntegrator::RK45TimeIntegrator, AMP::TimeIntegrator::RK4TimeIntegrator, and AMP::TimeIntegrator::IDATimeIntegrator.
Update solution (e.g., reset pointers for solution data, update dependent variables, etc.) after time advance. It is assumed that when this routine is invoked, an acceptable new solution has been computed. The double return value is the simulation time corresponding to the advanced solution.
Implements AMP::TimeIntegrator::TimeIntegrator.
|
virtualinherited |
Write restart data to file.
This function will write the mesh to an HDF5 file
| fid | File identifier to write |
Reimplemented in AMP::TimeIntegrator::BDFIntegrator, AMP::TimeIntegrator::ImplicitIntegrator, AMP::TimeIntegrator::RK12TimeIntegrator, AMP::TimeIntegrator::RK23TimeIntegrator, AMP::TimeIntegrator::RK2TimeIntegrator, AMP::TimeIntegrator::RK34TimeIntegrator, AMP::TimeIntegrator::RK45TimeIntegrator, and AMP::TimeIntegrator::RK4TimeIntegrator.
|
private |
Definition at line 114 of file OxideTimeIntegrator.h.
|
private |
Definition at line 108 of file OxideTimeIntegrator.h.
|
protectedinherited |
Definition at line 350 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::getGamma(), and AMP::TimeIntegrator::TimeIntegrator::setCurrentDt().
|
protectedinherited |
Definition at line 346 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::setCurrentTime().
|
protectedinherited |
Definition at line 345 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::setFinalTime().
|
protectedinherited |
Definition at line 315 of file TimeIntegrator.h.
|
protectedinherited |
Definition at line 357 of file TimeIntegrator.h.
|
protectedinherited |
initial time increment
Definition at line 349 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::getInitialDt(), and AMP::TimeIntegrator::TimeIntegrator::setInitialDt().
|
protectedinherited |
Definition at line 344 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::setInitialTime().
Set to true after initialization in constructors. Needed in getFromInput to avoid reseting some parameters in subsequent reset operations.
Definition at line 370 of file TimeIntegrator.h.
|
protectedinherited |
Definition at line 358 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::ImplicitIntegrator::stepsRemaining().
|
protectedinherited |
maximum allowable timestep (user defined)
Definition at line 355 of file TimeIntegrator.h.
|
protectedinherited |
Definition at line 359 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::ImplicitIntegrator::stepsRemaining().
|
private |
Definition at line 104 of file OxideTimeIntegrator.h.
|
protectedinherited |
Definition at line 352 of file TimeIntegrator.h.
|
protectedinherited |
Definition at line 305 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::ImplicitIntegrator::getObjectName().
|
protectedinherited |
Definition at line 351 of file TimeIntegrator.h.
|
protectedinherited |
The operator is the right hand side operator for an explicit integrator when the time integration problem is : u_t = f(u) but in the case of implicit time integrators the operator represents u_t-f(u)
Definition at line 328 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::getOperator(), and AMP::TimeIntegrator::TimeIntegrator::registerOperator().
|
private |
Definition at line 107 of file OxideTimeIntegrator.h.
|
protectedinherited |
The operator is the left hand side mass operator (for FEM formulations)
Definition at line 333 of file TimeIntegrator.h.
|
protectedinherited |
pointer to parameters
Definition at line 310 of file TimeIntegrator.h.
|
protectedinherited |
Definition at line 338 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::getSourceTerm(), and AMP::TimeIntegrator::TimeIntegrator::setSourceTerm().
|
protectedinherited |
Definition at line 320 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::getSolution().
|
private |
Definition at line 109 of file OxideTimeIntegrator.h.
|
protectedinherited |
Definition at line 361 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::BDFIntegrator::getNumberOfStepRejections(), and AMP::TimeIntegrator::TimeIntegrator::getTotalRejectedSteps().
|
protectedinherited |
keeps track of total number of step rejections
Definition at line 364 of file TimeIntegrator.h.
Referenced by AMP::TimeIntegrator::TimeIntegrator::registerWriter().
|
private |
Definition at line 113 of file OxideTimeIntegrator.h.
|
private |
Definition at line 112 of file OxideTimeIntegrator.h.
|
Advanced Multi-Physics (AMP) Oak Ridge National Laboratory Idaho National Laboratory Los Alamos National Laboratory |
This page automatically produced from the source code by Last updated: Tue Mar 10 2026 13:06:45. Comments on this page |