Diana  0.8.3
Public Member Functions | Private Member Functions | Private Attributes
CParallelSolver Class Reference

Parallel Solver. More...

#include <ParallelSolver.hpp>

Inheritance diagram for CParallelSolver:
IParallelSolver

List of all members.

Public Member Functions

 CParallelSolver (const Common::Types::CapeString &_szConnectionsFileName)
CapeLong FindInitialConditions (CapeDouble _dStartTime, CapeDouble _dEndTime, CapeDouble _dInitialStepSize=0) throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument)
void Run (CapeDouble _dInitialWindowSize, CapeDouble _dEndTime, CapeDouble _dInitialStepSize=0) throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument)
Numeric::Solvers::Solver::ICapeNumericSolverAddModel (Numeric::Solvers::Model::ICapeNumericModel *_Model, const Common::Types::CapeString &ModelName) throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument)
void ShowInfo ()
Common::Types::CapeArrayString GetAllModelNames ()
Common::Types::CapeArrayString GetAllESONames ()

Private Member Functions

void InitialLoadBalancing () throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument)
void TransmitData ()
void SaveState () throw (Common::Error::ECapeUnknown)
void LoadState () throw (Common::Error::ECapeUnknown)
CapeBoolean CheckConvergence ()
void ReduceError ()
CapeLong MoveNumericObject (CapeLong _nObjectIndex, CapeLong _nSourcePE, CapeLong _nDestinationPE)
CapeDouble CalculateNewWindowSize (CapeLong _lIterationNumber, CapeDouble _dOldWindowSize, CapeBoolean _bWasConverged)
void ShowStat (CapeBoolean _bShowTotal)

Private Attributes

int m_nMyRank
 Rank (index) of current process.
int m_nProcQuantity
CRouter m_Router
 Total processes quantity.
CMemoryManager m_MemoryManager
CapeString m_szConnectionsFileName
 The name of file where saved model connections.
std::vector< CNumericObject * > m_Objects
 vector of objects
CapeArrayBoolean m_ObjectsConvergences
 vector of convergences for each object
CapeArrayLong m_ModelDisplacement
 This array contains indexes of processors where situated objects.
CapeLong m_lVerboseLevel
CapeBoolean m_bNeedToConsistentInitialize
CapeLong m_lErrorStatus

Detailed Description

Parallel Solver.

CParallelEnv.


Member Function Documentation

Method Add Solver to the list of solvers on this processor.

Implements IParallelSolver.

Make initial Load Balancing.

CapeLong MoveNumericObject ( CapeLong  _nObjectIndex,
CapeLong  _nSourcePE,
CapeLong  _nDestinationPE 
) [private]

This function cut numeric object form One PE and move it to another. It return value which indicate the status of operation. (All possible statuses are in ParallelDefines.hpp)

void ReduceError ( ) [private]

Check if there are was error on one of processors

void SaveState ( ) throw (Common::Error::ECapeUnknown) [private]

Two functions which save state of numeric objects and load states. They are using at the begining of the window at the first, second, third ... iteration.

void TransmitData ( ) [private]

Transmit data between all numeric objects.


Member Data Documentation

Memory Manager object (MemoryManager.hpp)

CRouter m_Router [private]

Total processes quantity.

Router object (for detailed information see Router.hpp)


The documentation for this class was generated from the following file: