Diana  0.8.3
IDianaModel.hpp
00001 /* -----------------------------------------------------------------------------
00002  *  Diana process modelling, simulation and analysis software
00003  *  Copyright (c) 2005, Michael Krasnyk
00004  *  All rights reserved.
00005  *
00006  *  This file is a part of Diana process modelling, simulation and analysis software
00007  *
00008  *  Diana is free software; you can redistribute it and/or modify it
00009  *  under the terms of the GNU General Public License as published
00010  *  by the Free Software Foundation (see accompanying file LICENSE)
00011  * -----------------------------------------------------------------------------
00012  *  $Id: IDianaModel.hpp 9717 2013-09-03 13:16:29Z soldatov $
00013  * -----------------------------------------------------------------------------
00014  *  Description:
00015  */
00016 
00017 #ifndef IDIANA_MODEL_HPP
00018 #define IDIANA_MODEL_HPP
00019 
00020 #include <CapeOpen.hpp>
00021 #include <Diana/IDianaDAESO.hpp>
00022 #include <Diana/IDianaSensDAESO.hpp>
00023 
00024 namespace Diana {
00025 
00027   class IDianaContinuousModel : public Numeric::Solvers::Model::ICapeNumericContinuousModel {
00028   public:
00029 
00033     virtual Diana::IDianaSensDAESO* GetSensESO()
00034         throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadInvOrder, Common::Error::ECapeNoImpl) = 0;
00035 
00040     virtual Diana::IDianaContinuousModel* GetSensitivityModel(const Common::Types::CapeArrayString& _sensParNames,
00041                                                               const Common::Types::CapeArrayString& _sensInitStateNames)
00042       throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadInvOrder,
00043              Common::Error::ECapeNoImpl) = 0;
00044 
00045 
00046 
00051     virtual Diana::IDianaContinuousModel* GetSensitivityModelByIndex(const Common::Types::CapeArrayLong& _sensParIndices,
00052                                                               const Common::Types::CapeArrayLong& _sensInitStateIndices)
00053       throw (Common::Error::ECapeUnknown, Common::Error::ECapeBadInvOrder,
00054              Common::Error::ECapeNoImpl) = 0;
00055 
00056   };
00057 
00058 };
00059 
00060 #endif // IDIANA_MODEL_HPP
00061