Diana  0.8.3
IParallelSolver.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$
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