source: CIVL/examples/mpi-omp/AMG2013/krylov/HYPRE_gmres.c

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 9.5 KB
Line 
1/*BHEADER**********************************************************************
2 * Copyright (c) 2008, Lawrence Livermore National Security, LLC.
3 * Produced at the Lawrence Livermore National Laboratory.
4 * This file is part of HYPRE. See file COPYRIGHT for details.
5 *
6 * HYPRE is free software; you can redistribute it and/or modify it under the
7 * terms of the GNU Lesser General Public License (as published by the Free
8 * Software Foundation) version 2.1 dated February 1999.
9 *
10 * $Revision: 2.4 $
11 ***********************************************************************EHEADER*/
12
13
14
15
16/******************************************************************************
17 *
18 * HYPRE_GMRES interface
19 *
20 *****************************************************************************/
21#include "krylov.h"
22
23/*--------------------------------------------------------------------------
24 * HYPRE_GMRESDestroy
25 *--------------------------------------------------------------------------*/
26/* to do, not trivial */
27/*
28int
29HYPRE_ParCSRGMRESDestroy( HYPRE_Solver solver )
30{
31 return( hypre_GMRESDestroy( (void *) solver ) );
32}
33*/
34
35/*--------------------------------------------------------------------------
36 * HYPRE_GMRESSetup
37 *--------------------------------------------------------------------------*/
38
39int
40HYPRE_GMRESSetup( HYPRE_Solver solver,
41 HYPRE_Matrix A,
42 HYPRE_Vector b,
43 HYPRE_Vector x )
44{
45 return( hypre_GMRESSetup( solver,
46 A,
47 b,
48 x ) );
49}
50
51/*--------------------------------------------------------------------------
52 * HYPRE_GMRESSolve
53 *--------------------------------------------------------------------------*/
54
55int
56HYPRE_GMRESSolve( HYPRE_Solver solver,
57 HYPRE_Matrix A,
58 HYPRE_Vector b,
59 HYPRE_Vector x )
60{
61 return( hypre_GMRESSolve( solver,
62 A,
63 b,
64 x ) );
65}
66
67/*--------------------------------------------------------------------------
68 * HYPRE_GMRESSetKDim, HYPRE_GMRESGetKDim
69 *--------------------------------------------------------------------------*/
70
71int
72HYPRE_GMRESSetKDim( HYPRE_Solver solver,
73 int k_dim )
74{
75 return( hypre_GMRESSetKDim( (void *) solver, k_dim ) );
76}
77
78int
79HYPRE_GMRESGetKDim( HYPRE_Solver solver,
80 int * k_dim )
81{
82 return( hypre_GMRESGetKDim( (void *) solver, k_dim ) );
83}
84
85/*--------------------------------------------------------------------------
86 * HYPRE_GMRESSetTol, HYPRE_GMRESGetTol
87 *--------------------------------------------------------------------------*/
88
89int
90HYPRE_GMRESSetTol( HYPRE_Solver solver,
91 double tol )
92{
93 return( hypre_GMRESSetTol( (void *) solver, tol ) );
94}
95
96int
97HYPRE_GMRESGetTol( HYPRE_Solver solver,
98 double * tol )
99{
100 return( hypre_GMRESGetTol( (void *) solver, tol ) );
101}
102
103/*--------------------------------------------------------------------------
104 * HYPRE_GMRESSetConvergenceFactorTol, HYPRE_GMRESGetConvergenceFactorTol
105 *--------------------------------------------------------------------------*/
106
107int
108HYPRE_GMRESSetConvergenceFactorTol( HYPRE_Solver solver,
109 double cf_tol )
110{
111 return( hypre_GMRESSetConvergenceFactorTol( (void *) solver, cf_tol ) );
112}
113
114int
115HYPRE_GMRESGetConvergenceFactorTol( HYPRE_Solver solver,
116 double * cf_tol )
117{
118 return( hypre_GMRESGetConvergenceFactorTol( (void *) solver, cf_tol ) );
119}
120
121/*--------------------------------------------------------------------------
122 * HYPRE_GMRESSetMinIter, HYPRE_GMRESGetMinIter
123 *--------------------------------------------------------------------------*/
124
125int
126HYPRE_GMRESSetMinIter( HYPRE_Solver solver,
127 int min_iter )
128{
129 return( hypre_GMRESSetMinIter( (void *) solver, min_iter ) );
130}
131
132int
133HYPRE_GMRESGetMinIter( HYPRE_Solver solver,
134 int * min_iter )
135{
136 return( hypre_GMRESGetMinIter( (void *) solver, min_iter ) );
137}
138
139/*--------------------------------------------------------------------------
140 * HYPRE_GMRESSetMaxIter, HYPRE_GMRESGetMaxIter
141 *--------------------------------------------------------------------------*/
142
143int
144HYPRE_GMRESSetMaxIter( HYPRE_Solver solver,
145 int max_iter )
146{
147 return( hypre_GMRESSetMaxIter( (void *) solver, max_iter ) );
148}
149
150int
151HYPRE_GMRESGetMaxIter( HYPRE_Solver solver,
152 int * max_iter )
153{
154 return( hypre_GMRESGetMaxIter( (void *) solver, max_iter ) );
155}
156
157/*--------------------------------------------------------------------------
158 * HYPRE_GMRESSetStopCrit, HYPRE_GMRESGetStopCrit
159 *--------------------------------------------------------------------------*/
160
161int
162HYPRE_GMRESSetStopCrit( HYPRE_Solver solver,
163 int stop_crit )
164{
165 return( hypre_GMRESSetStopCrit( (void *) solver, stop_crit ) );
166}
167
168int
169HYPRE_GMRESGetStopCrit( HYPRE_Solver solver,
170 int * stop_crit )
171{
172 return( hypre_GMRESGetStopCrit( (void *) solver, stop_crit ) );
173}
174
175/*--------------------------------------------------------------------------
176 * HYPRE_GMRESSetRelChange, HYPRE_GMRESGetRelChange
177 *--------------------------------------------------------------------------*/
178
179int
180HYPRE_GMRESSetRelChange( HYPRE_Solver solver,
181 int rel_change )
182{
183 return( hypre_GMRESSetRelChange( (void *) solver, rel_change ) );
184}
185
186int
187HYPRE_GMRESGetRelChange( HYPRE_Solver solver,
188 int * rel_change )
189{
190 return( hypre_GMRESGetRelChange( (void *) solver, rel_change ) );
191}
192
193/*--------------------------------------------------------------------------
194 * HYPRE_GMRESSetPrecond
195 *--------------------------------------------------------------------------*/
196
197int
198HYPRE_GMRESSetPrecond( HYPRE_Solver solver,
199 HYPRE_PtrToSolverFcn precond,
200 HYPRE_PtrToSolverFcn precond_setup,
201 HYPRE_Solver precond_solver )
202{
203 return( hypre_GMRESSetPrecond( (void *) solver,
204 (int (*)(void *, void *, void *, void *))precond, (int (*)(void *, void *, void *, void *))precond_setup,
205 (void *) precond_solver ) );
206}
207
208/*--------------------------------------------------------------------------
209 * HYPRE_GMRESGetPrecond
210 *--------------------------------------------------------------------------*/
211
212int
213HYPRE_GMRESGetPrecond( HYPRE_Solver solver,
214 HYPRE_Solver *precond_data_ptr )
215{
216 return( hypre_GMRESGetPrecond( (void *) solver,
217 (HYPRE_Solver *) precond_data_ptr ) );
218}
219
220/*--------------------------------------------------------------------------
221 * HYPRE_GMRESSetPrintLevel, HYPRE_GMRESGetPrintLevel
222 *--------------------------------------------------------------------------*/
223
224int
225HYPRE_GMRESSetPrintLevel( HYPRE_Solver solver,
226 int level )
227{
228 return( hypre_GMRESSetPrintLevel( (void *) solver, level ) );
229}
230
231int
232HYPRE_GMRESGetPrintLevel( HYPRE_Solver solver,
233 int * level )
234{
235 return( hypre_GMRESGetPrintLevel( (void *) solver, level ) );
236}
237
238/*--------------------------------------------------------------------------
239 * HYPRE_GMRESSetLogging, HYPRE_GMRESGetLogging
240 *--------------------------------------------------------------------------*/
241
242int
243HYPRE_GMRESSetLogging( HYPRE_Solver solver,
244 int level )
245{
246 return( hypre_GMRESSetLogging( (void *) solver, level ) );
247}
248
249int
250HYPRE_GMRESGetLogging( HYPRE_Solver solver,
251 int * level )
252{
253 return( hypre_GMRESGetLogging( (void *) solver, level ) );
254}
255
256/*--------------------------------------------------------------------------
257 * HYPRE_GMRESGetNumIterations
258 *--------------------------------------------------------------------------*/
259
260int
261HYPRE_GMRESGetNumIterations( HYPRE_Solver solver,
262 int *num_iterations )
263{
264 return( hypre_GMRESGetNumIterations( (void *) solver, num_iterations ) );
265}
266
267/*--------------------------------------------------------------------------
268 * HYPRE_GMRESGetConverged
269 *--------------------------------------------------------------------------*/
270
271int
272HYPRE_GMRESGetConverged( HYPRE_Solver solver,
273 int *converged )
274{
275 return( hypre_GMRESGetConverged( (void *) solver, converged ) );
276}
277
278/*--------------------------------------------------------------------------
279 * HYPRE_GMRESGetFinalRelativeResidualNorm
280 *--------------------------------------------------------------------------*/
281
282int
283HYPRE_GMRESGetFinalRelativeResidualNorm( HYPRE_Solver solver,
284 double *norm )
285{
286 return( hypre_GMRESGetFinalRelativeResidualNorm( (void *) solver, norm ) );
287}
288
289/*--------------------------------------------------------------------------
290 * HYPRE_GMRESGetResidual
291 *--------------------------------------------------------------------------*/
292
293int HYPRE_GMRESGetResidual( HYPRE_Solver solver, void **residual )
294{
295 /* returns a pointer to the residual vector */
296 return hypre_GMRESGetResidual( (void *) solver, residual );
297}
298
Note: See TracBrowser for help on using the repository browser.