15template<
typename SolutionFieldType>
28 static std::string
name() {
return "forwardEuler"; }
30 static std::string
doc() {
return "first order time integration method"; }
32 static std::string
schema() {
return "none"; }
39 SolutionFieldType& oldSolutionField =
42 solutionField.internalField() = oldSolutionField.internalField() - source * dt;
43 solutionField.correctBoundaryConditions();
46 if (std::holds_alternative<NeoFOAM::GPUExecutor>(eqn.
exec()))
50 oldSolutionField.internalField() = solutionField.internalField();
53 std::unique_ptr<TimeIntegratorBase<SolutionFieldType>>
clone()
const override
55 return std::make_unique<ForwardEuler>(*
this);
A class representing a dictionary that stores key-value pairs.
Field< scalar > explicitOperation(size_t nCells)
const Executor & exec() const
ForwardEuler(const Dictionary &dict)
static std::string schema()
TimeIntegratorBase< SolutionFieldType >::template Register< ForwardEuler< SolutionFieldType > > Base
void solve(Expression &eqn, SolutionFieldType &solutionField, scalar t, scalar dt) override
std::unique_ptr< TimeIntegratorBase< SolutionFieldType > > clone() const override
static std::string name()
A template class for registering derived classes with a base class.
FieldType & oldTime(FieldType &field)
Retrieves the old time field of a given field.