APBS  3.0.0
smoothd.c
1 
56 #include "smoothd.h"
57 
58 VEXTERNC 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 
98 VEXTERNC 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