APBS 3.0.0
Loading...
Searching...
No Matches
smoothd.c
1
56#include "smoothd.h"
57
58VEXTERNC void Vsmooth(int *nx, int *ny, int *nz,
59 int *ipc, double *rpc,
60 double *ac, double *cc, double *fc,
61 double *x, double *w1, double *w2, double *r,
62 int *itmax, int *iters,
63 double *errtol, double *omega,
64 int *iresid, int *iadjoint, int *meth) {
65
66 // Do in one step
67 if (*meth == 0) {
68 VABORT_MSG0( "wjac not yet translated" );
69 //wjac(nx,ny,nz,ipc,rpc,ac,cc,fc,x,w1,w2,r,itmax,iters,errtol,omega,iresid,iadjoint);
70 } else if (*meth == 1) {
71 Vgsrb(nx, ny, nz,
72 ipc, rpc,
73 ac, cc, fc,
74 x, w1, w2, r,
75 itmax, iters,
76 errtol, omega,
77 iresid, iadjoint);
78 } else if (*meth == 2) {
79 VABORT_MSG0( "sor not yet translated" );
80 //sor(nx,ny,nz,ipc,rpc,ac,cc,fc,x,w1,w2,r,itmax,iters,errtol,omega,iresid,iadjoint);
81 } else if (*meth == 3) {
82 VABORT_MSG0( "rich not yet translated" );
83 //rich(nx,ny,nz,ipc,rpc,ac,cc,fc,x,w1,w2,r,itmax,iters,errtol,omega,iresid,iadjoint);
84 } else if (*meth == 4) {
85 Vcghs(nx, ny, nz,
86 ipc, rpc,
87 ac, cc, fc,
88 x, w1, w2, r,
89 itmax, iters,
90 errtol, omega,
91 iresid, iadjoint);
92 } else {
93 VABORT_MSG1("Bad smoothing routine specified = %d", *meth);
94 }
95}
96
97
98VEXTERNC void Vnsmooth(int *nx, int *ny, int *nz,
99 int *ipc, double *rpc,
100 double *ac, double *cc, double *fc,
101 double *x, double *w1, double *w2, double *r,
102 int *itmax, int *iters,
103 double *errtol, double *omega,
104 int *iresid, int *iadjoint, int *meth) {
105
106 WARN_UNTESTED;
107
108 // Do in one step
109 if (*meth == 0) {
110 VABORT_MSG0( "nwjac not yet translated" );
111 //nwjac(nx,ny,nz,ipc,rpc,ac,cc,fc,x,w1,w2,r,itmax,iters,errtol,omega,iresid,iadjoint)
112 } else if (*meth == 1) {
113 VABORT_MSG0( "ngsrb not yet translated" );
114 //ngsrb(nx,ny,nz,ipc,rpc,ac,cc,fc,x,w1,w2,r,itmax,iters,errtol,omega,iresid,iadjoint)
115 } else if (*meth == 2) {
116 VABORT_MSG0( "nsor not yet translated" );
117 //nsor(nx,ny,nz,ipc,rpc,ac,cc,fc,x,w1,w2,r,itmax,iters,errtol,omega,iresid,iadjoint)
118 } else if (*meth == 3) {
119 VABORT_MSG0( "nrich not yet translated" );
120 //nrich(nx,ny,nz,ipc,rpc,ac,cc,fc,x,w1,w2,r,itmax,iters,errtol,omega,iresid,iadjoint)
121 } else {
122 VABORT_MSG1("Bad smoothing routine specified: %d", *meth );
123 }
124}
VPUBLIC void Vgsrb(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *fc, double *x, double *w1, double *w2, double *r, int *itmax, int *iters, double *errtol, double *omega, int *iresid, int *iadjoint)
Guass-Seidel solver.
Definition gsd.c:57
VEXTERNC void Vnsmooth(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *fc, double *x, double *w1, double *w2, double *r, int *itmax, int *iters, double *errtol, double *omega, int *iresid, int *iadjoint, int *meth)
call the appropriate non-linear smoothing routine.
Definition smoothd.c:98
VPUBLIC void Vcghs(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *fc, double *x, double *p, double *ap, double *r, int *itmax, int *iters, double *errtol, double *omega, int *iresid, int *iadjoint)
A collection of useful low-level routines (timing, etc).
Definition cgd.c:57
VEXTERNC void Vsmooth(int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *fc, double *x, double *w1, double *w2, double *r, int *itmax, int *iters, double *errtol, double *omega, int *iresid, int *iadjoint, int *meth)
Multigrid smoothing functions.
Definition smoothd.c:58