/*************************************************************************** * Copyright (c) 2023 Ondsel, Inc. * * * * This file is part of OndselSolver. * * * * See LICENSE file for details about copyright. * ***************************************************************************/ #pragma once #include #include "FullMatrix.h" namespace MbD { class DifferenceOperator { //iStep order taylorMatrix operatorMatrix time timeNodes public: virtual ~DifferenceOperator() {} void calcOperatorMatrix(); virtual void initialize(); virtual void initializeLocally(); virtual void setiStep(int i); virtual void setorder(int o); virtual void formTaylorMatrix() = 0; virtual void instantiateTaylorMatrix(); virtual void formTaylorRowwithTimeNodederivative(int i, int ii, int k); void settime(double t); int iStep = 0, order = 0; FMatDsptr taylorMatrix, operatorMatrix; double time = 0.0; std::shared_ptr> timeNodes; //"Row of past times in order of increasing past." static FRowDsptr OneOverFactorials; }; }