Public Member Functions | Static Public Member Functions | Private Attributes
Sundance::LinearProblem Class Reference

List of all members.

Public Member Functions

 LinearProblem ()
 LinearProblem (const Mesh &mesh, const Expr &eqn, const Expr &bc, const Expr &test, const Expr &unk, const Playa::VectorType< double > &vecType)
 LinearProblem (const Mesh &mesh, const Expr &eqn, const Expr &bc, const BlockArray &test, const BlockArray &unk)
 LinearProblem (const Mesh &mesh, const Expr &eqn, const Expr &bc, const Expr &test, const Expr &unk, const Expr &unkParams, const Expr &unkParamVals, const Playa::VectorType< double > &vecType)
 LinearProblem (const Mesh &mesh, const Expr &eqn, const Expr &bc, const BlockArray &test, const BlockArray &unk, const Expr &unkParams, const Expr &unkParamVals)
 LinearProblem (const RCP< Assembler > &assembler)
Expr solve (const LinearSolver< double > &solver) const
SolverState< double > solve (const LinearSolver< double > &solver, Expr &soln) const
Array< Vector< double > > getRHS () const
Vector< double > getSingleRHS () const
LinearOperator< double > getOperator () const
const RCP< DOFMapBase > & rowMap (int blockRow) const
const RCP< DOFMapBase > & colMap (int blockCol) const
const Array< RCP
< DiscreteSpace > > & 
solnSpace () const
const RCP< Set< int > > & bcRows (int blockRow) const
int numBlockRows () const
int numBlockCols () const
void reAssembleProblem () const
Expr formSolutionExpr (const Array< Vector< double > > &vec) const

Static Public Member Functions

static bool & solveFailureIsFatal ()
static bool & dumpBadMatrix ()
static std::string & badMatrixFilename ()
static std::string & badVectorFilename ()

Private Attributes

RCP< Assemblerassembler_
LinearOperator< double > A_
Array< Vector< double > > rhs_
Array< Array< string > > names_
LinearSolveDriver solveDriver_
Expr params_

Detailed Description

LinearProblem encapsulates all information needed to form a discrete linear problem.

Definition at line 60 of file SundanceLinearProblem.hpp.


Constructor & Destructor Documentation

Empty ctor

Definition at line 71 of file SundanceLinearProblem.cpp.

References lpCtorTimer().

LinearProblem::LinearProblem ( const Mesh mesh,
const Expr eqn,
const Expr bc,
const Expr test,
const Expr unk,
const Playa::VectorType< double > &  vecType 
)

Construct with a mesh, equation set, bcs, test and unknown funcs, and a vector type.

Definition at line 81 of file SundanceLinearProblem.cpp.

References assembler_, Sundance::Expr::flattenSpectral(), lpCtorTimer(), names_, Sundance::Expr::size(), and Sundance::toString().

LinearProblem::LinearProblem ( const Mesh mesh,
const Expr eqn,
const Expr bc,
const BlockArray test,
const BlockArray unk 
)

Construct with a mesh, equation set, bcs, and blocks of variables

Definition at line 174 of file SundanceLinearProblem.cpp.

References assembler_, lpCtorTimer(), names_, and Sundance::toString().

LinearProblem::LinearProblem ( const Mesh mesh,
const Expr eqn,
const Expr bc,
const Expr test,
const Expr unk,
const Expr unkParams,
const Expr unkParamVals,
const Playa::VectorType< double > &  vecType 
)

Construct with a mesh, equation set, bcs, test and unknown funcs, parameters, and a vector type.

Definition at line 127 of file SundanceLinearProblem.cpp.

References assembler_, Sundance::Expr::flattenSpectral(), lpCtorTimer(), names_, Sundance::Expr::size(), and Sundance::toString().

LinearProblem::LinearProblem ( const Mesh mesh,
const Expr eqn,
const Expr bc,
const BlockArray test,
const BlockArray unk,
const Expr unkParams,
const Expr unkParamVals 
)

Construct with a mesh, equation set, bcs, parameters, and blocks of variables

Definition at line 233 of file SundanceLinearProblem.cpp.

References assembler_, Sundance::Expr::flattenSpectral(), lpCtorTimer(), names_, and Sundance::toString().

LinearProblem::LinearProblem ( const RCP< Assembler > &  assembler)

Definition at line 290 of file SundanceLinearProblem.cpp.

References lpCtorTimer(), names_, and Teuchos::toString().


Member Function Documentation

static std::string& Sundance::LinearProblem::badMatrixFilename ( ) [inline, static]

Filename for dump of bad matrix

Definition at line 147 of file SundanceLinearProblem.hpp.

static std::string& Sundance::LinearProblem::badVectorFilename ( ) [inline, static]

Filename for dump of bad vector

Definition at line 151 of file SundanceLinearProblem.hpp.

const RCP< Set< int > > & LinearProblem::bcRows ( int  blockRow) const

Return the set of row indices marked as essential boundary conditions

Definition at line 324 of file SundanceLinearProblem.cpp.

References assembler_.

const RCP< DOFMapBase > & LinearProblem::colMap ( int  blockCol) const

Return the map from cells and functions to column indices

Definition at line 315 of file SundanceLinearProblem.cpp.

References assembler_.

static bool& Sundance::LinearProblem::dumpBadMatrix ( ) [inline, static]

Flag indicating whether to write out the matrix and vector after a solve failure

Definition at line 143 of file SundanceLinearProblem.hpp.

Expr LinearProblem::formSolutionExpr ( const Array< Vector< double > > &  vec) const
Array< Vector< double > > LinearProblem::getRHS ( ) const

Return the multivector on the right-hand side of the linear equation

Definition at line 333 of file SundanceLinearProblem.cpp.

References assembler_, rhs_, and SUNDANCE_MSG1.

Referenced by getSingleRHS().

Vector<double> Sundance::LinearProblem::getSingleRHS ( ) const [inline]

Return the vector on the right-hand side of the linear equation

Definition at line 105 of file SundanceLinearProblem.hpp.

References getRHS().

Return the number of block cols in the problem

Definition at line 331 of file SundanceLinearProblem.cpp.

References assembler_.

Return the number of block rows in the problem

Definition at line 328 of file SundanceLinearProblem.cpp.

References assembler_.

with this function we can force the assembler to reassemble the matrix

Definition at line 413 of file SundanceLinearProblem.cpp.

References assembler_.

const RCP< DOFMapBase > & LinearProblem::rowMap ( int  blockRow) const

Return the map from cells and functions to row indices

Definition at line 311 of file SundanceLinearProblem.cpp.

References assembler_.

const Array< RCP< DiscreteSpace > > & LinearProblem::solnSpace ( ) const

Return the discrete space in which solutions live

Definition at line 319 of file SundanceLinearProblem.cpp.

References assembler_.

Referenced by formSolutionExpr(), Sundance::LinearEigenproblem::LinearEigenproblem(), and solve().

Expr LinearProblem::solve ( const LinearSolver< double > &  solver) const

Solve the problem using the specified solver algorithm

Definition at line 352 of file SundanceLinearProblem.cpp.

References A_, assembler_, names_, rhs_, solnSpace(), Sundance::LinearSolveDriver::solve(), solveDriver_, solveFailureIsFatal(), and SUNDANCE_MSG1.

Referenced by main(), Sundance::L2Projector::project(), and Sundance::LPTestBase::solve().

SolverState< double > LinearProblem::solve ( const LinearSolver< double > &  solver,
Expr soln 
) const

Solve the problem, writing the solution into the given function

Definition at line 384 of file SundanceLinearProblem.cpp.

References SUNDANCE_MSG1.

static bool& Sundance::LinearProblem::solveFailureIsFatal ( ) [inline, static]

Flag indicating whether to stop on a solve failure

Definition at line 137 of file SundanceLinearProblem.hpp.

Referenced by solve(), and Sundance::LPTestBase::solve().


Member Data Documentation

LinearOperator<double> Sundance::LinearProblem::A_ [mutable, private]

Definition at line 163 of file SundanceLinearProblem.hpp.

Referenced by getOperator(), and solve().

Array<Array<string> > Sundance::LinearProblem::names_ [private]

Definition at line 169 of file SundanceLinearProblem.hpp.

Referenced by formSolutionExpr(), LinearProblem(), and solve().

Definition at line 175 of file SundanceLinearProblem.hpp.

Array<Vector<double> > Sundance::LinearProblem::rhs_ [mutable, private]

Definition at line 166 of file SundanceLinearProblem.hpp.

Referenced by getOperator(), getRHS(), and solve().

Definition at line 172 of file SundanceLinearProblem.hpp.

Referenced by formSolutionExpr(), and solve().

Site Contact