Advanced Multi-Physics (AMP)
On-Line Documentation
ExplicitEuler.h
Go to the documentation of this file.
1//
2// $Id: ExplicitEuler.h,v 1.2 2006/02/07 17:36:01 philipb Exp $
3// $Revision: 1.2 $
4// $Date: 2006/02/07 17:36:01 $
5//
6// File: ExplicitEuler.h
7// Copyright: (c) 2005 The Regents of the University of California
8// Description: Concrete time integrator using backward Euler method
9//
10
11#ifndef included_ExplicitEuler
12#define included_ExplicitEuler
13
14#include <string>
15
16namespace AMP::LinearAlgebra {
17class Vector;
18}
19
20#include "AMP/time_integrators/TimeIntegrator.h"
21
22namespace AMP::TimeIntegrator {
23
30{
31public:
35 explicit ExplicitEuler(
36 std::shared_ptr<AMP::TimeIntegrator::TimeIntegratorParameters> parameters );
37
42
43 static std::unique_ptr<TimeIntegrator> createTimeIntegrator(
44 std::shared_ptr<AMP::TimeIntegrator::TimeIntegratorParameters> parameters )
45 {
46 return std::unique_ptr<TimeIntegrator>( new ExplicitEuler( parameters ) );
47 }
48
53 std::shared_ptr<AMP::TimeIntegrator::TimeIntegratorParameters> parameters ) override;
54
60 void reset(
61 std::shared_ptr<const AMP::TimeIntegrator::TimeIntegratorParameters> parameters ) override;
62
66 bool checkNewSolution( void ) override;
67
71 void updateSolution( void ) override;
72
73 int advanceSolution( const double dt,
74 const bool first_step,
75 std::shared_ptr<AMP::LinearAlgebra::Vector> in,
76 std::shared_ptr<AMP::LinearAlgebra::Vector> out ) override;
77
78 std::string type() const override { return "ExplicitEuler"; }
79
80private:
84 ExplicitEuler() = delete;
85
89 void setupVectors( void );
90
91 std::shared_ptr<AMP::LinearAlgebra::Vector> d_new_solution = nullptr;
92 std::shared_ptr<AMP::LinearAlgebra::Vector> d_f_vec = nullptr;
93};
94} // namespace AMP::TimeIntegrator
95
96#endif
std::shared_ptr< AMP::LinearAlgebra::Vector > d_f_vec
std::string type() const override
Return the name of the TimeIntegrator.
static std::unique_ptr< TimeIntegrator > createTimeIntegrator(std::shared_ptr< AMP::TimeIntegrator::TimeIntegratorParameters > parameters)
void reset(std::shared_ptr< const AMP::TimeIntegrator::TimeIntegratorParameters > parameters) override
bool checkNewSolution(void) override
std::shared_ptr< AMP::LinearAlgebra::Vector > d_new_solution
void initialize(std::shared_ptr< AMP::TimeIntegrator::TimeIntegratorParameters > parameters) override
void updateSolution(void) override
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.
ExplicitEuler(std::shared_ptr< AMP::TimeIntegrator::TimeIntegratorParameters > parameters)
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