k-dot-p 0.1

oneoff_optimize_1d_argprocess.h++

Go to the documentation of this file.
00001 /*
00002  *oneoff_1d_argprocess: process args for oneoff_1d
00003 
00004     Copyright (C) 2010 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 */
00020 
00021 #include <glib.h>
00022 #include <gio/gio.h>
00023 #include <libmodelxx/function_specification.h++>
00024 
00025 struct file_info {
00026   GString* filename;
00027   GInputStream *instream;
00028 };
00029 
00030 /**mat1(x)mat2(1-x)*/
00031 struct quikmat {
00032   char* mat1;
00033   char* mat2;
00034   double x;
00035 };
00036 
00037 struct args {
00038   GList* filestreams;
00039   char* matdb;
00040   GList* template_parameters;
00041   char* optimizer_material;
00042   struct quikmat mat1;
00043   struct quikmat mat0;
00044   unsigned N_starting_points;
00045   long unsigned seed_value;
00046   unsigned blocksize;
00047   gboolean continuous;
00048   #ifdef HAVE_MPI
00049   gboolean mpi;
00050   double temperature;
00051   double anneal_start;
00052   double anneal_end;
00053   double num_anneal_steps;
00054   unsigned anneal_cycles;
00055   /*Specifies the number of calculation steps per annealing step*/
00056   unsigned calculation_steps_per_annealing_step;
00057   #endif
00058   double minx;
00059   double maxx;
00060   double multiplier;
00061   double stepsize;
00062   double min_stepsize;
00063   unsigned N_blocks;
00064   /*Doubles; the material assignments*/
00065   GList* assignments;
00066   struct ::kdotp::libmodelxx::postprocessing::function_exp *assignment_expr;
00067   /*If set, we do two runs: with field as specified in the input file, and one without any applied field*/
00068   gboolean do_nofield_comparison;
00069 };
00070 
00071 int process_args(int argc, char** argv, struct args* args);
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines