/* * * 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; export_interval = 0; export_fn_prefix = strdup("cell."); storage_stride = 10; xml_storage_stride = 500; datadir = strdup("."); datadir = AppendHomeDirIfPathRelative(datadir); T = 1.0; lambda_length = 100.; yielding_threshold = 4.; 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; movie = false; nit = 100000; maxt = 1000.; 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("."); } 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 (export_fn_prefix) free(export_fn_prefix); if (datadir) free(datadir); if (D) free(D); if (initval) free(initval); if (k) free(k); if (s1) free(s1); if (s2) free(s2); if (s3) free(s3); if (dir1) free(dir1); if (dir2) free(dir2); } 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); export_interval = igetpar(fp, "export_interval", 0, true); export_fn_prefix = sgetpar(fp, "export_fn_prefix", "cell.", true); storage_stride = igetpar(fp, "storage_stride", 10, true); xml_storage_stride = igetpar(fp, "xml_storage_stride", 500, true); datadir = sgetpar(fp, "datadir", ".", true); datadir = AppendHomeDirIfPathRelative(datadir); if (strcmp(datadir, ".")) MakeDir(datadir); T = fgetpar(fp, "T", 1.0, true); lambda_length = fgetpar(fp, "lambda_length", 100., true); yielding_threshold = fgetpar(fp, "yielding_threshold", 4., 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); movie = bgetpar(fp, "movie", false, true); nit = igetpar(fp, "nit", 100000, true); maxt = fgetpar(fp, "maxt", 1000., 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); } 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 << " export_interval = " << export_interval << endl; if (export_fn_prefix) os << " export_fn_prefix = " << export_fn_prefix << endl; os << " storage_stride = " << storage_stride << endl; os << " xml_storage_stride = " << xml_storage_stride << endl; if (datadir) { QDir dataDir = QDir::home().relativeFilePath(datadir); os << " datadir = " << dataDir.dirName().toStdString().c_str() << endl; } else { os << "datadir = ." << endl; } os << " T = " << T << endl; os << " lambda_length = " << lambda_length << endl; os << " yielding_threshold = " << yielding_threshold << 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; os << " movie = " << sbool(movie) << endl; os << " nit = " << nit << endl; os << " maxt = " << maxt << 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; } 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 "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()); } { 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 "datadir" ); ostringstream text; if (datadir) { QDir dataDir = QDir::home().relativeFilePath(datadir); text << dataDir.dirName().toStdString().c_str(); } 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 "yielding_threshold" ); ostringstream text; text << yielding_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 "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 "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 "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()); } } 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, "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); } 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, "datadir")) { if (datadir) { free(datadir); } datadir=strdup(valc); datadir = AppendHomeDirIfPathRelative(datadir); } 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, "yielding_threshold")) { yielding_threshold = standardlocale.toDouble(valc, &ok); if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'yielding_threshold' 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, "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, "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); } } 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; }