• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

tools/mesh/value.c

Go to the documentation of this file.
00001 
00054 #include "apbscfg.h"
00055 #include "apbs/apbs.h"  
00056 
00057 VEMBED(rcsid="$Id: value.c 1552 2010-02-10 17:46:27Z yhuang01 $")
00058 
00059 int usage(int rc) {
00060            
00061     char *usage = "\n\n\
00062 ----------------------------------------------------------------------\n\
00063     This driver program reads in data and prints solution information at a\n\
00064     point.  It is invoked as:\n\
00065            value <x> <y> <z> <file.dx>\n\n\
00066     where <x>, <y>, and <z> are points and <file.dx> is an OpenDX-format\n\
00067     file.\n\
00068 ----------------------------------------------------------------------\n\n";
00069 
00070     Vnm_print(2, usage);
00071 
00072     exit(rc);
00073 
00074     return 0;
00075 }
00076 
00077 int main(int argc, char **argv) {
00078            
00079     Vgrid *grid;
00080     int inorm;
00081     char *path;
00082     double pt[3], val, grad[3];
00083            
00084     /* *************** CHECK INVOCATION ******************* */
00085     Vio_start();
00086     Vnm_redirect(1);
00087     Vnm_print(1, "\n");
00088     if (argc != 5) {
00089         Vnm_print(2, "Error -- got %d arguments, expected 5.\n", argc);
00090         usage(2);
00091     }
00092     sscanf(argv[1], "%lf", &(pt[0]));
00093     sscanf(argv[2], "%lf", &(pt[1]));
00094     sscanf(argv[3], "%lf", &(pt[2]));
00095     path = argv[4];
00096            
00097     /* *************** READ DATA ******************* */
00098     Vnm_print(1, "Reading data from %s...\n", path);
00099     grid = Vgrid_ctor(0, 0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, VNULL);
00100     if (!Vgrid_readDX(grid, "FILE", "ASC", VNULL, path)) {
00101         Vnm_print(2, "main:  Problem reading OpenDX-format grid from %s\n",
00102                                               path);
00103         return 2;
00104     }
00105            
00106     /* *************** READ DATA ******************* */
00107     Vnm_print(1, "\nData at (%g, %g, %g):\n", pt[0], pt[1], pt[2]);
00108     if (Vgrid_value(grid, pt, &val)) {
00109         Vnm_print(1, "Value = %1.12E kT/e\n", val);
00110     } else  Vnm_print(1, "Unable to get value.\n");
00111     if (Vgrid_gradient(grid, pt, grad)) {
00112         Vnm_print(1, "Gradient = (%1.12E, %1.12E, %1.12E) kT/e/A\n", 
00113                                               grad[0], grad[1], grad[2]);
00114     } else  Vnm_print(1, "Unable to get gradient.\n");
00115     /* 
00116            if (Vgrid_curvature(grid, pt, 0, &val)) {
00117                       Vnm_print(1, "Reduced maximal curvature = %1.12E kT/e/A/A\n", val);
00118            } else Vnm_print(1, "Unable to get curvature.\n");
00119            if (Vgrid_curvature(grid, pt, 1, &val)) {
00120                       Vnm_print(1, "Mean curvature (Laplace) = %1.12E kT/e/A/A\n", val);
00121            } else Vnm_print(1, "Unable to get curvature.\n");
00122            if (Vgrid_curvature(grid, pt, 2, &val)) {
00123                       Vnm_print(1, "Gauss curvature = %1.12E kT/e/A/A\n", val);
00124            } else Vnm_print(1, "Unable to get curvature.\n");
00125            if (Vgrid_curvature(grid, pt, 3, &val)) {
00126                       Vnm_print(1, "True maximal curvature = %1.12E kT/e/A/A\n", val);
00127            } else Vnm_print(1, "Unable to get curvature.\n");
00128            */
00129            
00130     Vnm_print(1, "\n");
00131     return 0;
00132            
00133 }

Generated on Wed Oct 20 2010 11:12:20 for APBS by  doxygen 1.7.2