@@ -20,6 +20,8 @@ int pEVSL_Start(MPI_Comm comm, pevsl_Data **data) {
20
20
pevsl_data -> Bsol = NULL ;
21
21
pevsl_data -> LTsol = NULL ;
22
22
23
+ pevsl_data -> sigma_mult = 1.0 ;
24
+
23
25
/* Use MPI_COMM_WORLD rank as rand seed,
24
26
* so each proc will have a different seed,
25
27
* cf. parvec.c: pEVSL_ParvecRand */
@@ -41,6 +43,7 @@ int pEVSL_Start(MPI_Comm comm, pevsl_Data **data) {
41
43
*
42
44
* */
43
45
int pEVSL_Finish (pevsl_Data * pevsl_data ) {
46
+
44
47
if (pevsl_data -> Amv ) {
45
48
PEVSL_FREE (pevsl_data -> Amv );
46
49
}
@@ -67,6 +70,7 @@ int pEVSL_Finish(pevsl_Data *pevsl_data) {
67
70
*
68
71
* */
69
72
int pEVSL_SetAParcsr (pevsl_Data * pevsl_data , pevsl_Parcsr * A ) {
73
+
70
74
/* set N */
71
75
pevsl_data -> N = A -> ncol_global ;
72
76
/* set n */
@@ -88,6 +92,7 @@ int pEVSL_SetAParcsr(pevsl_Data *pevsl_data, pevsl_Parcsr *A) {
88
92
*
89
93
* */
90
94
int pEVSL_SetBParcsr (pevsl_Data * pevsl_data , pevsl_Parcsr * B ) {
95
+
91
96
/* set N */
92
97
pevsl_data -> N = B -> ncol_global ;
93
98
/* set n */
@@ -112,6 +117,7 @@ int pEVSL_SetBParcsr(pevsl_Data *pevsl_data, pevsl_Parcsr *B) {
112
117
* @warning if nfirst < 0, nfirst = PEVSL_NOT_DEFINED
113
118
* */
114
119
int pEVSL_SetProbSizes (pevsl_Data * pevsl_data , int N , int n , int nfirst ) {
120
+
115
121
pevsl_data -> N = N ;
116
122
pevsl_data -> n = n ;
117
123
nfirst = nfirst < 0 ? PEVSL_NOT_DEFINED : nfirst ;
@@ -125,6 +131,7 @@ int pEVSL_SetProbSizes(pevsl_Data *pevsl_data, int N, int n, int nfirst) {
125
131
* Save them in pevsl_data
126
132
* */
127
133
int pEVSL_SetAMatvec (pevsl_Data * pevsl_data , MVFunc func , void * data ) {
134
+
128
135
if (!pevsl_data -> Amv ) {
129
136
PEVSL_CALLOC (pevsl_data -> Amv , 1 , pevsl_Matvec );
130
137
}
@@ -140,6 +147,7 @@ int pEVSL_SetAMatvec(pevsl_Data *pevsl_data, MVFunc func, void *data) {
140
147
* Save them in pevsl_data
141
148
* */
142
149
int pEVSL_SetBMatvec (pevsl_Data * pevsl_data , MVFunc func , void * data ) {
150
+
143
151
if (!pevsl_data -> Bmv ) {
144
152
PEVSL_CALLOC (pevsl_data -> Bmv , 1 , pevsl_Matvec );
145
153
}
@@ -153,6 +161,7 @@ int pEVSL_SetBMatvec(pevsl_Data *pevsl_data, MVFunc func, void *data) {
153
161
* @brief Set the solve routine and the associated data for B
154
162
* */
155
163
int pEVSL_SetBSol (pevsl_Data * pevsl_data , SVFunc func , void * data ) {
164
+
156
165
if (!pevsl_data -> Bsol ) {
157
166
PEVSL_CALLOC (pevsl_data -> Bsol , 1 , pevsl_Bsol );
158
167
}
@@ -166,6 +175,7 @@ int pEVSL_SetBSol(pevsl_Data *pevsl_data, SVFunc func, void *data) {
166
175
* @brief Set the solve routine and the associated data for LT
167
176
* */
168
177
int pEVSL_SetLTSol (pevsl_Data * pevsl_data , SVFunc func , void * data ) {
178
+
169
179
if (!pevsl_data -> LTsol ) {
170
180
PEVSL_CALLOC (pevsl_data -> LTsol , 1 , pevsl_Ltsol );
171
181
}
@@ -180,6 +190,7 @@ int pEVSL_SetLTSol(pevsl_Data *pevsl_data, SVFunc func, void *data) {
180
190
*
181
191
* */
182
192
int pEVSL_SetStdEig (pevsl_Data * pevsl_data ) {
193
+
183
194
pevsl_data -> ifGenEv = 0 ;
184
195
185
196
return 0 ;
@@ -190,8 +201,17 @@ int pEVSL_SetStdEig(pevsl_Data *pevsl_data) {
190
201
*
191
202
* */
192
203
int pEVSL_SetGenEig (pevsl_Data * pevsl_data ) {
204
+
193
205
pevsl_data -> ifGenEv = 1 ;
194
206
195
207
return 0 ;
196
208
}
197
209
210
+
211
+ int pEVSL_SetSigmaMult (pevsl_Data * pevsl_data , double mult ) {
212
+
213
+ pevsl_data -> sigma_mult = mult ;
214
+
215
+ return 0 ;
216
+ }
217
+
0 commit comments