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 initialValues_(solverDesc.mesher->layout()->size()),
43 resultValues_(solverDesc.mesher->layout()->dim()[1], solverDesc.mesher->layout()->dim()[0]) {
45 x_.reserve(solverDesc.
mesher->layout()->dim()[0]);
46 y_.reserve(solverDesc.
mesher->layout()->dim()[1]);
48 for (
const auto& iter : *solverDesc.
mesher->layout()) {
53 if (iter.coordinates()[1] == 0U) {
54 x_.push_back(solverDesc.
mesher->location(iter, 0));
56 if (iter.coordinates()[0] == 0U) {
57 y_.push_back(solverDesc.
mesher->location(iter, 1));
bicubic spline interpolation between discrete points
1-D array used in linear algebra.
const_iterator end() const
const_iterator begin() const
bicubic-spline interpolation between discrete points
void performCalculations() const override
std::vector< Real > initialValues_
Real derivativeXX(Real x, Real y) const
Real interpolateAt(Real x, Real y) const
const ext::shared_ptr< FdmStepConditionComposite > conditions_
const ext::shared_ptr< FdmSnapshotCondition > thetaCondition_
ext::shared_ptr< BicubicSpline > interpolation_
Real thetaAt(Real x, Real y) const
const FdmSolverDesc solverDesc_
Real derivativeY(Real x, Real y) const
Real derivativeX(Real x, Real y) const
Real derivativeXY(Real x, Real y) const
Fdm2DimSolver(const FdmSolverDesc &solverDesc, const FdmSchemeDesc &schemeDesc, ext::shared_ptr< FdmLinearOpComposite > op)
Real derivativeYY(Real x, Real y) 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
Matrix used in linear algebra.
const_iterator begin() const
template class providing a null value for a given type.
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