19template<
typename SolutionType>
22 TimeIntegratorBase<SolutionType>,
23 Parameters<const Dictionary&, const Dictionary&>>
28 using ValueType =
typename SolutionType::VectorValueType;
31 static std::string
name() {
return "timeIntegrationFactory"; }
44 virtual std::unique_ptr<TimeIntegratorBase>
clone()
const = 0;
58template<
typename SolutionVectorType>
65 using ValueType =
typename SolutionVectorType::VectorValueType;
69 : timeIntegratorStrategy_(timeIntegrator.timeIntegratorStrategy_->clone()) {};
72 : timeIntegratorStrategy_(std::move(timeIntegrator.timeIntegratorStrategy_)) {};
76 schemeDict.get<std::string>(
"type"), schemeDict, solutionDict
81 timeIntegratorStrategy_->solve(eqn, sol, t, dt);
86 std::unique_ptr<TimeIntegratorBase<SolutionVectorType>> timeIntegratorStrategy_;
A class representing a dictionary that stores key-value pairs.
A factory class for runtime selection of derived classes.
TimeIntegration(const Dictionary &schemeDict, const Dictionary &solutionDict)
typename SolutionVectorType::VectorValueType ValueType
TimeIntegration(const TimeIntegration &timeIntegrator)
void solve(Expression &eqn, SolutionVectorType &sol, scalar t, scalar dt)
TimeIntegration(TimeIntegration &&timeIntegrator)
const Dictionary & solutionDict_
virtual ~TimeIntegratorBase()
const Dictionary & schemeDict_
static std::string name()
typename SolutionType::VectorValueType ValueType
virtual std::unique_ptr< TimeIntegratorBase > clone() const =0
virtual void solve(Expression &eqn, SolutionType &sol, scalar t, scalar dt)=0
TimeIntegratorBase(const Dictionary &schemeDict, const Dictionary &solutionDict)