34 ext::shared_ptr<FdmLinearOpComposite> op)
35 : solverDesc_(solverDesc), schemeDesc_(schemeDesc), op_(
std::move(op)),
37 0.99 *
std::min(1.0 / 365.0,
38 solverDesc.condition->stoppingTimes().empty() ?
40 solverDesc.condition->stoppingTimes().front()))),
42 x_(solverDesc.mesher->layout()->size()), initialValues_(solverDesc.mesher->layout()->size()),
43 resultValues_(solverDesc.mesher->layout()->size()) {
45 for (
const auto& iter : *solverDesc.
mesher->layout()) {
49 x_[iter.index()] = solverDesc.
mesher->location(iter, 0);
83 x_.begin(),
x_.end(), thetaValues.
begin())(x);
1-D array used in linear algebra.
const_iterator end() const
Size size() const
dimension of the array
const_iterator begin() const
void performCalculations() const override
std::vector< Real > initialValues_
const ext::shared_ptr< FdmStepConditionComposite > conditions_
Real derivativeX(Real x) const
ext::shared_ptr< CubicInterpolation > interpolation_
const ext::shared_ptr< FdmSnapshotCondition > thetaCondition_
const FdmSolverDesc solverDesc_
Real thetaAt(Real x) const
Real derivativeXX(Real x) const
Fdm1DimSolver(const FdmSolverDesc &solverDesc, const FdmSchemeDesc &schemeDesc, ext::shared_ptr< FdmLinearOpComposite > op)
Real interpolateAt(Real x) const
const ext::shared_ptr< FdmLinearOpComposite > op_
const FdmSchemeDesc schemeDesc_
void rollback(array_type &a, Time from, Time to, Size steps, Size dampingSteps)
virtual void calculate() const
template class providing a null value for a given type.
cubic interpolation between discrete points
layer of abstraction to calculate the inner value
memory layout of a fdm linear operator
step condition for value inspection
composite of fdm step conditions
generic finite difference model
const ext::shared_ptr< FdmInnerValueCalculator > calculator
const FdmBoundaryConditionSet bcSet
const ext::shared_ptr< FdmMesher > mesher