Actual source code: taolinearsolver.c
1: #include "tao_solver.h" /*I "tao_solver.h" I*/
2: #include taolinearsolver.h
6: /*@C
7: TaoLinearSolverDestroy - Destroys the TaoLinearSolver object.
9: Input Parameter:
10: . TKSP - the linear solver
12: Level: beginner
13: .seealso: TaoLinearSolve()
15: .keywords: linear solver
17: @*/
18: int TaoLinearSolverDestroy( TaoLinearSolver* TKSP){
19: TaoFunctionBegin;
20: if (TKSP){
21: TKSP->rref--;
22: if (TKSP->rref<1) {
23: delete TKSP;
24: }
25: }
26: TaoFunctionReturn(0);
27: }
32: /*@C
33: PreSolve - Prepares a matrix for the linear solve.
35: Input Parameter:
36: . M - the matrix
38: Level: intermediate
39: @*/
40: int TaoLinearSolver::PreSolve(TaoMat* M){
41: TaoFunctionBegin;
42: SETERRQ(56,"Operation not defined");
43: /* TaoFunctionReturn(1); */
44: }
49: int TaoLinearSolver::MinQuadraticTrustRegion(TaoVec*tv,TaoVec*tw,double rr, TaoTruth*tt){
50: TaoFunctionBegin;
51: SETERRQ(56,"Operation not defined");
52: /* TaoFunctionReturn(1); */
53: }
57: /*@C
58: Solve - Finds the solution to A x = b .
60: Input Parameter:
61: . b - the right-hand side
63: Output Parameter:
64: + x - the solution
65: - flag - TAO_TRUE if successful solve, TAO_FALSE otherwise.
67: Level: intermediate
68: @*/
69: int TaoLinearSolver::Solve(TaoVec* b, TaoVec* x, TaoTruth *flag){
70: TaoFunctionBegin;
71: SETERRQ(56,"Operation not defined");
72: /* TaoFunctionReturn(1); */
73: }
77: /*@C
78: GetNumberIterations - Gets the number of iterations used to solve the system.
80: Output Parameter:
81: . iters - the number of iterations
83: Level: intermediate
84: @*/
85: int TaoLinearSolver::GetNumberIterations(int * iters){
86: int info;
87: TaoFunctionBegin;
88: info = PetscLogInfo((0,"TaoLinearSolver::GetNumberIterations() iterations not available.\n")); CHKERRQ(info);
89: TaoFunctionReturn(0);
90: }
94: /*@C
95: SetTolerances - Sets the convergence tolerances for solving the linear system.
97: Input Parameter:
98: + rtol - the relative tolerance
99: . atol - the absolute tolerance
100: . dtol - the divergence tolerance
101: - maxits - the maximum number of iterates
103: Level: intermediate
104: @*/
105: int TaoLinearSolver::SetTolerances(double rtol, double atol, double dtol, int maxits){
106: int info;
107: TaoFunctionBegin;
108: info = PetscLogInfo((0,"TaoLinearSolver::SetTolerances() method not defined. Options ignored\n")); CHKERRQ(info);
109: TaoFunctionReturn(0);
110: }
114: /*@C
115: SetOptions - Sets any relevant options from the command line.
117: Input Parameters: none
118:
119: Level: intermediate
120: @*/
121: int TaoLinearSolver::SetOptions(){
122: int info;
123: TaoFunctionBegin;
124: info = PetscLogInfo((0,"TaoLinearSolver::SetOptions(): method not defined or implemented.\n")); CHKERRQ(info);
125: info = TaoOptionsHead("TaoLinearSolverOptions: Not currently implemented through TAO");CHKERRQ(info);
126: info = TaoOptionsTail();CHKERRQ(info);
127: TaoFunctionReturn(0);
128: }
132: /*@C
133: View - Views the linear solver.
135: Input Parameters: none
136:
137: Level: intermediate
138: @*/
139: int TaoLinearSolver::View(){
140: int info;
141: TaoFunctionBegin;
142: info = PetscLogInfo((0,"TaoLinearSolver::View() method not defined.\n")); CHKERRQ(info);
143: info = TaoPrintStatement(0," TaoLinearSolverView: No information available: \n");CHKERRQ(info);
144: TaoFunctionReturn(0);
145: }