|
funkalicious 0.1
|
00001 /* 00002 ** getChainPotential_args.h 00003 ** 00004 Copyright (C) 2009 Joseph Pingenot 00005 00006 This program is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU Affero General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU Affero General Public License for more details. 00015 00016 You should have received a copy of the GNU Affero General Public License 00017 along with this program. If not, see <http://www.gnu.org/licenses/>. 00018 00019 ** Made by Johnny Q. Hacker 00020 ** Login <solarion@nathan> 00021 ** 00022 ** Started on Sat Nov 14 19:00:27 2009 Johnny Q. Hacker 00023 ** Last update Sat Nov 14 19:00:27 2009 Johnny Q. Hacker 00024 */ 00025 00026 #ifndef GETCHAINPOTENTIAL_ARGS_H_ 00027 # define GETCHAINPOTENTIAL_ARGS_H_ 00028 00029 #include <gio/gio.h> 00030 #include <glib-2.0/glib.h> 00031 #include <libpostproc/lp_wavefunction.h> 00032 00033 struct args { 00034 GList* wf_list; 00035 GList* center_wf_list; 00036 int N_neighbors[3]; 00037 GList* xslices; 00038 GList* yslices; 00039 GList* zslices; 00040 gboolean sweep_x; 00041 gboolean sweep_y; 00042 gboolean sweep_z; 00043 /*How to pixelize: 00044 *0: linear percentage 00045 *1: normalized log of the percentage 00046 *2: normalized exp of the percentage 00047 */ 00048 int pixel_strategy; 00049 GFile *outfile; 00050 /*This is an int which holds flags showing which coords to invert: 00051 1 = X 00052 2 = Y 00053 4 = Z 00054 */ 00055 int invert_odd; 00056 int* expand_density_boxes; 00057 gboolean save_ascii_values; 00058 /*if _comma is true, use commas instead of tabs for the output file*/ 00059 char sepchar; 00060 gboolean povray; 00061 gboolean use_inhomogeneous_dielectric; 00062 /*in each dimension, is true if we're to add an extra neighbor or false otherwise.*/ 00063 int extra_neighbor[3]; 00064 /*Offset between neighbors, in gridsites, one for each direction*/ 00065 unsigned neighbor_offset[3]; 00066 /*Do we want to save the data from each inhomogeneous iteration?*/ 00067 gboolean save_inhomog_iterations; 00068 }; 00069 00070 /** 00071 *Processes the arguments to process_args 00072 *\param argc argc from main 00073 *\param argv argv from main 00074 *\return NULL if there was an error. Pointer to the args struct if 00075 *success. 00076 */ 00077 struct args* process_args(int argc, char **argv, GError **err); 00078 00079 #endif /* !GETCHAINPOTENTIAL_ARGS_H_ */