APBS 3.0.0
Loading...
Searching...
No Matches
matvecd.h
1
49#ifndef _MATVECD_H_
50#define _MATVECD_H_
51
52#include "apbscfg.h"
53
54#include "generic/vhal.h"
55#include "generic/vmatrix.h"
56#include "pmgc/mikpckd.h"
57#include "pmgc/mypdec.h"
58
66VEXTERNC void Vmatvec(
67 int *nx,
68 int *ny,
69 int *nz,
70 int *ipc,
71 double *rpc,
72 double *ac,
73 double *cc,
74 double *x,
75 double *y
76 );
77
78VEXTERNC void Vmatvec7(
79 int *nx,
80 int *ny,
81 int *nz,
82 int *ipc,
83 double *rpc,
84 double *ac,
85 double *cc,
86 double *x,
87 double *y
88 );
89
90VEXTERNC void Vmatvec7_1s(
91 int *nx,
92 int *ny,
93 int *nz,
94 int *ipc,
95 double *rpc,
96 double *oC,
97 double *cc,
98 double *oE,
99 double *oN,
100 double *uC,
101 double *x,
102 double *y
103 );
104
105
106
107VEXTERNC void Vmatvec27(
108 int *nx,
109 int *ny,
110 int *nz,
111 int *ipc,
112 double *rpc,
113 double *ac,
114 double *cc,
115 double *x,
116 double *y
117 );
118
119VEXTERNC void Vmatvec27_1s(
120 int *nx,
121 int *ny,
122 int *nz,
123 int *ipc,
124 double *rpc,
125 double *oC,
126 double *cc,
127 double *oE,
128 double *oN,
129 double *uC,
130 double *oNE,
131 double *oNW,
132 double *uE,
133 double *uW,
134 double *uN,
135 double *uS,
136 double *uNE,
137 double *uNW,
138 double *uSE,
139 double *uSW,
140 double *x,
141 double *y
142 );
143
144
152VEXTERNC void Vnmatvec(
153 int *nx,
154 int *ny,
155 int *nz,
156 int *ipc,
157 double *rpc,
158 double *ac,
159 double *cc,
160 double *x,
161 double *y,
162 double *w1
163 );
164
165VEXTERNC void Vnmatvec7(
166 int *nx,
167 int *ny,
168 int *nz,
169 int *ipc,
170 double *rpc,
171 double *ac,
172 double *cc,
173 double *x,
174 double *y,
175 double *w1
176 );
177
178VEXTERNC void Vnmatvecd7_1s(
179 int *nx,
180 int *ny,
181 int *nz,
182 int *ipc,
183 double *rpc,
184 double *oC,
185 double *cc,
186 double *oE,
187 double *oN,
188 double *uC,
189 double *x,
190 double *y,
191 double *w1
192 );
193
194VEXTERNC void Vnmatvec27(
195 int *nx,
196 int *ny,
197 int *nz,
198 int *ipc,
199 double *rpc,
200 double *ac,
201 double *cc,
202 double *x,
203 double *y,
204 double *w1
205 );
206
207VEXTERNC void Vnmatvecd27_1s(
208 int *nx,
209 int *ny,
210 int *nz,
211 int *ipc,
212 double *rpc,
213 double *oC,
214 double *cc,
215 double *oE,
216 double *oN,
217 double *uC,
218 double *oNE,
219 double *oNW,
220 double *uE,
221 double *uW,
222 double *uN,
223 double *uS,
224 double *uNE,
225 double *uNW,
226 double *uSE,
227 double *uSW,
228 double *x,
229 double *y,
230 double *w1
231 );
232
233
241VEXTERNC void Vmresid(
242 int *nx,
243 int *ny,
244 int *nz,
245 int *ipc,
246 double *rpc,
247 double *ac,
248 double *cc,
249 double *fc,
250 double *x,
251 double *r
252 );
253
254VEXTERNC void Vmresid7(
255 int *nx,
256 int *ny,
257 int *nz,
258 int *ipc,
259 double *rpc,
260 double *ac,
261 double *cc,
262 double *fc,
263 double *x,
264 double *r
265 );
266
267VEXTERNC void Vmresid7_1s(
268 int *nx,
269 int *ny,
270 int *nz,
271 int *ipc,
272 double *rpc,
273 double *oC,
274 double *cc,
275 double *fc,
276 double *oE,
277 double *oN,
278 double *uC,
279 double *x,
280 double *r
281 );
282
283VEXTERNC void Vmresid27(
284 int *nx,
285 int *ny,
286 int *nz,
287 int *ipc,
288 double *rpc,
289 double *ac,
290 double *cc,
291 double *fc,
292 double *x,
293 double *r
294 );
295
296VEXTERNC void Vmresid27_1s(
297 int *nx,
298 int *ny,
299 int *nz,
300 int *ipc,
301 double *rpc,
302 double *oC,
303 double *cc,
304 double *fc,
305 double *oE,
306 double *oN,
307 double *uC,
308 double *oNE,
309 double *oNW,
310 double *uE,
311 double *uW,
312 double *uN,
313 double *uS,
314 double *uNE,
315 double *uNW,
316 double *uSE,
317 double *uSW,
318 double *x,
319 double *r
320 );
321
322
323
331VEXTERNC void Vnmresid(
332 int *nx,
333 int *ny,
334 int *nz,
335 int *ipc,
336 double *rpc,
337 double *ac,
338 double *cc,
339 double *fc,
340 double *x,
341 double *r,
342 double *w1
343 );
344
345VEXTERNC void Vnmresid7(
346 int *nx,
347 int *ny,
348 int *nz,
349 int *ipc,
350 double *rpc,
351 double *ac,
352 double *cc,
353 double *fc,
354 double *x,
355 double *r,
356 double *w1
357 );
358
359VEXTERNC void Vnmresid7_1s(
360 int *nx,
361 int *ny,
362 int *nz,
363 int *ipc,
364 double *rpc,
365 double *oC,
366 double *cc,
367 double *fc,
368 double *oE,
369 double *oN,
370 double *uC,
371 double *x,
372 double *r,
373 double *w1
374 );
375
376VEXTERNC void Vnmresid27(
377 int *nx,
378 int *ny,
379 int *nz,
380 int *ipc,
381 double *rpc,
382 double *ac,
383 double *cc,
384 double *fc,
385 double *x,
386 double *r,
387 double *w1
388 );
389
390VEXTERNC void Vnmresid27_1s(
391 int *nx,
392 int *ny,
393 int *nz,
394 int *ipc,
395 double *rpc,
396 double *oC,
397 double *cc,
398 double *fc,
399 double *oE,
400 double *oN,
401 double *uC,
402 double *oNE,
403 double *oNW,
404 double *uE,
405 double *uW,
406 double *uN,
407 double *uS,
408 double *uNE,
409 double *uNW,
410 double *uSE,
411 double *uSW,
412 double *x,
413 double *r,
414 double *w1
415 );
416
417
418
425VEXTERNC void Vrestrc(
426 int *nxf,
427 int *nyf,
428 int *nzf,
429 int *nxc,
430 int *nyc,
431 int *nzc,
432 double *xin,
433 double *xout,
434 double *pc
435 );
436
437VEXTERNC void Vrestrc2(
438 int *nxf,
439 int *nyf,
440 int *nzf,
441 int *nxc,
442 int *nyc,
443 int *nzc,
444 double *xin,
445 double *xout,
446 double *oPC,
447 double *oPN,
448 double *oPS,
449 double *oPE,
450 double *oPW,
451 double *oPNE,
452 double *oPNW,
453 double *oPSE,
454 double *oPSW,
455 double *uPC,
456 double *uPN,
457 double *uPS,
458 double *uPE,
459 double *uPW,
460 double *uPNE,
461 double *uPNW,
462 double *uPSE,
463 double *uPSW,
464 double *dPC,
465 double *dPN,
466 double *dPS,
467 double *dPE,
468 double *dPW,
469 double *dPNE,
470 double *dPNW,
471 double *dPSE,
472 double *dPSW
473 );
474
481VEXTERNC void VinterpPMG(
482 int *nxc,
483 int *nyc,
484 int *nzc,
485 int *nxf,
486 int *nyf,
487 int *nzf,
488 double *xin,
489 double *xout,
490 double *pc
491 );
492
493VEXTERNC void VinterpPMG2(
494 int *nxc,
495 int *nyc,
496 int *nzc,
497 int *nxf,
498 int *nyf,
499 int *nzf,
500 double *xin,
501 double *xout,
502 double *oPC,
503 double *oPN,
504 double *oPS,
505 double *oPE,
506 double *oPW,
507 double *oPNE,
508 double *oPNW,
509 double *oPSE,
510 double *oPSW,
511 double *uPC,
512 double *uPN,
513 double *uPS,
514 double *uPE,
515 double *uPW,
516 double *uPNE,
517 double *uPNW,
518 double *uPSE,
519 double *uPSW,
520 double *dPC,
521 double *dPN,
522 double *dPS,
523 double *dPE,
524 double *dPW,
525 double *dPNE,
526 double *dPNW,
527 double *dPSE,
528 double *dPSW
529 );
530
537VEXTERNC void Vextrac(
538 int *nxf,
539 int *nyf,
540 int *nzf,
541 int *nxc,
542 int *ny,
543 int *nzc,
544 double *xin,
545 double *xout
546 );
547
548#endif /* _MATVECD_H_ */
VPUBLIC void Vmatvec(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *x, double *y)
Matrix-vector multiplication routines.
Definition matvecd.c:57
VEXTERNC void VinterpPMG(int *nxc, int *nyc, int *nzc, int *nxf, int *nyf, int *nzf, double *xin, double *xout, double *pc)
Apply the prolongation operator.
Definition matvecd.c:915
VEXTERNC void Vmresid(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *fc, double *x, double *r)
Break the matrix data-structure into diagonals and then call the residual routine.
Definition matvecd.c:426
VEXTERNC void Vnmresid(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *fc, double *x, double *r, double *w1)
Break the matrix data-structure into diagonals and then call the residual routine.
Definition matvecd.c:598
VEXTERNC void Vrestrc(int *nxf, int *nyf, int *nzf, int *nxc, int *nyc, int *nzc, double *xin, double *xout, double *pc)
Apply the restriction operator.
Definition matvecd.c:782
VEXTERNC void Vextrac(int *nxf, int *nyf, int *nzf, int *nxc, int *ny, int *nzc, double *xin, double *xout)
Simple injection of a fine grid function into coarse grid.
Definition matvecd.c:1078
VEXTERNC void Vnmatvec(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *x, double *y, double *w1)
Break the matrix data-structure into diagonals and then call the matrix-vector routine.
Definition matvecd.c:232
Contains generic macro definitions for APBS.
Contains inclusions for matrix data wrappers.