/*
*
* This file is part of the Virtual Leaf.
*
* VirtualLeaf is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* VirtualLeaf is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the Virtual Leaf. If not, see .
*
* Copyright 2010 Roeland Merks.
*
*/
// WARNING: This file is automatically generated by make_parameter_source.pl.
// Do not edit. All edits will be discarded.
#include "parameter.h"
#include
#include
#include
#include
#include
#include
#include "output.h"
#include "parse.h"
#include "xmlwrite.h"
#include "warning.h"
#include
#include
#include
using namespace std;
static const std::string _module_id("$Id$");
Parameter::Parameter() {
arrowcolor = strdup("white");
arrowsize = 100;
textcolor = strdup("red");
cellnumsize = 1;
nodenumsize = 1;
node_mag = 1.0;
outlinewidth = 1.0;
cell_outline_color = strdup("forestgreen");
resize_stride = 0;
T = 1.0;
lambda_length = 100.;
lambda_celllength = 0.;
target_length = 60.;
cell_expansion_rate = 1.;
cell_div_expansion_rate = 0.;
auxin_dependent_growth = true;
ode_accuracy = 1e-4;
mc_stepsize = 0.4;
mc_cell_stepsize = 0.2;
energy_threshold = 1000.;
bend_lambda = 0.;
alignment_lambda = 0.;
rel_cell_div_threshold = 2.;
rel_perimeter_stiffness = 2;
collapse_node_threshold = 0.05;
morphogen_div_threshold = 0.2;
morphogen_expansion_threshold = 0.01;
copy_wall = true;
source = 0.;
D = new double[15];
D[0] = 0.;
D[1] = 0.0;
D[2] = 0.0;
D[3] = 0.;
D[4] = 0.;
D[5] = 0.;
D[6] = 0.;
D[7] = 0.;
D[8] = 0.;
D[9] = 0.;
D[10] = 0.;
D[11] = 0.;
D[12] = 0.;
D[13] = 0.;
D[14] = 0.;
initval = new double[15];
initval[0] = 0.;
initval[1] = 0.;
initval[2] = 0.;
initval[3] = 0.;
initval[4] = 0.;
initval[5] = 0.;
initval[6] = 0.;
initval[7] = 0.;
initval[8] = 0.;
initval[9] = 0.;
initval[10] = 0.;
initval[11] = 0.;
initval[12] = 0.;
initval[13] = 0.;
initval[14] = 0.;
k1 = 1.;
k2 = 0.3;
r = 1.;
kr = 1.;
km = 1.;
Pi_tot = 1.;
transport = 0.036;
ka = 1;
pin_prod = 0.001;
pin_prod_in_epidermis = 0.1;
pin_breakdown = 0.001;
pin_breakdown_internal = 0.001;
aux1prod = 0.001;
aux1prodmeso = 0.;
aux1decay = 0.001;
aux1decaymeso = 0.1;
aux1transport = 0.036;
aux_cons = 0.;
aux_breakdown = 0.;
kaux1 = 1;
kap = 1;
leaf_tip_source = 0.001;
sam_efflux = 0.0001;
sam_auxin = 10.;
sam_auxin_breakdown = 0;
van3prod = 0.002;
van3autokat = 0.1;
van3sat = 10;
k2van3 = 0.3;
dt = 0.1;
rd_dt = 1.0;
datadir = strdup(".");
datadir = AppendHomeDirIfPathRelative(datadir);
movie = false;
nit = 100000;
maxt = 1000.;
storage_stride = 10;
xml_storage_stride = 500;
rseed = -1;
constituous_expansion_limit = 16;
vessel_inh_level = 1;
vessel_expansion_rate = 0.25;
d = 0.;
e = 0.;
f = 0.;
c = 0.;
mu = 0.;
nu = 0.;
rho0 = 0.;
rho1 = 0.;
c0 = 0.;
gamma = 0.;
eps = 0.;
k = new double[15];
k[0] = 0.;
k[1] = 0.0;
k[2] = 0.0;
k[3] = 0.;
k[4] = 0.;
k[5] = 0.;
k[6] = 0.;
k[7] = 0.;
k[8] = 0.;
k[9] = 0.;
k[10] = 0.;
k[11] = 0.;
k[12] = 0.;
k[13] = 0.;
k[14] = 0.;
i1 = 0;
i2 = 0;
i3 = 0;
i4 = 0;
i5 = 0;
s1 = strdup("");
s2 = strdup("");
s3 = strdup("");
b1 = false;
b2 = false;
b3 = false;
b4 = false;
dir1 = strdup(".");
dir2 = strdup(".");
export_interval = 0;
export_fn_prefix = strdup("cell.");
}
Parameter::~Parameter() {
// destruct parameter object
// free string parameter
CleanUp();
}
void Parameter::CleanUp(void) {
if (arrowcolor)
free(arrowcolor);
if (textcolor)
free(textcolor);
if (cell_outline_color)
free(cell_outline_color);
if (D)
free(D);
if (initval)
free(initval);
if (datadir)
free(datadir);
if (k)
free(k);
if (s1)
free(s1);
if (s2)
free(s2);
if (s3)
free(s3);
if (dir1)
free(dir1);
if (dir2)
free(dir2);
if (export_fn_prefix)
free(export_fn_prefix);
}
void Parameter::Read(const char *filename) {
static bool ReadP=false;
if (ReadP) {
//throw "Run Time Error in parameter.cpp: Please Read parameter file only once!!";
CleanUp();
} else
ReadP=true;
FILE *fp=OpenReadFile(filename);
arrowcolor = sgetpar(fp, "arrowcolor", "white", true);
arrowsize = fgetpar(fp, "arrowsize", 100, true);
textcolor = sgetpar(fp, "textcolor", "red", true);
cellnumsize = igetpar(fp, "cellnumsize", 1, true);
nodenumsize = igetpar(fp, "nodenumsize", 1, true);
node_mag = fgetpar(fp, "node_mag", 1.0, true);
outlinewidth = fgetpar(fp, "outlinewidth", 1.0, true);
cell_outline_color = sgetpar(fp, "cell_outline_color", "forestgreen", true);
resize_stride = igetpar(fp, "resize_stride", 0, true);
T = fgetpar(fp, "T", 1.0, true);
lambda_length = fgetpar(fp, "lambda_length", 100., true);
lambda_celllength = fgetpar(fp, "lambda_celllength", 0., true);
target_length = fgetpar(fp, "target_length", 60., true);
cell_expansion_rate = fgetpar(fp, "cell_expansion_rate", 1., true);
cell_div_expansion_rate = fgetpar(fp, "cell_div_expansion_rate", 0., true);
auxin_dependent_growth = bgetpar(fp, "auxin_dependent_growth", true, true);
ode_accuracy = fgetpar(fp, "ode_accuracy", 1e-4, true);
mc_stepsize = fgetpar(fp, "mc_stepsize", 0.4, true);
mc_cell_stepsize = fgetpar(fp, "mc_cell_stepsize", 0.2, true);
energy_threshold = fgetpar(fp, "energy_threshold", 1000., true);
bend_lambda = fgetpar(fp, "bend_lambda", 0., true);
alignment_lambda = fgetpar(fp, "alignment_lambda", 0., true);
rel_cell_div_threshold = fgetpar(fp, "rel_cell_div_threshold", 2., true);
rel_perimeter_stiffness = fgetpar(fp, "rel_perimeter_stiffness", 2, true);
collapse_node_threshold = fgetpar(fp, "collapse_node_threshold", 0.05, true);
morphogen_div_threshold = fgetpar(fp, "morphogen_div_threshold", 0.2, true);
morphogen_expansion_threshold = fgetpar(fp, "morphogen_expansion_threshold", 0.01, true);
copy_wall = bgetpar(fp, "copy_wall", true, true);
source = fgetpar(fp, "source", 0., true);
D = dgetparlist(fp, "D", 15, true);
initval = dgetparlist(fp, "initval", 15, true);
k1 = fgetpar(fp, "k1", 1., true);
k2 = fgetpar(fp, "k2", 0.3, true);
r = fgetpar(fp, "r", 1., true);
kr = fgetpar(fp, "kr", 1., true);
km = fgetpar(fp, "km", 1., true);
Pi_tot = fgetpar(fp, "Pi_tot", 1., true);
transport = fgetpar(fp, "transport", 0.036, true);
ka = fgetpar(fp, "ka", 1, true);
pin_prod = fgetpar(fp, "pin_prod", 0.001, true);
pin_prod_in_epidermis = fgetpar(fp, "pin_prod_in_epidermis", 0.1, true);
pin_breakdown = fgetpar(fp, "pin_breakdown", 0.001, true);
pin_breakdown_internal = fgetpar(fp, "pin_breakdown_internal", 0.001, true);
aux1prod = fgetpar(fp, "aux1prod", 0.001, true);
aux1prodmeso = fgetpar(fp, "aux1prodmeso", 0., true);
aux1decay = fgetpar(fp, "aux1decay", 0.001, true);
aux1decaymeso = fgetpar(fp, "aux1decaymeso", 0.1, true);
aux1transport = fgetpar(fp, "aux1transport", 0.036, true);
aux_cons = fgetpar(fp, "aux_cons", 0., true);
aux_breakdown = fgetpar(fp, "aux_breakdown", 0., true);
kaux1 = fgetpar(fp, "kaux1", 1, true);
kap = fgetpar(fp, "kap", 1, true);
leaf_tip_source = fgetpar(fp, "leaf_tip_source", 0.001, true);
sam_efflux = fgetpar(fp, "sam_efflux", 0.0001, true);
sam_auxin = fgetpar(fp, "sam_auxin", 10., true);
sam_auxin_breakdown = fgetpar(fp, "sam_auxin_breakdown", 0, true);
van3prod = fgetpar(fp, "van3prod", 0.002, true);
van3autokat = fgetpar(fp, "van3autokat", 0.1, true);
van3sat = fgetpar(fp, "van3sat", 10, true);
k2van3 = fgetpar(fp, "k2van3", 0.3, true);
dt = fgetpar(fp, "dt", 0.1, true);
rd_dt = fgetpar(fp, "rd_dt", 1.0, true);
datadir = sgetpar(fp, "datadir", ".", true);
datadir = AppendHomeDirIfPathRelative(datadir);
if (strcmp(datadir, "."))
MakeDir(datadir);
movie = bgetpar(fp, "movie", false, true);
nit = igetpar(fp, "nit", 100000, true);
maxt = fgetpar(fp, "maxt", 1000., true);
storage_stride = igetpar(fp, "storage_stride", 10, true);
xml_storage_stride = igetpar(fp, "xml_storage_stride", 500, true);
rseed = igetpar(fp, "rseed", -1, true);
constituous_expansion_limit = igetpar(fp, "constituous_expansion_limit", 16, true);
vessel_inh_level = fgetpar(fp, "vessel_inh_level", 1, true);
vessel_expansion_rate = fgetpar(fp, "vessel_expansion_rate", 0.25, true);
d = fgetpar(fp, "d", 0., true);
e = fgetpar(fp, "e", 0., true);
f = fgetpar(fp, "f", 0., true);
c = fgetpar(fp, "c", 0., true);
mu = fgetpar(fp, "mu", 0., true);
nu = fgetpar(fp, "nu", 0., true);
rho0 = fgetpar(fp, "rho0", 0., true);
rho1 = fgetpar(fp, "rho1", 0., true);
c0 = fgetpar(fp, "c0", 0., true);
gamma = fgetpar(fp, "gamma", 0., true);
eps = fgetpar(fp, "eps", 0., true);
k = dgetparlist(fp, "k", 15, true);
i1 = igetpar(fp, "i1", 0, true);
i2 = igetpar(fp, "i2", 0, true);
i3 = igetpar(fp, "i3", 0, true);
i4 = igetpar(fp, "i4", 0, true);
i5 = igetpar(fp, "i5", 0, true);
s1 = sgetpar(fp, "s1", "", true);
s2 = sgetpar(fp, "s2", "", true);
s3 = sgetpar(fp, "s3", "", true);
b1 = bgetpar(fp, "b1", false, true);
b2 = bgetpar(fp, "b2", false, true);
b3 = bgetpar(fp, "b3", false, true);
b4 = bgetpar(fp, "b4", false, true);
dir1 = sgetpar(fp, "dir1", ".", true);
if (strcmp(dir1, "."))
MakeDir(dir1);
dir2 = sgetpar(fp, "dir2", ".", true);
if (strcmp(dir2, "."))
MakeDir(dir2);
export_interval = igetpar(fp, "export_interval", 0, true);
export_fn_prefix = sgetpar(fp, "export_fn_prefix", "cell.", true);
}
const char *sbool(const bool &p) {
const char *true_str="true";
const char *false_str="false";
if (p)
return true_str;
else
return false_str;
}
void Parameter::Write(ostream &os) const {
if (arrowcolor)
os << " arrowcolor = " << arrowcolor << endl;
os << " arrowsize = " << arrowsize << endl;
if (textcolor)
os << " textcolor = " << textcolor << endl;
os << " cellnumsize = " << cellnumsize << endl;
os << " nodenumsize = " << nodenumsize << endl;
os << " node_mag = " << node_mag << endl;
os << " outlinewidth = " << outlinewidth << endl;
if (cell_outline_color)
os << " cell_outline_color = " << cell_outline_color << endl;
os << " resize_stride = " << resize_stride << endl;
os << " T = " << T << endl;
os << " lambda_length = " << lambda_length << endl;
os << " lambda_celllength = " << lambda_celllength << endl;
os << " target_length = " << target_length << endl;
os << " cell_expansion_rate = " << cell_expansion_rate << endl;
os << " cell_div_expansion_rate = " << cell_div_expansion_rate << endl;
os << " auxin_dependent_growth = " << sbool(auxin_dependent_growth) << endl;
os << " ode_accuracy = " << ode_accuracy << endl;
os << " mc_stepsize = " << mc_stepsize << endl;
os << " mc_cell_stepsize = " << mc_cell_stepsize << endl;
os << " energy_threshold = " << energy_threshold << endl;
os << " bend_lambda = " << bend_lambda << endl;
os << " alignment_lambda = " << alignment_lambda << endl;
os << " rel_cell_div_threshold = " << rel_cell_div_threshold << endl;
os << " rel_perimeter_stiffness = " << rel_perimeter_stiffness << endl;
os << " collapse_node_threshold = " << collapse_node_threshold << endl;
os << " morphogen_div_threshold = " << morphogen_div_threshold << endl;
os << " morphogen_expansion_threshold = " << morphogen_expansion_threshold << endl;
os << " copy_wall = " << sbool(copy_wall) << endl;
os << " source = " << source << endl;
os << " D = "<< D[0] << ", " << D[1] << ", " << D[2] << ", " << D[3] << ", " << D[4] << ", " << D[5] << ", " << D[6] << ", " << D[7] << ", " << D[8] << ", " << D[9] << ", " << D[10] << ", " << D[11] << ", " << D[12] << ", " << D[13] << ", " << D[14] << endl;
os << " initval = "<< initval[0] << ", " << initval[1] << ", " << initval[2] << ", " << initval[3] << ", " << initval[4] << ", " << initval[5] << ", " << initval[6] << ", " << initval[7] << ", " << initval[8] << ", " << initval[9] << ", " << initval[10] << ", " << initval[11] << ", " << initval[12] << ", " << initval[13] << ", " << initval[14] << endl;
os << " k1 = " << k1 << endl;
os << " k2 = " << k2 << endl;
os << " r = " << r << endl;
os << " kr = " << kr << endl;
os << " km = " << km << endl;
os << " Pi_tot = " << Pi_tot << endl;
os << " transport = " << transport << endl;
os << " ka = " << ka << endl;
os << " pin_prod = " << pin_prod << endl;
os << " pin_prod_in_epidermis = " << pin_prod_in_epidermis << endl;
os << " pin_breakdown = " << pin_breakdown << endl;
os << " pin_breakdown_internal = " << pin_breakdown_internal << endl;
os << " aux1prod = " << aux1prod << endl;
os << " aux1prodmeso = " << aux1prodmeso << endl;
os << " aux1decay = " << aux1decay << endl;
os << " aux1decaymeso = " << aux1decaymeso << endl;
os << " aux1transport = " << aux1transport << endl;
os << " aux_cons = " << aux_cons << endl;
os << " aux_breakdown = " << aux_breakdown << endl;
os << " kaux1 = " << kaux1 << endl;
os << " kap = " << kap << endl;
os << " leaf_tip_source = " << leaf_tip_source << endl;
os << " sam_efflux = " << sam_efflux << endl;
os << " sam_auxin = " << sam_auxin << endl;
os << " sam_auxin_breakdown = " << sam_auxin_breakdown << endl;
os << " van3prod = " << van3prod << endl;
os << " van3autokat = " << van3autokat << endl;
os << " van3sat = " << van3sat << endl;
os << " k2van3 = " << k2van3 << endl;
os << " dt = " << dt << endl;
os << " rd_dt = " << rd_dt << endl;
if (datadir) {
QDir dataDir = QDir::home().relativeFilePath(datadir);
os << " datadir = " << dataDir.dirName().toStdString() << endl;
}
else {
os << "datadir = ." << endl;
}
os << " movie = " << sbool(movie) << endl;
os << " nit = " << nit << endl;
os << " maxt = " << maxt << endl;
os << " storage_stride = " << storage_stride << endl;
os << " xml_storage_stride = " << xml_storage_stride << endl;
os << " rseed = " << rseed << endl;
os << " constituous_expansion_limit = " << constituous_expansion_limit << endl;
os << " vessel_inh_level = " << vessel_inh_level << endl;
os << " vessel_expansion_rate = " << vessel_expansion_rate << endl;
os << " d = " << d << endl;
os << " e = " << e << endl;
os << " f = " << f << endl;
os << " c = " << c << endl;
os << " mu = " << mu << endl;
os << " nu = " << nu << endl;
os << " rho0 = " << rho0 << endl;
os << " rho1 = " << rho1 << endl;
os << " c0 = " << c0 << endl;
os << " gamma = " << gamma << endl;
os << " eps = " << eps << endl;
os << " k = "<< k[0] << ", " << k[1] << ", " << k[2] << ", " << k[3] << ", " << k[4] << ", " << k[5] << ", " << k[6] << ", " << k[7] << ", " << k[8] << ", " << k[9] << ", " << k[10] << ", " << k[11] << ", " << k[12] << ", " << k[13] << ", " << k[14] << endl;
os << " i1 = " << i1 << endl;
os << " i2 = " << i2 << endl;
os << " i3 = " << i3 << endl;
os << " i4 = " << i4 << endl;
os << " i5 = " << i5 << endl;
if (s1)
os << " s1 = " << s1 << endl;
if (s2)
os << " s2 = " << s2 << endl;
if (s3)
os << " s3 = " << s3 << endl;
os << " b1 = " << sbool(b1) << endl;
os << " b2 = " << sbool(b2) << endl;
os << " b3 = " << sbool(b3) << endl;
os << " b4 = " << sbool(b4) << endl;
if (dir1)
os << " dir1 = " << dir1 << endl;
if (dir2)
os << " dir2 = " << dir2 << endl;
os << " export_interval = " << export_interval << endl;
if (export_fn_prefix)
os << " export_fn_prefix = " << export_fn_prefix << endl;
}
void Parameter::XMLAdd(xmlNode *root) const {
xmlNode *xmlparameter = xmlNewChild(root, NULL, BAD_CAST "parameter", NULL);
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "arrowcolor" );
ostringstream text;
if (arrowcolor)
text << arrowcolor;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "arrowsize" );
ostringstream text;
text << arrowsize;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "textcolor" );
ostringstream text;
if (textcolor)
text << textcolor;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "cellnumsize" );
ostringstream text;
text << cellnumsize;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "nodenumsize" );
ostringstream text;
text << nodenumsize;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "node_mag" );
ostringstream text;
text << node_mag;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "outlinewidth" );
ostringstream text;
text << outlinewidth;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "cell_outline_color" );
ostringstream text;
if (cell_outline_color)
text << cell_outline_color;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "resize_stride" );
ostringstream text;
text << resize_stride;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "T" );
ostringstream text;
text << T;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "lambda_length" );
ostringstream text;
text << lambda_length;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "lambda_celllength" );
ostringstream text;
text << lambda_celllength;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "target_length" );
ostringstream text;
text << target_length;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "cell_expansion_rate" );
ostringstream text;
text << cell_expansion_rate;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "cell_div_expansion_rate" );
ostringstream text;
text << cell_div_expansion_rate;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "auxin_dependent_growth" );
ostringstream text;
text << sbool(auxin_dependent_growth);
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "ode_accuracy" );
ostringstream text;
text << ode_accuracy;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "mc_stepsize" );
ostringstream text;
text << mc_stepsize;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "mc_cell_stepsize" );
ostringstream text;
text << mc_cell_stepsize;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "energy_threshold" );
ostringstream text;
text << energy_threshold;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "bend_lambda" );
ostringstream text;
text << bend_lambda;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "alignment_lambda" );
ostringstream text;
text << alignment_lambda;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rel_cell_div_threshold" );
ostringstream text;
text << rel_cell_div_threshold;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rel_perimeter_stiffness" );
ostringstream text;
text << rel_perimeter_stiffness;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "collapse_node_threshold" );
ostringstream text;
text << collapse_node_threshold;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "morphogen_div_threshold" );
ostringstream text;
text << morphogen_div_threshold;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "morphogen_expansion_threshold" );
ostringstream text;
text << morphogen_expansion_threshold;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "copy_wall" );
ostringstream text;
text << sbool(copy_wall);
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "source" );
ostringstream text;
text << source;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "D" );
xmlNode *xmlvalarray = xmlNewChild(xmlpar, NULL, BAD_CAST "valarray", NULL);
{
ostringstream text;
text << D[0];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[1];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[2];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[3];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[4];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[5];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[6];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[7];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[8];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[9];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[10];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[11];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[12];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[13];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << D[14];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "initval" );
xmlNode *xmlvalarray = xmlNewChild(xmlpar, NULL, BAD_CAST "valarray", NULL);
{
ostringstream text;
text << initval[0];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[1];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[2];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[3];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[4];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[5];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[6];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[7];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[8];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[9];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[10];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[11];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[12];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[13];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << initval[14];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "k1" );
ostringstream text;
text << k1;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "k2" );
ostringstream text;
text << k2;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "r" );
ostringstream text;
text << r;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "kr" );
ostringstream text;
text << kr;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "km" );
ostringstream text;
text << km;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "Pi_tot" );
ostringstream text;
text << Pi_tot;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "transport" );
ostringstream text;
text << transport;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "ka" );
ostringstream text;
text << ka;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "pin_prod" );
ostringstream text;
text << pin_prod;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "pin_prod_in_epidermis" );
ostringstream text;
text << pin_prod_in_epidermis;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "pin_breakdown" );
ostringstream text;
text << pin_breakdown;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "pin_breakdown_internal" );
ostringstream text;
text << pin_breakdown_internal;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "aux1prod" );
ostringstream text;
text << aux1prod;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "aux1prodmeso" );
ostringstream text;
text << aux1prodmeso;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "aux1decay" );
ostringstream text;
text << aux1decay;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "aux1decaymeso" );
ostringstream text;
text << aux1decaymeso;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "aux1transport" );
ostringstream text;
text << aux1transport;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "aux_cons" );
ostringstream text;
text << aux_cons;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "aux_breakdown" );
ostringstream text;
text << aux_breakdown;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "kaux1" );
ostringstream text;
text << kaux1;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "kap" );
ostringstream text;
text << kap;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "leaf_tip_source" );
ostringstream text;
text << leaf_tip_source;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "sam_efflux" );
ostringstream text;
text << sam_efflux;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "sam_auxin" );
ostringstream text;
text << sam_auxin;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "sam_auxin_breakdown" );
ostringstream text;
text << sam_auxin_breakdown;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "van3prod" );
ostringstream text;
text << van3prod;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "van3autokat" );
ostringstream text;
text << van3autokat;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "van3sat" );
ostringstream text;
text << van3sat;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "k2van3" );
ostringstream text;
text << k2van3;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "dt" );
ostringstream text;
text << dt;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rd_dt" );
ostringstream text;
text << rd_dt;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "datadir" );
ostringstream text;
if (datadir) {
QDir dataDir = QDir::home().relativeFilePath(datadir);
text << dataDir.dirName().toStdString();
}
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "movie" );
ostringstream text;
text << sbool(movie);
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "nit" );
ostringstream text;
text << nit;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "maxt" );
ostringstream text;
text << maxt;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "storage_stride" );
ostringstream text;
text << storage_stride;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "xml_storage_stride" );
ostringstream text;
text << xml_storage_stride;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rseed" );
ostringstream text;
text << rseed;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "constituous_expansion_limit" );
ostringstream text;
text << constituous_expansion_limit;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "vessel_inh_level" );
ostringstream text;
text << vessel_inh_level;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "vessel_expansion_rate" );
ostringstream text;
text << vessel_expansion_rate;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "d" );
ostringstream text;
text << d;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "e" );
ostringstream text;
text << e;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "f" );
ostringstream text;
text << f;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "c" );
ostringstream text;
text << c;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "mu" );
ostringstream text;
text << mu;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "nu" );
ostringstream text;
text << nu;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rho0" );
ostringstream text;
text << rho0;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rho1" );
ostringstream text;
text << rho1;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "c0" );
ostringstream text;
text << c0;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "gamma" );
ostringstream text;
text << gamma;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "eps" );
ostringstream text;
text << eps;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "k" );
xmlNode *xmlvalarray = xmlNewChild(xmlpar, NULL, BAD_CAST "valarray", NULL);
{
ostringstream text;
text << k[0];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[1];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[2];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[3];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[4];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[5];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[6];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[7];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[8];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[9];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[10];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[11];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[12];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[13];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
{
ostringstream text;
text << k[14];
xmlNode *xmlval = xmlNewChild(xmlvalarray, NULL, BAD_CAST "val", NULL);
xmlNewProp(xmlval, BAD_CAST "v", BAD_CAST text.str().c_str());
}
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "i1" );
ostringstream text;
text << i1;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "i2" );
ostringstream text;
text << i2;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "i3" );
ostringstream text;
text << i3;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "i4" );
ostringstream text;
text << i4;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "i5" );
ostringstream text;
text << i5;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "s1" );
ostringstream text;
if (s1)
text << s1;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "s2" );
ostringstream text;
if (s2)
text << s2;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "s3" );
ostringstream text;
if (s3)
text << s3;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "b1" );
ostringstream text;
text << sbool(b1);
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "b2" );
ostringstream text;
text << sbool(b2);
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "b3" );
ostringstream text;
text << sbool(b3);
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "b4" );
ostringstream text;
text << sbool(b4);
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "dir1" );
ostringstream text;
if (dir1)
text << dir1;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "dir2" );
ostringstream text;
if (dir2)
text << dir2;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_interval" );
ostringstream text;
text << export_interval;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
{
xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL);
xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_fn_prefix" );
ostringstream text;
if (export_fn_prefix)
text << export_fn_prefix;
xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str());
}
}
void Parameter::AssignValToPar(const char *namec, const char *valc) {
QLocale standardlocale(QLocale::C);
bool ok;
if (!strcmp(namec, "arrowcolor")) {
if (arrowcolor) { free(arrowcolor); }
arrowcolor=strdup(valc);
}
if (!strcmp(namec, "arrowsize")) {
arrowsize = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'arrowsize' from XML file.",valc); }
}
if (!strcmp(namec, "textcolor")) {
if (textcolor) { free(textcolor); }
textcolor=strdup(valc);
}
if (!strcmp(namec, "cellnumsize")) {
cellnumsize = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'cellnumsize' from XML file.",valc); }
}
if (!strcmp(namec, "nodenumsize")) {
nodenumsize = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'nodenumsize' from XML file.",valc); }
}
if (!strcmp(namec, "node_mag")) {
node_mag = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'node_mag' from XML file.",valc); }
}
if (!strcmp(namec, "outlinewidth")) {
outlinewidth = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'outlinewidth' from XML file.",valc); }
}
if (!strcmp(namec, "cell_outline_color")) {
if (cell_outline_color) { free(cell_outline_color); }
cell_outline_color=strdup(valc);
}
if (!strcmp(namec, "resize_stride")) {
resize_stride = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'resize_stride' from XML file.",valc); }
}
if (!strcmp(namec, "T")) {
T = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'T' from XML file.",valc); }
}
if (!strcmp(namec, "lambda_length")) {
lambda_length = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'lambda_length' from XML file.",valc); }
}
if (!strcmp(namec, "lambda_celllength")) {
lambda_celllength = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'lambda_celllength' from XML file.",valc); }
}
if (!strcmp(namec, "target_length")) {
target_length = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'target_length' from XML file.",valc); }
}
if (!strcmp(namec, "cell_expansion_rate")) {
cell_expansion_rate = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'cell_expansion_rate' from XML file.",valc); }
}
if (!strcmp(namec, "cell_div_expansion_rate")) {
cell_div_expansion_rate = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'cell_div_expansion_rate' from XML file.",valc); }
}
if (!strcmp(namec, "auxin_dependent_growth")) {
auxin_dependent_growth = strtobool(valc);
}
if (!strcmp(namec, "ode_accuracy")) {
ode_accuracy = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'ode_accuracy' from XML file.",valc); }
}
if (!strcmp(namec, "mc_stepsize")) {
mc_stepsize = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'mc_stepsize' from XML file.",valc); }
}
if (!strcmp(namec, "mc_cell_stepsize")) {
mc_cell_stepsize = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'mc_cell_stepsize' from XML file.",valc); }
}
if (!strcmp(namec, "energy_threshold")) {
energy_threshold = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'energy_threshold' from XML file.",valc); }
}
if (!strcmp(namec, "bend_lambda")) {
bend_lambda = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'bend_lambda' from XML file.",valc); }
}
if (!strcmp(namec, "alignment_lambda")) {
alignment_lambda = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'alignment_lambda' from XML file.",valc); }
}
if (!strcmp(namec, "rel_cell_div_threshold")) {
rel_cell_div_threshold = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'rel_cell_div_threshold' from XML file.",valc); }
}
if (!strcmp(namec, "rel_perimeter_stiffness")) {
rel_perimeter_stiffness = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'rel_perimeter_stiffness' from XML file.",valc); }
}
if (!strcmp(namec, "collapse_node_threshold")) {
collapse_node_threshold = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'collapse_node_threshold' from XML file.",valc); }
}
if (!strcmp(namec, "morphogen_div_threshold")) {
morphogen_div_threshold = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'morphogen_div_threshold' from XML file.",valc); }
}
if (!strcmp(namec, "morphogen_expansion_threshold")) {
morphogen_expansion_threshold = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'morphogen_expansion_threshold' from XML file.",valc); }
}
if (!strcmp(namec, "copy_wall")) {
copy_wall = strtobool(valc);
}
if (!strcmp(namec, "source")) {
source = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'source' from XML file.",valc); }
}
if (!strcmp(namec, "k1")) {
k1 = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'k1' from XML file.",valc); }
}
if (!strcmp(namec, "k2")) {
k2 = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'k2' from XML file.",valc); }
}
if (!strcmp(namec, "r")) {
r = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'r' from XML file.",valc); }
}
if (!strcmp(namec, "kr")) {
kr = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'kr' from XML file.",valc); }
}
if (!strcmp(namec, "km")) {
km = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'km' from XML file.",valc); }
}
if (!strcmp(namec, "Pi_tot")) {
Pi_tot = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'Pi_tot' from XML file.",valc); }
}
if (!strcmp(namec, "transport")) {
transport = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'transport' from XML file.",valc); }
}
if (!strcmp(namec, "ka")) {
ka = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'ka' from XML file.",valc); }
}
if (!strcmp(namec, "pin_prod")) {
pin_prod = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'pin_prod' from XML file.",valc); }
}
if (!strcmp(namec, "pin_prod_in_epidermis")) {
pin_prod_in_epidermis = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'pin_prod_in_epidermis' from XML file.",valc); }
}
if (!strcmp(namec, "pin_breakdown")) {
pin_breakdown = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'pin_breakdown' from XML file.",valc); }
}
if (!strcmp(namec, "pin_breakdown_internal")) {
pin_breakdown_internal = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'pin_breakdown_internal' from XML file.",valc); }
}
if (!strcmp(namec, "aux1prod")) {
aux1prod = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'aux1prod' from XML file.",valc); }
}
if (!strcmp(namec, "aux1prodmeso")) {
aux1prodmeso = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'aux1prodmeso' from XML file.",valc); }
}
if (!strcmp(namec, "aux1decay")) {
aux1decay = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'aux1decay' from XML file.",valc); }
}
if (!strcmp(namec, "aux1decaymeso")) {
aux1decaymeso = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'aux1decaymeso' from XML file.",valc); }
}
if (!strcmp(namec, "aux1transport")) {
aux1transport = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'aux1transport' from XML file.",valc); }
}
if (!strcmp(namec, "aux_cons")) {
aux_cons = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'aux_cons' from XML file.",valc); }
}
if (!strcmp(namec, "aux_breakdown")) {
aux_breakdown = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'aux_breakdown' from XML file.",valc); }
}
if (!strcmp(namec, "kaux1")) {
kaux1 = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'kaux1' from XML file.",valc); }
}
if (!strcmp(namec, "kap")) {
kap = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'kap' from XML file.",valc); }
}
if (!strcmp(namec, "leaf_tip_source")) {
leaf_tip_source = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'leaf_tip_source' from XML file.",valc); }
}
if (!strcmp(namec, "sam_efflux")) {
sam_efflux = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'sam_efflux' from XML file.",valc); }
}
if (!strcmp(namec, "sam_auxin")) {
sam_auxin = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'sam_auxin' from XML file.",valc); }
}
if (!strcmp(namec, "sam_auxin_breakdown")) {
sam_auxin_breakdown = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'sam_auxin_breakdown' from XML file.",valc); }
}
if (!strcmp(namec, "van3prod")) {
van3prod = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'van3prod' from XML file.",valc); }
}
if (!strcmp(namec, "van3autokat")) {
van3autokat = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'van3autokat' from XML file.",valc); }
}
if (!strcmp(namec, "van3sat")) {
van3sat = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'van3sat' from XML file.",valc); }
}
if (!strcmp(namec, "k2van3")) {
k2van3 = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'k2van3' from XML file.",valc); }
}
if (!strcmp(namec, "dt")) {
dt = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'dt' from XML file.",valc); }
}
if (!strcmp(namec, "rd_dt")) {
rd_dt = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'rd_dt' from XML file.",valc); }
}
if (!strcmp(namec, "datadir")) {
if (datadir) { free(datadir); }
datadir=strdup(valc);
datadir = AppendHomeDirIfPathRelative(datadir);
}
if (!strcmp(namec, "movie")) {
movie = strtobool(valc);
}
if (!strcmp(namec, "nit")) {
nit = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'nit' from XML file.",valc); }
}
if (!strcmp(namec, "maxt")) {
maxt = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'maxt' from XML file.",valc); }
}
if (!strcmp(namec, "storage_stride")) {
storage_stride = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'storage_stride' from XML file.",valc); }
}
if (!strcmp(namec, "xml_storage_stride")) {
xml_storage_stride = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'xml_storage_stride' from XML file.",valc); }
}
if (!strcmp(namec, "rseed")) {
rseed = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'rseed' from XML file.",valc); }
}
if (!strcmp(namec, "constituous_expansion_limit")) {
constituous_expansion_limit = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'constituous_expansion_limit' from XML file.",valc); }
}
if (!strcmp(namec, "vessel_inh_level")) {
vessel_inh_level = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'vessel_inh_level' from XML file.",valc); }
}
if (!strcmp(namec, "vessel_expansion_rate")) {
vessel_expansion_rate = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'vessel_expansion_rate' from XML file.",valc); }
}
if (!strcmp(namec, "d")) {
d = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'd' from XML file.",valc); }
}
if (!strcmp(namec, "e")) {
e = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'e' from XML file.",valc); }
}
if (!strcmp(namec, "f")) {
f = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'f' from XML file.",valc); }
}
if (!strcmp(namec, "c")) {
c = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'c' from XML file.",valc); }
}
if (!strcmp(namec, "mu")) {
mu = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'mu' from XML file.",valc); }
}
if (!strcmp(namec, "nu")) {
nu = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'nu' from XML file.",valc); }
}
if (!strcmp(namec, "rho0")) {
rho0 = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'rho0' from XML file.",valc); }
}
if (!strcmp(namec, "rho1")) {
rho1 = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'rho1' from XML file.",valc); }
}
if (!strcmp(namec, "c0")) {
c0 = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'c0' from XML file.",valc); }
}
if (!strcmp(namec, "gamma")) {
gamma = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'gamma' from XML file.",valc); }
}
if (!strcmp(namec, "eps")) {
eps = standardlocale.toDouble(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'eps' from XML file.",valc); }
}
if (!strcmp(namec, "i1")) {
i1 = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'i1' from XML file.",valc); }
}
if (!strcmp(namec, "i2")) {
i2 = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'i2' from XML file.",valc); }
}
if (!strcmp(namec, "i3")) {
i3 = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'i3' from XML file.",valc); }
}
if (!strcmp(namec, "i4")) {
i4 = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'i4' from XML file.",valc); }
}
if (!strcmp(namec, "i5")) {
i5 = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'i5' from XML file.",valc); }
}
if (!strcmp(namec, "s1")) {
if (s1) { free(s1); }
s1=strdup(valc);
}
if (!strcmp(namec, "s2")) {
if (s2) { free(s2); }
s2=strdup(valc);
}
if (!strcmp(namec, "s3")) {
if (s3) { free(s3); }
s3=strdup(valc);
}
if (!strcmp(namec, "b1")) {
b1 = strtobool(valc);
}
if (!strcmp(namec, "b2")) {
b2 = strtobool(valc);
}
if (!strcmp(namec, "b3")) {
b3 = strtobool(valc);
}
if (!strcmp(namec, "b4")) {
b4 = strtobool(valc);
}
if (!strcmp(namec, "dir1")) {
if (dir1) { free(dir1); }
dir1=strdup(valc);
}
if (!strcmp(namec, "dir2")) {
if (dir2) { free(dir2); }
dir2=strdup(valc);
}
if (!strcmp(namec, "export_interval")) {
export_interval = standardlocale.toInt(valc, &ok);
if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'export_interval' from XML file.",valc); }
}
if (!strcmp(namec, "export_fn_prefix")) {
if (export_fn_prefix) { free(export_fn_prefix); }
export_fn_prefix=strdup(valc);
}
}
void Parameter::AssignValArrayToPar(const char *namec, vector valarray) {
if (!strcmp(namec, "D")) {
int i=0;
vector::const_iterator v=valarray.begin();
while (v!=valarray.end() && i <= 14 ) {
D[i++]=*(v++);
}
}
if (!strcmp(namec, "initval")) {
int i=0;
vector::const_iterator v=valarray.begin();
while (v!=valarray.end() && i <= 14 ) {
initval[i++]=*(v++);
}
}
if (!strcmp(namec, "k")) {
int i=0;
vector::const_iterator v=valarray.begin();
while (v!=valarray.end() && i <= 14 ) {
k[i++]=*(v++);
}
}
}
ostream &operator<<(ostream &os, Parameter &p) {
p.Write(os);
return os;
}