1 /** 2 * @ingroup PMGC 3 * @author Tucker Beck [fortran ->c translation], Michael Holst [original] 4 * @brief Guass-Seidel solver 5 * 6 * @attention 7 * @verbatim 8 * 9 * APBS -- Adaptive Poisson-Boltzmann Solver 10 * 11 * Nathan A. Baker (nathan.baker@pnl.gov) 12 * Pacific Northwest National Laboratory 13 * 14 * Additional contributing authors listed in the code documentation. 15 * 16 * Copyright (c) 2010-2014 Battelle Memorial Institute. Developed at the Pacific Northwest National Laboratory, operated by Battelle Memorial Institute, Pacific Northwest Division for the U.S. Department Energy. Portions Copyright (c) 2002-2010, Washington University in St. Louis. Portions Copyright (c) 2002-2010, Nathan A. Baker. Portions Copyright (c) 1999-2002, The Regents of the University of California. Portions Copyright (c) 1995, Michael Holst. 17 * All rights reserved. 18 * 19 * 20 * Redistribution and use in source and binary forms, with or without 21 * modification, are permitted provided that the following conditions are met: 22 * 23 * - Redistributions of source code must retain the above copyright notice, this 24 * list of conditions and the following disclaimer. 25 * 26 * - Redistributions in binary form must reproduce the above copyright notice, 27 * this list of conditions and the following disclaimer in the documentation 28 * and/or other materials provided with the distribution. 29 * 30 * - Neither the name of Washington University in St. Louis nor the names of its 31 * contributors may be used to endorse or promote products derived from this 32 * software without specific prior written permission. 33 * 34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 35 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 36 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 37 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 38 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 39 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 40 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 41 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 42 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 43 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 44 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 45 * 46 * @endverbatim 47 */ 48 49 #ifndef _GSD_H_ 50 #define _GSD_H_ 51 52 #include "apbscfg.h" 53 54 #include "maloc/maloc.h" 55 56 #include "generic/vhal.h" 57 #include "generic/vmatrix.h" 58 #include "pmgc/matvecd.h" 59 60 /** @brief Call the fast diagonal iterative method. 61 * @ingroup PMGC 62 * @author Tucker Beck [C Translation], Michael Holst [Original] 63 * 64 * @note Replaces gsrb from gsd.f 65 */ 66 VEXTERNC void Vgsrb( 67 int *nx, ///< @todo: Doc 68 int *ny, ///< @todo: Doc 69 int *nz, ///< @todo: Doc 70 int *ipc, ///< @todo: Doc 71 double *rpc, ///< @todo: Doc 72 double *ac, ///< @todo: Doc 73 double *cc, ///< @todo: Doc 74 double *fc, ///< @todo: Doc 75 double *x, ///< @todo: Doc 76 double *w1, ///< @todo: Doc 77 double *w2, ///< @todo: Doc 78 double *r, ///< @todo: Doc 79 int *itmax, ///< @todo: Doc 80 int *iters, ///< @todo: Doc 81 double *errtol, ///< @todo: Doc 82 double *omega, ///< @todo: Doc 83 int *iresid, ///< @todo: Doc 84 int *iadjoint ///< @todo: Doc 85 ); 86 87 VEXTERNC void Vgsrb7x( 88 int *nx, ///< @todo: Doc 89 int *ny, ///< @todo: Doc 90 int *nz, ///< @todo: Doc 91 int *ipc, ///< @todo: Doc 92 double *rpc, ///< @todo: Doc 93 double *oC, ///< @todo: Doc 94 double *cc, ///< @todo: Doc 95 double *fc, ///< @todo: Doc 96 double *oE, ///< @todo: Doc 97 double *oN, ///< @todo: Doc 98 double *uC, ///< @todo: Doc 99 double *x, ///< @todo: Doc 100 double *w1, ///< @todo: Doc 101 double *w2, ///< @todo: Doc 102 double *r, ///< @todo: Doc 103 int *itmax, ///< @todo: Doc 104 int *iters, ///< @todo: Doc 105 double *errtol, ///< @todo: Doc 106 double *omega, ///< @todo: Doc 107 int *iresid, ///< @todo: Doc 108 int *iadjoint ///< @todo: Doc 109 ); 110 111 VEXTERNC void Vgsrb27x( 112 int *nx, ///< @todo: Doc 113 int *ny, ///< @todo: Doc 114 int *nz, ///< @todo: Doc 115 int *ipc, ///< @todo: Doc 116 double *rpc, ///< @todo: Doc 117 double *oC, ///< @todo: Doc 118 double *cc, ///< @todo: Doc 119 double *fc, ///< @todo: Doc 120 double *oE, ///< @todo: Doc 121 double *oN, ///< @todo: Doc 122 double *uC, ///< @todo: Doc 123 double *oNE, ///< @todo: Doc 124 double *oNW, ///< @todo: Doc 125 double *uE, ///< @todo: Doc 126 double *uW, ///< @todo: Doc 127 double *uN, ///< @todo: Doc 128 double *uS, ///< @todo: Doc 129 double *uNE, ///< @todo: Doc 130 double *uNW, ///< @todo: Doc 131 double *uSE, ///< @todo: Doc 132 double *uSW, ///< @todo: Doc 133 double *x, ///< @todo: Doc 134 double *w1, ///< @todo: Doc 135 double *w2, ///< @todo: Doc 136 double *r, ///< @todo: Doc 137 int *itmax, ///< @todo: Doc 138 int *iters, ///< @todo: Doc 139 double *errtol, ///< @todo: Doc 140 double *omega, ///< @todo: Doc 141 int *iresid, ///< @todo: Doc 142 int *iadjoint ///< @todo: Doc 143 ); 144 145 146 #endif /* _GSD_H_ */ 147