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

LinearSOE Class Reference

#include <LinearSOE.h>

Inheritance diagram for LinearSOE::

SystemOfEqn MovableObject BandGenLinSOE BandSPDLinSOE FullGenLinSOE ProfileSPDLinSOE SparseGenColLinSOE List of all members.

Public Methods

 LinearSOE (LinearSOESolver &theSolver, int classTag)
virtual ~LinearSOE ()
virtual int solve (void)
virtual int setSize (Graph &theGraph)=0
 pure virtual functions. More...

virtual int getNumEqn (void) const=0
virtual int addA (const Matrix &, const ID &, double fact=1.0)=0
virtual int addB (const Vector &, const ID &, double fact=1.0)=0
virtual int setB (const Vector &, double fact=1.0)=0
virtual void zeroA (void)=0
virtual void zeroB (void)=0
virtual const VectorgetX (void)=0
virtual const VectorgetB (void)=0
virtual double getDeterminant (void)
virtual double normRHS (void)=0
virtual void setX (int loc, double value)=0

Protected Methods

int setSolver (LinearSOESolver &newSolver)
LinearSOESolvergetSolver (void)

Detailed Description

LinearSOE is an abstract class. A LinearSOE object provides an abstraction of a system of linear equations. A linear system of equation of order :

\begin{array}{ccccccccc} a_{0,0}x_0 & + & a_{0,1}x_1 & + & ... & + & a_{0,n-1}x_{n-1} & = & b_0 \ a_{1,0}x_0 & + & a_{1,1}x_1 & + & ... & + & a_{1,n-1}x_{n-1} & = & b_1 \ ... & & ... & & & & ... & & ... \ a_{n-1,0}x_0 & + & a_{n-1,1}x_1 & + & ... & + & a_{n-1,n-1}x_{n-1} & = & b_{n-1} \ \end{array}

can be expressed by the matrix equation , where is a matrix of order X and and are vectors or order . A LinearSOE object is responsible for storing these equations and for providing methods at the interface to set up and obtain the equations. Each LinearSOE object will be associated with a LinearSOESolver object. It is the LinearSOESolver objects that is responsible for solving the linear system of equations. \

Definition at line 84 of file LinearSOE.h.


Constructor & Destructor Documentation

LinearSOE::LinearSOE ( LinearSOESolver & theSolver,
int classTag )
 

The integer {classTag} is passed to the constructor for the SystemOfEqn. The constructor sets sets the pointer for the currently associated LinearSOESolver object to point to {theSolver}.

Definition at line 39 of file LinearSOE.cpp.

LinearSOE::~LinearSOE ( ) [virtual]
 

Does nothing.

Definition at line 45 of file LinearSOE.cpp.


Member Function Documentation

int LinearSOE::addA ( const Matrix & m,
const ID & id,
double fact = 1.0 ) [pure virtual]
 

The LinearSOE object assembles {fact} times the Matrix {M} into the matrix . The Matrix is assembled into at the locations given by the ID object {loc}, i.e. . Numbering in starts at , i.e. C style. If a location specified is outside the range, i.e. the corresponding entry in {M} is not added to . To return if sucessfull, a negative number if not.

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by TransientIntegrator::formTangent(), and IncrementalIntegrator::formTangent().

int LinearSOE::addB ( const Vector & v,
const ID & id,
double fact = 1.0 ) [pure virtual]
 

The LinearSOE object assembles {fact} times the Vector {V} into the vector . The Vector is assembled into at the locations given by the ID object {loc}, i.e. . If a location specified is outside the range, e.g. , the corresponding entry in {V} is not added to . To return if sucessfull, a negative number if not.

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by IncrementalIntegrator::formElementResidual(), and IncrementalIntegrator::formNodalUnbalance().

const Vector & LinearSOE::getB ( void ) [pure virtual]
 

To return as a Vector object the vector . A const reference is returned, meaning the Vector that is returned cannot be modified, i.e. no non-const method can be invoked on the Vector.

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by MinUnbalDispNorm::domainChanged(), DisplacementControl::domainChanged(), ArcLength::domainChanged(), NewtonLineSearch::solveCurrentStep(), Broyden::solveCurrentStep(), BFGS::solveCurrentStep(), CTestNormUnbalance::test(), CTestNormDispIncr::test(), and CTestEnergyIncr::test().

double LinearSOE::getDeterminant ( void ) [virtual]
 

Definition at line 58 of file LinearSOE.cpp.

Referenced by MinUnbalDispNorm::newStep().

int LinearSOE::getNumEqn ( void ) const [pure virtual]
 

A method which returns the number of equations in the system, i.e. the number of unknowns.

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by DomainDecompositionAnalysis::domainChanged(), IncrementalIntegrator::getLastResponse(), KrylovNewton::solveCurrentStep(), Broyden::solveCurrentStep(), and BFGS::solveCurrentStep().

LinearSOESolver * LinearSOE::getSolver ( void ) [protected]
 

Definition at line 73 of file LinearSOE.cpp.

Referenced by SparseGenColLinSOE::setSize(), ProfileSPDLinSOE::setSize(), FullGenLinSOE::setSize(), BandSPDLinSOE::setSize(), and BandGenLinSOE::setSize().

const Vector & LinearSOE::getX ( void ) [pure virtual]
 

To return, as a Vector object, the vector . A const reference is returned, meaning the Vector that is returned cannot be modified, i.e. no non-const method can be invoked on the Vector.

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by Newmark::domainChanged(), HHT::domainChanged(), IncrementalIntegrator::getLastResponse(), MinUnbalDispNorm::newStep(), DisplacementControl::newStep(), ArcLength::newStep(), NewtonRaphson::solveCurrentStep(), NewtonLineSearch::solveCurrentStep(), ModifiedNewton::solveCurrentStep(), Linear::solveCurrentStep(), KrylovNewton::solveCurrentStep(), DomainDecompAlgo::solveCurrentStep(), Broyden::solveCurrentStep(), BFGS::solveCurrentStep(), CTestNormUnbalance::test(), CTestNormDispIncr::test(), CTestEnergyIncr::test(), MinUnbalDispNorm::update(), DisplacementControl::update(), and ArcLength::update().

double LinearSOE::normRHS ( void ) [pure virtual]
 

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

int LinearSOE::setB ( const Vector & v,
double fact = 1.0 ) [pure virtual]
 

The LinearSOE object sets the vector {b} to be {fact} times the Vector {V}. To return if sucessfull, a negative number if not.

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by MinUnbalDispNorm::newStep(), DisplacementControl::newStep(), ArcLength::newStep(), MinUnbalDispNorm::update(), DisplacementControl::update(), and ArcLength::update().

int LinearSOE::setSize ( Graph & theGraph ) [pure virtual]
 

pure virtual functions.

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by StaticAnalysis::domainChanged(), DomainDecompositionAnalysis::domainChanged(), DirectIntegrationAnalysis::domainChanged(), StaticAnalysis::setLinearSOE(), and DirectIntegrationAnalysis::setLinearSOE().

int LinearSOE::setSolver ( LinearSOESolver & newSolver ) [protected]
 

Definition at line 66 of file LinearSOE.cpp.

Referenced by BandGenLinSOE::setBandGenSolver(), BandSPDLinSOE::setBandSPDSolver(), FullGenLinSOE::setFullGenSolver(), ProfileSPDLinSOE::setProfileSPDSolver(), and SparseGenColLinSOE::setSparseGenColSolver().

void LinearSOE::setX ( int loc,
double value ) [pure virtual]
 

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by MinUnbalDispNorm::update(), DisplacementControl::update(), and ArcLength::update().

int LinearSOE::solve ( void ) [virtual]
 

Causes the SystemOfEqn object to invoke {solve()} on the currently associated LinearSOESolver object. Returns a if successful, negative number if not; the actual value depending on the LinearSOESolver. To solve a linear system of equations means to find such that the equation is satisfied.

Reimplemented from SystemOfEqn.

Definition at line 51 of file LinearSOE.cpp.

Referenced by MinUnbalDispNorm::newStep(), DisplacementControl::newStep(), ArcLength::newStep(), NewtonRaphson::solveCurrentStep(), NewtonLineSearch::solveCurrentStep(), ModifiedNewton::solveCurrentStep(), Linear::solveCurrentStep(), KrylovNewton::solveCurrentStep(), Broyden::solveCurrentStep(), BFGS::solveCurrentStep(), MinUnbalDispNorm::update(), DisplacementControl::update(), and ArcLength::update().

void LinearSOE::zeroA ( void ) [pure virtual]
 

To zero the matrix , i.e. set all the components of to .

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by TransientIntegrator::formTangent(), and IncrementalIntegrator::formTangent().

void LinearSOE::zeroB ( void ) [pure virtual]
 

To zero the vector , i.e. set all the components of to .

Reimplemented in BandGenLinSOE, BandSPDLinSOE, FullGenLinSOE, ProfileSPDLinSOE, and SparseGenColLinSOE.

Referenced by IncrementalIntegrator::formUnbalance().


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