Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ProfileSPDLinDirectSkypackSolver Class Reference

#include <ProfileSPDLinDirectSkypackSolver.h>

Inheritance diagram for ProfileSPDLinDirectSkypackSolver::

ProfileSPDLinSolver LinearSOESolver Solver List of all members.

Public Methods

 ProfileSPDLinDirectSkypackSolver ()
 ProfileSPDLinDirectSkypackSolver (int mCols, int mRows)
virtual ~ProfileSPDLinDirectSkypackSolver ()
virtual int solve (void)
virtual int setSize (void)
 virtual int setLinearSOE(LinearSOE &theSOE) =0;. More...

virtual int setProfileSOE (ProfileSPDLinSOE &theSOE)
int sendSelf (int commitTag, Channel &theChannel)
int recvSelf (int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker)

Detailed Description

A ProfileSPDLinDirectSkypackSolver object can be constructed to solve a ProfileSPDLinSOE object. It does this by direct means using the routines supplied in the SKYPACK library, a library which uses the BLAS levels 1,2 and 3 for the factorization and substitution.

The routines in SKYPACK require a number of work areas: {int block[3]} and {double invD[size]}. In addition, to allow the use of the BLAS 2 and 3, work areas {double rw[mRows x mCols]}, {double tw[mRows x mRows]} and {int index[max(mCols,mRows)]} are created. \

{\bf Interface} \ Constructors \ {ProfileSPDLinDirectSkypackSolver();} \ {ProfileSPDLinDirectSkypackSolver(int mCols, mRows);} \ \ Destructor \ {\form#41ProfileSPDLinDirectSkypackSolver();}\\ \ Public Methods \ {int solve(void);} \ {int setSize(void);} \ {int sendSelf(int commitTag, Channel &theChannel);}\ {int recvSelf(int commitTag, Channel &theChannel, FEM\_ObjectBroker &theBroker);}\

{\bf Constructors} \ {ProfileSPDLinDirectSkypackSolver();} \ A unique class tag (defined in classTags.h\form#24) is passed to the ProfileSPDLinSolver constructor. Sets {mCols} and {mRows} equal to and does not try and allocate any memory for the work arrays.\

{ProfileSPDLinDirectSkypackSolver(int mCols, int mRows);} \ A unique class tag (defined in classTags.h\form#24) is passed to the ProfileSPDLinSolver constructor. Sets {mCols} and {mRows} and allocates space in memory for the work arrays {rw}, {tw} and {index}. If not enough memory is available in memory, {mCols} and {mRows} is set equal to and an error message is printed. \

{\bf Destructor} \ {\form#41ProfileSPDLinDirectSkypackSolver();}\\ Invokes delete on any work areas that have been constructed. \

{\bf Public Member Functions } \ {int solve(void);} \ The solver first copies the B vector into X and then solves the BandSPDLinSOE system. If the matrix has not been factored, the matrix is first factored using the SKYPACK routine {skysf2()}, if {mCols} and {mRows} equal , or {skypf2()}. {skysf2()} is a routine which uses the BLAS level 1 routines, {skypf2()} is a routine which uses BLAS levels 2 and 3. If {skypf2()} has been called, {invD} is set up. Once the matrix has been factored, {skyss()} is called. If the solution is sucessfully obtained, i.e. the {skyss()} routine returns in the INFO argument, is returned, otherwise it prints a warning message and returns INFO. The solve process changes and . \

{int setSize(void);} \ Is responsible for setting the {block} information required by the SKYPACK routines (block[0]=1; block[1]=size, block[2]=1) and for creating space for the {invD} work array. Returns if successfull, otherwise a warning message is printed and a is returned. \

{int sendSelf(int commitTag, Channel &theChannel);} \ Does nothing but return . \

{int recvSelf(int commitTag, Channel &theChannel, FEM\_ObjectBroker &theBroker);} \ Does nothing but return . \

Definition at line 127 of file ProfileSPDLinDirectSkypackSolver.h.


Constructor & Destructor Documentation

ProfileSPDLinDirectSkypackSolver::ProfileSPDLinDirectSkypackSolver ( )
 

Definition at line 51 of file ProfileSPDLinDirectSkypackSolver.cpp.

ProfileSPDLinDirectSkypackSolver::ProfileSPDLinDirectSkypackSolver ( int mCols,
int mRows )
 

Definition at line 59 of file ProfileSPDLinDirectSkypackSolver.cpp.

ProfileSPDLinDirectSkypackSolver::~ProfileSPDLinDirectSkypackSolver ( ) [virtual]
 

Definition at line 85 of file ProfileSPDLinDirectSkypackSolver.cpp.


Member Function Documentation

int ProfileSPDLinDirectSkypackSolver::recvSelf ( int commitTag,
Channel & theChannel,
FEM_ObjectBroker & theBroker )
 

Definition at line 245 of file ProfileSPDLinDirectSkypackSolver.cpp.

int ProfileSPDLinDirectSkypackSolver::sendSelf ( int commitTag,
Channel & theChannel )
 

Definition at line 235 of file ProfileSPDLinDirectSkypackSolver.cpp.

int ProfileSPDLinDirectSkypackSolver::setProfileSOE ( ProfileSPDLinSOE & theSOE ) [virtual]
 

Definition at line 228 of file ProfileSPDLinDirectSkypackSolver.cpp.

int ProfileSPDLinDirectSkypackSolver::setSize ( void ) [virtual]
 

virtual int setLinearSOE(LinearSOE &theSOE) =0;.

Reimplemented from LinearSOESolver.

Definition at line 94 of file ProfileSPDLinDirectSkypackSolver.cpp.

int ProfileSPDLinDirectSkypackSolver::solve ( void ) [virtual]
 

Reimplemented from ProfileSPDLinSolver.

Definition at line 139 of file ProfileSPDLinDirectSkypackSolver.cpp.


The documentation for this class was generated from the following files:
Copyright Contact Us