20#include <ql/methods/finitedifferences/schemes/expliciteulerscheme.hpp>
21#include <ql/methods/finitedifferences/schemes/cranknicolsonscheme.hpp>
26 const ext::shared_ptr<FdmLinearOpComposite> & map,
34 map, bcSet, relTol, solverType)) {
38 QL_REQUIRE(t-
dt_ > -1e-8,
"a step towards negative time given");
CrankNicolsonScheme(Real theta, const ext::shared_ptr< FdmLinearOpComposite > &map, const bc_set &bcSet=bc_set(), Real relTol=1e-8, ImplicitEulerScheme::SolverType solverType=ImplicitEulerScheme::BiCGstab)
const ext::shared_ptr< ImplicitEulerScheme > implicit_
traits::array_type array_type
Size numberOfIterations() const
void step(array_type &a, Time t)
const ext::shared_ptr< ExplicitEulerScheme > explicit_
template class providing a null value for a given type.
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container