#include <Solver.h>
Public Types | |
typedef KMAT | matrix_type |
Public Member Functions | |
Solver (KMAT &K, nArray &f) | |
int | NumEquations () const |
virtual int | Solve (nArray &d)=0 |
template<class INDX> | |
int | SolveConstrained (nArray &d, INDX &ifix) |
int | SolveConstrained (nArray &d, iArray &ifix, nArray &ival) |
virtual void | GetReactionForces (const nArray &d, nArray &freac) |
bool | Solved () const |
Protected Member Functions | |
template<class INDX> | |
void | GetReactionMatrix (const INDX &ifix) |
template<class INDX> | |
void | SetConstraintsOnMatrix (const INDX &ifix) |
template<class INDX> | |
void | SetConstraintsOnF (const INDX &ifix) |
template<class INDX> | |
void | SetConstraintsOnF (const INDX &ifix, nArray &ival) |
Protected Attributes | |
KMAT * | Kptr |
nArray * | fptr |
KMAT | Kreac |
Numeric | wt |
bool | solved |
This class is templated so that it can serve for various system matricies
Definition at line 25 of file Solver.h.
int basso::Solver< KMAT >::NumEquations | ( | ) | const [inline] |
returns the number of equations in the system
Definition at line 38 of file Solver.h.
Referenced by basso::Solver< KMAT >::SetConstraintsOnF(), and basso::Solver< KMAT >::SetConstraintsOnMatrix().
virtual int basso::Solver< KMAT >::Solve | ( | nArray & | d | ) | [pure virtual] |
solves the system. The solution is returned in
d | if the solution is succesful zero is returned, if not the unity is returned. |
Implemented in basso::SuperLUSolverCSR.
Referenced by basso::Solver< KMAT >::SolveConstrained().
int basso::Solver< KMAT >::SolveConstrained | ( | nArray & | d, | |
INDX & | ifix | |||
) | [inline] |
Solves the system with the constraints d(ifix)=0
Definition at line 143 of file Solver.h.
References basso::Solver< KMAT >::GetReactionMatrix(), basso::Solver< KMAT >::SetConstraintsOnF(), basso::Solver< KMAT >::SetConstraintsOnMatrix(), and basso::Solver< KMAT >::Solve().
int basso::Solver< KMAT >::SolveConstrained | ( | nArray & | d, | |
iArray & | ifix, | |||
nArray & | ival | |||
) | [inline] |
Solves the system with the constraints d(ifix)=ival
Definition at line 152 of file Solver.h.
References basso::Solver< KMAT >::GetReactionMatrix(), basso::Solver< KMAT >::SetConstraintsOnF(), basso::Solver< KMAT >::SetConstraintsOnMatrix(), and basso::Solver< KMAT >::Solve().
virtual void basso::Solver< KMAT >::GetReactionForces | ( | const nArray & | d, | |
nArray & | freac | |||
) | [inline, virtual] |
bool basso::Solver< KMAT >::Solved | ( | ) | const [inline] |
void basso::Solver< KMAT >::GetReactionMatrix | ( | const INDX & | ifix | ) | [inline, protected] |
Gets the reaction matrix for constraints on ifix
Definition at line 88 of file Solver.h.
References basso::Solver< KMAT >::Kptr, and basso::Solver< KMAT >::Kreac.
Referenced by basso::Solver< KMAT >::SolveConstrained().
void basso::Solver< KMAT >::SetConstraintsOnMatrix | ( | const INDX & | ifix | ) | [inline, protected] |
Modifies the matrix so that the constraints on ifix are imposed
Definition at line 105 of file Solver.h.
References basso::Solver< KMAT >::NumEquations(), and basso::Solver< KMAT >::wt.
Referenced by basso::Solver< KMAT >::SolveConstrained().
void basso::Solver< KMAT >::SetConstraintsOnF | ( | const INDX & | ifix | ) | [inline, protected] |
Modifies the RHS vector so that homogeious constraints on ifix are imposed
Definition at line 123 of file Solver.h.
References basso::Solver< KMAT >::fptr.
Referenced by basso::Solver< KMAT >::SolveConstrained().
void basso::Solver< KMAT >::SetConstraintsOnF | ( | const INDX & | ifix, | |
nArray & | ival | |||
) | [inline, protected] |
Modifies the RHS vector so that inhomogeionus constraints on ifix are imposed
Definition at line 131 of file Solver.h.
References basso::Solver< KMAT >::fptr, basso::Solver< KMAT >::Kptr, basso::Solver< KMAT >::NumEquations(), and basso::Solver< KMAT >::wt.