Diana
0.8.3
|
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$ 00013 * ----------------------------------------------------------------------------- 00014 * Description: 00015 */ 00016 00017 00018 00019 #ifndef __IPARALLEL_SOLVER_HPP 00020 #define __IPARALLEL_SOLVER_HPP 00021 00022 #include <CapeOpen.hpp> 00023 00024 class IParallelSolver 00025 { 00026 public: 00027 00028 virtual Numeric::Solvers::Solver::ICapeNumericSolver* AddModel( 00029 Numeric::Solvers::Model::ICapeNumericModel* model, 00030 const Common::Types::CapeString& ModelName ) 00031 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0; 00032 00033 virtual CapeLong FindInitialConditions( const Common::Types::CapeDouble _dStartTime, 00034 const Common::Types::CapeDouble _dEndTime, 00035 const Common::Types::CapeDouble _dInitialStepSize = 0 ) 00036 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0; 00037 00038 virtual void Run( const Common::Types::CapeDouble _dInitialWindowSize, 00039 const Common::Types::CapeDouble _dEndTime , 00040 const Common::Types::CapeDouble _dInitialStepSize = 0 ) 00041 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0; 00042 00043 00044 virtual void ShowInfo() = 0; 00045 virtual Common::Types::CapeArrayString GetAllModelNames() = 0; 00046 virtual Common::Types::CapeArrayString GetAllESONames() = 0; 00047 }; 00048 #endif