1 /******************************************************************************
2  * Copyright 1998-2019 Lawrence Livermore National Security, LLC and other
3  * HYPRE Project Developers. See the top-level COPYRIGHT file for details.
4  *
5  * SPDX-License-Identifier: (Apache-2.0 OR MIT)
6  ******************************************************************************/
7 
8 #include "_hypre_parcsr_ls.h"
9 
10 /*--------------------------------------------------------------------------
11  * HYPRE_SchwarzCreate
12  *--------------------------------------------------------------------------*/
13 
14 HYPRE_Int
HYPRE_SchwarzCreate(HYPRE_Solver * solver)15 HYPRE_SchwarzCreate( HYPRE_Solver *solver)
16 {
17    if (!solver)
18    {
19       hypre_error_in_arg(1);
20       return hypre_error_flag;
21    }
22    *solver = (HYPRE_Solver) hypre_SchwarzCreate( ) ;
23    return hypre_error_flag;
24 }
25 
26 /*--------------------------------------------------------------------------
27  * HYPRE_SchwarzDestroy
28  *--------------------------------------------------------------------------*/
29 
30 HYPRE_Int
HYPRE_SchwarzDestroy(HYPRE_Solver solver)31 HYPRE_SchwarzDestroy( HYPRE_Solver solver )
32 {
33    return( hypre_SchwarzDestroy( (void *) solver ) );
34 }
35 
36 /*--------------------------------------------------------------------------
37  * HYPRE_SchwarzSetup
38  *--------------------------------------------------------------------------*/
39 
40 HYPRE_Int
HYPRE_SchwarzSetup(HYPRE_Solver solver,HYPRE_ParCSRMatrix A,HYPRE_ParVector b,HYPRE_ParVector x)41 HYPRE_SchwarzSetup(HYPRE_Solver solver,
42                    HYPRE_ParCSRMatrix A,
43                    HYPRE_ParVector b,
44                    HYPRE_ParVector x      )
45 {
46    return( hypre_SchwarzSetup( (void *) solver,
47                                (hypre_ParCSRMatrix *) A,
48                                (hypre_ParVector *) b,
49                                (hypre_ParVector *) x ) );
50 }
51 
52 /*--------------------------------------------------------------------------
53  * HYPRE_SchwarzSolve
54  *--------------------------------------------------------------------------*/
55 
56 HYPRE_Int
HYPRE_SchwarzSolve(HYPRE_Solver solver,HYPRE_ParCSRMatrix A,HYPRE_ParVector b,HYPRE_ParVector x)57 HYPRE_SchwarzSolve( HYPRE_Solver solver,
58                     HYPRE_ParCSRMatrix A,
59                     HYPRE_ParVector b,
60                     HYPRE_ParVector x      )
61 {
62 
63 
64    return( hypre_SchwarzSolve( (void *) solver,
65                                (hypre_ParCSRMatrix *) A,
66                                (hypre_ParVector *) b,
67                                (hypre_ParVector *) x ) );
68 }
69 
70 /*--------------------------------------------------------------------------
71  * HYPRE_SchwarzSetVariant
72  *--------------------------------------------------------------------------*/
73 
74 HYPRE_Int
HYPRE_SchwarzSetVariant(HYPRE_Solver solver,HYPRE_Int variant)75 HYPRE_SchwarzSetVariant( HYPRE_Solver solver,
76                          HYPRE_Int    variant )
77 {
78    return( hypre_SchwarzSetVariant( (void *) solver, variant ) );
79 }
80 
81 /*--------------------------------------------------------------------------
82  * HYPRE_SchwarzSetOverlap
83  *--------------------------------------------------------------------------*/
84 
85 HYPRE_Int
HYPRE_SchwarzSetOverlap(HYPRE_Solver solver,HYPRE_Int overlap)86 HYPRE_SchwarzSetOverlap( HYPRE_Solver solver, HYPRE_Int overlap)
87 {
88    return( hypre_SchwarzSetOverlap( (void *) solver, overlap ) );
89 }
90 
91 /*--------------------------------------------------------------------------
92  * HYPRE_SchwarzSetDomainType
93  *--------------------------------------------------------------------------*/
94 
95 HYPRE_Int
HYPRE_SchwarzSetDomainType(HYPRE_Solver solver,HYPRE_Int domain_type)96 HYPRE_SchwarzSetDomainType( HYPRE_Solver solver,
97                             HYPRE_Int    domain_type  )
98 {
99    return( hypre_SchwarzSetDomainType( (void *) solver, domain_type ) );
100 }
101 
102 /*--------------------------------------------------------------------------
103  * HYPRE_SchwarzSetDomainStructure
104  *--------------------------------------------------------------------------*/
105 
106 HYPRE_Int
HYPRE_SchwarzSetDomainStructure(HYPRE_Solver solver,HYPRE_CSRMatrix domain_structure)107 HYPRE_SchwarzSetDomainStructure( HYPRE_Solver solver,
108                                  HYPRE_CSRMatrix domain_structure  )
109 {
110    return( hypre_SchwarzSetDomainStructure(
111               (void *) solver, (hypre_CSRMatrix *) domain_structure ) );
112 }
113 
114 /*--------------------------------------------------------------------------
115  * HYPRE_SchwarzSetNumFunctions
116  *--------------------------------------------------------------------------*/
117 
118 HYPRE_Int
HYPRE_SchwarzSetNumFunctions(HYPRE_Solver solver,HYPRE_Int num_functions)119 HYPRE_SchwarzSetNumFunctions( HYPRE_Solver  solver,
120                               HYPRE_Int     num_functions  )
121 {
122    return( hypre_SchwarzSetNumFunctions( (void *) solver, num_functions ) );
123 }
124 
125 /*--------------------------------------------------------------------------
126  * HYPRE_SchwarzSetNonSymm
127  *--------------------------------------------------------------------------*/
128 
129 HYPRE_Int
HYPRE_SchwarzSetNonSymm(HYPRE_Solver solver,HYPRE_Int use_nonsymm)130 HYPRE_SchwarzSetNonSymm( HYPRE_Solver  solver,
131                          HYPRE_Int     use_nonsymm  )
132 {
133    return( hypre_SchwarzSetNonSymm( (void *) solver, use_nonsymm ));
134 }
135 
136 /*--------------------------------------------------------------------------
137  * HYPRE_SchwarzSetRelaxWeight
138  *--------------------------------------------------------------------------*/
139 
140 HYPRE_Int
HYPRE_SchwarzSetRelaxWeight(HYPRE_Solver solver,HYPRE_Real relax_weight)141 HYPRE_SchwarzSetRelaxWeight( HYPRE_Solver  solver,
142                              HYPRE_Real relax_weight)
143 {
144    return( hypre_SchwarzSetRelaxWeight((void *) solver,relax_weight));
145 }
146 
147 /*--------------------------------------------------------------------------
148  * HYPRE_SchwarzSetDofFunc
149  *--------------------------------------------------------------------------*/
150 
151 HYPRE_Int
HYPRE_SchwarzSetDofFunc(HYPRE_Solver solver,HYPRE_Int * dof_func)152 HYPRE_SchwarzSetDofFunc( HYPRE_Solver  solver,
153                          HYPRE_Int    *dof_func  )
154 {
155    return( hypre_SchwarzSetDofFunc( (void *) solver, dof_func ) );
156 }
157 
158