Loading...
Searching...
No Matches
n_parse_options.c
Go to the documentation of this file.
/*****************************************************************************
*
* MODULE: Grass PDE Numerical Library
* AUTHOR(S): Soeren Gebbert, Berlin (GER) Dec 2006
* soerengebbert <at> gmx <dot> de
*
* PURPOSE: standard parser option for the numerical pde library
*
* COPYRIGHT: (C) 2000 by the GRASS Development Team
*
* This program is free software under the GNU General Public
* License (>=v2). Read the file COPYING that comes with GRASS
* for details.
*
*****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <grass/glocale.h>
#include <grass/N_pde.h>
/*!
* \brief Create standardised Option structure related to the gpde library.
*
* This function will create a standardised Option structure
* defined by parameter opt. A list of valid parameters can be found in N_pde.h.
* It allocates memory for the Option structure and returns a pointer to
* this memory (of <i>type struct Option *</i>).<br>
*
* If an invalid parameter was specified an empty Option structure will
* be returned (not NULL).
*
* This function is related to the gpde library, general standard options can be
* found in lib/gis/parser.c. These options are set with
* G_define_standard_option ();
*
* \param[in] opt Type of Option struct to create
* \return Option * Pointer to an Option struct
*
* */
struct Option *N_define_standard_option(int opt)
{
struct Option *Opt;
Opt = G_define_option();
switch (opt) {
/*solver for symmetric, positive definite linear equation systems */
case N_OPT_SOLVER_SYMM:
Opt->key = "solver";
Opt->type = TYPE_STRING;
Opt->required = NO;
Opt->key_desc = "name";
Opt->answer = "cg";
Opt->options = "gauss,lu,cholesky,jacobi,sor,cg,bicgstab,pcg";
Opt->guisection = "Solver";
Opt->description = ("The type of solver which should solve the "
"symmetric linear equation system");
break;
/*solver for unsymmetric linear equation systems */
case N_OPT_SOLVER_UNSYMM:
Opt->key = "solver";
Opt->type = TYPE_STRING;
Opt->required = NO;
Opt->key_desc = "name";
Opt->answer = "bicgstab";
Opt->options = "gauss,lu,jacobi,sor,bicgstab";
Opt->guisection = "Solver";
Opt->description = ("The type of solver which should solve the linear "
"equation system");
break;
case N_OPT_MAX_ITERATIONS:
Opt->key = "maxit";
Opt->type = TYPE_INTEGER;
Opt->required = NO;
Opt->answer = "10000";
Opt->guisection = "Solver";
Opt->description = ("Maximum number of iteration used to solve the "
"linear equation system");
break;
case N_OPT_ITERATION_ERROR:
Opt->key = "error";
Opt->type = TYPE_DOUBLE;
Opt->required = NO;
Opt->answer = "0.000001";
Opt->guisection = "Solver";
Opt->description = ("Error break criteria for iterative solver");
break;
case N_OPT_SOR_VALUE:
Opt->key = "relax";
Opt->type = TYPE_DOUBLE;
Opt->required = NO;
Opt->answer = "1";
Opt->guisection = "Solver";
Opt->description = ("The relaxation parameter used by the jacobi and "
"sor solver for speedup or stabilizing");
break;
case N_OPT_CALC_TIME:
Opt->key = "dtime";
Opt->type = TYPE_DOUBLE;
Opt->required = YES;
Opt->answer = "86400";
Opt->guisection = "Solver";
Opt->description = _("The calculation time in seconds");
break;
}
return Opt;
}
N_OPT_MAX_ITERATIONS
@ N_OPT_MAX_ITERATIONS
Definition N_pde.h:395
N_OPT_SOLVER_UNSYMM
@ N_OPT_SOLVER_UNSYMM
Definition N_pde.h:394
N_OPT_SOLVER_SYMM
@ N_OPT_SOLVER_SYMM
Definition N_pde.h:392
N_OPT_ITERATION_ERROR
@ N_OPT_ITERATION_ERROR
Definition N_pde.h:397
N_OPT_CALC_TIME
@ N_OPT_CALC_TIME
Definition N_pde.h:401
N_OPT_SOR_VALUE
@ N_OPT_SOR_VALUE
Definition N_pde.h:399
N_define_standard_option
struct Option * N_define_standard_option(int opt)
Create standardised Option structure related to the gpde library.
Definition n_parse_options.c:42
G_define_option
struct Option * G_define_option(void)
Initializes an Option struct.
Definition parser.c:210