Changeset - e40119cdbdb9
[Not reviewed]
default
0 8 0
Roeland Merks - 15 years ago 2010-10-14 21:58:12
roeland.merks@cwi.nl
A few last updates before submitting the revised Plant Phys. paper. Corrected the invocation of TransporterDialog and added parameter 'yield_threshold'

user: Roeland Merks <roeland.merks@cwi.nl>
branch 'default'
changed src/ChangeLog
changed src/VirtualLeafpar.tmpl
changed src/mesh.cpp
changed src/parameter.cpp
changed src/parameter.h
changed src/pardialog.cpp
changed src/pardialog.h
changed src/wallitem.cpp
8 files changed with 243 insertions and 205 deletions:
0 comments (0 inline, 0 general)
src/ChangeLog
Show inline comments
 
2010-10-14    <merks@cwi.nl>
 

	
 
	* mesh.cpp: In response to referees' comments, added new parameter "yield_threshold" instead of fixed parameter '4' for yield threshold. 
 

	
 
	* wallitem.cpp: when clicking a wall, both the wall type was cycled and the transporterdialog popped up. Corrected this - for wall type cycling, hold the Control button while left clicking. TransporterDialog only pops up for left click. Also made sure the wall is redrawn after changing the transporter values.
 
	
 

	
 
	* cell.cpp (DivideWalls): accomodated for rename of Circumference -> WallCircumference
 

	
 
	* hull.h: added an operator< to sort Points
src/VirtualLeafpar.tmpl
Show inline comments
 
@@ -13,6 +13,7 @@ label = / label
 
label = <b>Cell mechanics</b> / label
 
T = 1.0 / double
 
lambda_length = 100. / double
 
yielding_threshold = 4. / double
 
lambda_celllength = 0. / double
 
target_length = 60. / double 
 
cell_expansion_rate = 1. / double
src/mesh.cpp
Show inline comments
 
@@ -761,10 +761,10 @@ double Mesh::DisplaceNodes(void) {
 
	  static int count=0;
 
	  // Insertion of nodes (cell wall yielding)
 
	  if (!node.fixed) {
 
	    if (old_l1 > 4*Node::target_length && !cit->nb1->fixed) {
 
	    if (old_l1 > par.yielding_threshold*Node::target_length && !cit->nb1->fixed) {
 
	      node_insertion_queue.push( Edge(cit->nb1, &node) );
 
	    }
 
	    if (old_l2 > 4*Node::target_length && !cit->nb2->fixed) {
 
	    if (old_l2 > par.yielding_threshold*Node::target_length && !cit->nb2->fixed) {
 
	      node_insertion_queue.push( Edge(&node, cit->nb2 ) );
 
	    }
 
	    count++;
src/parameter.cpp
Show inline comments
 
@@ -53,6 +53,7 @@ Parameter::Parameter() {
 
  resize_stride = 0;
 
  T = 1.0;
 
  lambda_length = 100.;
 
  yielding_threshold = 4.;
 
  lambda_celllength = 0.;
 
  target_length = 60.;
 
  cell_expansion_rate = 1.;
 
@@ -253,6 +254,7 @@ void Parameter::Read(const char *filenam
 
  resize_stride = igetpar(fp, "resize_stride", 0, true);
 
  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);
 
@@ -380,6 +382,7 @@ void Parameter::Write(ostream &os) const
 
  os << " resize_stride = " << resize_stride << 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;
 
@@ -576,6 +579,13 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C
 
}
 
{
 
  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;
 
@@ -1525,6 +1535,10 @@ 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); }
src/parameter.h
Show inline comments
 
@@ -55,6 +55,7 @@
 
  int resize_stride;
 
  double T;
 
  double lambda_length;
 
  double yielding_threshold;
 
  double lambda_celllength;
 
  double target_length;
 
  double cell_expansion_rate;
src/pardialog.cpp
Show inline comments
 
@@ -45,6 +45,7 @@ ParameterDialog::ParameterDialog(QWidget
 
  resize_stride_edit = new QLineEdit( QString("%1").arg(par.resize_stride), this, "resize_stride_edit" );
 
  T_edit = new QLineEdit( QString("%1").arg(par.T), this, "T_edit" );
 
  lambda_length_edit = new QLineEdit( QString("%1").arg(par.lambda_length), this, "lambda_length_edit" );
 
  yielding_threshold_edit = new QLineEdit( QString("%1").arg(par.yielding_threshold), this, "yielding_threshold_edit" );
 
  lambda_celllength_edit = new QLineEdit( QString("%1").arg(par.lambda_celllength), this, "lambda_celllength_edit" );
 
  target_length_edit = new QLineEdit( QString("%1").arg(par.target_length), this, "target_length_edit" );
 
  cell_expansion_rate_edit = new QLineEdit( QString("%1").arg(par.cell_expansion_rate), this, "cell_expansion_rate_edit" );
 
@@ -172,192 +173,194 @@ QGridLayout *grid = new QGridLayout( thi
 
  grid->addWidget( T_edit, 15, 0+1  );
 
  grid->addWidget( new QLabel( "lambda_length", this ),16, 0 );
 
  grid->addWidget( lambda_length_edit, 16, 0+1  );
 
  grid->addWidget( new QLabel( "lambda_celllength", this ),17, 0 );
 
  grid->addWidget( lambda_celllength_edit, 17, 0+1  );
 
  grid->addWidget( new QLabel( "target_length", this ),18, 0 );
 
  grid->addWidget( target_length_edit, 18, 0+1  );
 
  grid->addWidget( new QLabel( "cell_expansion_rate", this ),19, 0 );
 
  grid->addWidget( cell_expansion_rate_edit, 19, 0+1  );
 
  grid->addWidget( new QLabel( "cell_div_expansion_rate", this ),20, 0 );
 
  grid->addWidget( cell_div_expansion_rate_edit, 20, 0+1  );
 
  grid->addWidget( new QLabel( "auxin_dependent_growth", this ),21, 0 );
 
  grid->addWidget( auxin_dependent_growth_edit, 21, 0+1  );
 
  grid->addWidget( new QLabel( "ode_accuracy", this ),22, 0 );
 
  grid->addWidget( ode_accuracy_edit, 22, 0+1  );
 
  grid->addWidget( new QLabel( "mc_stepsize", this ),23, 0 );
 
  grid->addWidget( mc_stepsize_edit, 23, 0+1  );
 
  grid->addWidget( new QLabel( "mc_cell_stepsize", this ),24, 0 );
 
  grid->addWidget( mc_cell_stepsize_edit, 24, 0+1  );
 
  grid->addWidget( new QLabel( "energy_threshold", this ),25, 0 );
 
  grid->addWidget( energy_threshold_edit, 25, 0+1  );
 
  grid->addWidget( new QLabel( "bend_lambda", this ),26, 0 );
 
  grid->addWidget( bend_lambda_edit, 26, 0+1  );
 
  grid->addWidget( new QLabel( "alignment_lambda", this ),27, 0 );
 
  grid->addWidget( alignment_lambda_edit, 27, 0+1  );
 
  grid->addWidget( new QLabel( "rel_cell_div_threshold", this ),28, 0 );
 
  grid->addWidget( rel_cell_div_threshold_edit, 28, 0+1  );
 
  grid->addWidget( new QLabel( "rel_perimeter_stiffness", this ),29, 0 );
 
  grid->addWidget( rel_perimeter_stiffness_edit, 29, 0+1  );
 
  grid->addWidget( new QLabel( "collapse_node_threshold", this ),3, 2 );
 
  grid->addWidget( collapse_node_threshold_edit, 3, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_div_threshold", this ),4, 2 );
 
  grid->addWidget( morphogen_div_threshold_edit, 4, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_expansion_threshold", this ),5, 2 );
 
  grid->addWidget( morphogen_expansion_threshold_edit, 5, 2+1  );
 
  grid->addWidget( new QLabel( "copy_wall", this ),6, 2 );
 
  grid->addWidget( copy_wall_edit, 6, 2+1  );
 
  grid->addWidget( new QLabel( "", this), 7, 2, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Auxin transport and PIN1 dynamics</b>", this), 8, 2, 1, 2 );
 
  grid->addWidget( new QLabel( "source", this ),9, 2 );
 
  grid->addWidget( source_edit, 9, 2+1  );
 
  grid->addWidget( new QLabel( "D", this ),10, 2 );
 
  grid->addWidget( D_edit, 10, 2+1  );
 
  grid->addWidget( new QLabel( "initval", this ),11, 2 );
 
  grid->addWidget( initval_edit, 11, 2+1  );
 
  grid->addWidget( new QLabel( "k1", this ),12, 2 );
 
  grid->addWidget( k1_edit, 12, 2+1  );
 
  grid->addWidget( new QLabel( "k2", this ),13, 2 );
 
  grid->addWidget( k2_edit, 13, 2+1  );
 
  grid->addWidget( new QLabel( "r", this ),14, 2 );
 
  grid->addWidget( r_edit, 14, 2+1  );
 
  grid->addWidget( new QLabel( "kr", this ),15, 2 );
 
  grid->addWidget( kr_edit, 15, 2+1  );
 
  grid->addWidget( new QLabel( "km", this ),16, 2 );
 
  grid->addWidget( km_edit, 16, 2+1  );
 
  grid->addWidget( new QLabel( "Pi_tot", this ),17, 2 );
 
  grid->addWidget( Pi_tot_edit, 17, 2+1  );
 
  grid->addWidget( new QLabel( "transport", this ),18, 2 );
 
  grid->addWidget( transport_edit, 18, 2+1  );
 
  grid->addWidget( new QLabel( "ka", this ),19, 2 );
 
  grid->addWidget( ka_edit, 19, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod", this ),20, 2 );
 
  grid->addWidget( pin_prod_edit, 20, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod_in_epidermis", this ),21, 2 );
 
  grid->addWidget( pin_prod_in_epidermis_edit, 21, 2+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown", this ),22, 2 );
 
  grid->addWidget( pin_breakdown_edit, 22, 2+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown_internal", this ),23, 2 );
 
  grid->addWidget( pin_breakdown_internal_edit, 23, 2+1  );
 
  grid->addWidget( new QLabel( "aux1prod", this ),24, 2 );
 
  grid->addWidget( aux1prod_edit, 24, 2+1  );
 
  grid->addWidget( new QLabel( "aux1prodmeso", this ),25, 2 );
 
  grid->addWidget( aux1prodmeso_edit, 25, 2+1  );
 
  grid->addWidget( new QLabel( "aux1decay", this ),26, 2 );
 
  grid->addWidget( aux1decay_edit, 26, 2+1  );
 
  grid->addWidget( new QLabel( "aux1decaymeso", this ),27, 2 );
 
  grid->addWidget( aux1decaymeso_edit, 27, 2+1  );
 
  grid->addWidget( new QLabel( "aux1transport", this ),28, 2 );
 
  grid->addWidget( aux1transport_edit, 28, 2+1  );
 
  grid->addWidget( new QLabel( "aux_cons", this ),29, 2 );
 
  grid->addWidget( aux_cons_edit, 29, 2+1  );
 
  grid->addWidget( new QLabel( "aux_breakdown", this ),3, 4 );
 
  grid->addWidget( aux_breakdown_edit, 3, 4+1  );
 
  grid->addWidget( new QLabel( "kaux1", this ),4, 4 );
 
  grid->addWidget( kaux1_edit, 4, 4+1  );
 
  grid->addWidget( new QLabel( "kap", this ),5, 4 );
 
  grid->addWidget( kap_edit, 5, 4+1  );
 
  grid->addWidget( new QLabel( "leaf_tip_source", this ),6, 4 );
 
  grid->addWidget( leaf_tip_source_edit, 6, 4+1  );
 
  grid->addWidget( new QLabel( "sam_efflux", this ),7, 4 );
 
  grid->addWidget( sam_efflux_edit, 7, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin", this ),8, 4 );
 
  grid->addWidget( sam_auxin_edit, 8, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin_breakdown", this ),9, 4 );
 
  grid->addWidget( sam_auxin_breakdown_edit, 9, 4+1  );
 
  grid->addWidget( new QLabel( "van3prod", this ),10, 4 );
 
  grid->addWidget( van3prod_edit, 10, 4+1  );
 
  grid->addWidget( new QLabel( "van3autokat", this ),11, 4 );
 
  grid->addWidget( van3autokat_edit, 11, 4+1  );
 
  grid->addWidget( new QLabel( "van3sat", this ),12, 4 );
 
  grid->addWidget( van3sat_edit, 12, 4+1  );
 
  grid->addWidget( new QLabel( "k2van3", this ),13, 4 );
 
  grid->addWidget( k2van3_edit, 13, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 14, 4, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Integration parameters</b>", this), 15, 4, 1, 2 );
 
  grid->addWidget( new QLabel( "dt", this ),16, 4 );
 
  grid->addWidget( dt_edit, 16, 4+1  );
 
  grid->addWidget( new QLabel( "rd_dt", this ),17, 4 );
 
  grid->addWidget( rd_dt_edit, 17, 4+1  );
 
  grid->addWidget( new QLabel( "datadir", this ),18, 4 );
 
  grid->addWidget( datadir_edit, 18, 4+1  );
 
  grid->addWidget( new QLabel( "movie", this ),19, 4 );
 
  grid->addWidget( movie_edit, 19, 4+1  );
 
  grid->addWidget( new QLabel( "nit", this ),20, 4 );
 
  grid->addWidget( nit_edit, 20, 4+1  );
 
  grid->addWidget( new QLabel( "maxt", this ),21, 4 );
 
  grid->addWidget( maxt_edit, 21, 4+1  );
 
  grid->addWidget( new QLabel( "storage_stride", this ),22, 4 );
 
  grid->addWidget( storage_stride_edit, 22, 4+1  );
 
  grid->addWidget( new QLabel( "xml_storage_stride", this ),23, 4 );
 
  grid->addWidget( xml_storage_stride_edit, 23, 4+1  );
 
  grid->addWidget( new QLabel( "rseed", this ),24, 4 );
 
  grid->addWidget( rseed_edit, 24, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 25, 4, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Meinhardt leaf venation model</b>", this), 26, 4, 1, 2 );
 
  grid->addWidget( new QLabel( "constituous_expansion_limit", this ),27, 4 );
 
  grid->addWidget( constituous_expansion_limit_edit, 27, 4+1  );
 
  grid->addWidget( new QLabel( "vessel_inh_level", this ),28, 4 );
 
  grid->addWidget( vessel_inh_level_edit, 28, 4+1  );
 
  grid->addWidget( new QLabel( "vessel_expansion_rate", this ),29, 4 );
 
  grid->addWidget( vessel_expansion_rate_edit, 29, 4+1  );
 
  grid->addWidget( new QLabel( "d", this ),3, 6 );
 
  grid->addWidget( d_edit, 3, 6+1  );
 
  grid->addWidget( new QLabel( "e", this ),4, 6 );
 
  grid->addWidget( e_edit, 4, 6+1  );
 
  grid->addWidget( new QLabel( "f", this ),5, 6 );
 
  grid->addWidget( f_edit, 5, 6+1  );
 
  grid->addWidget( new QLabel( "c", this ),6, 6 );
 
  grid->addWidget( c_edit, 6, 6+1  );
 
  grid->addWidget( new QLabel( "mu", this ),7, 6 );
 
  grid->addWidget( mu_edit, 7, 6+1  );
 
  grid->addWidget( new QLabel( "nu", this ),8, 6 );
 
  grid->addWidget( nu_edit, 8, 6+1  );
 
  grid->addWidget( new QLabel( "rho0", this ),9, 6 );
 
  grid->addWidget( rho0_edit, 9, 6+1  );
 
  grid->addWidget( new QLabel( "rho1", this ),10, 6 );
 
  grid->addWidget( rho1_edit, 10, 6+1  );
 
  grid->addWidget( new QLabel( "c0", this ),11, 6 );
 
  grid->addWidget( c0_edit, 11, 6+1  );
 
  grid->addWidget( new QLabel( "gamma", this ),12, 6 );
 
  grid->addWidget( gamma_edit, 12, 6+1  );
 
  grid->addWidget( new QLabel( "eps", this ),13, 6 );
 
  grid->addWidget( eps_edit, 13, 6+1  );
 
  grid->addWidget( new QLabel( "", this), 14, 6, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>User-defined parameters</b>", this), 15, 6, 1, 2 );
 
  grid->addWidget( new QLabel( "k", this ),16, 6 );
 
  grid->addWidget( k_edit, 16, 6+1  );
 
  grid->addWidget( new QLabel( "i1", this ),17, 6 );
 
  grid->addWidget( i1_edit, 17, 6+1  );
 
  grid->addWidget( new QLabel( "i2", this ),18, 6 );
 
  grid->addWidget( i2_edit, 18, 6+1  );
 
  grid->addWidget( new QLabel( "i3", this ),19, 6 );
 
  grid->addWidget( i3_edit, 19, 6+1  );
 
  grid->addWidget( new QLabel( "i4", this ),20, 6 );
 
  grid->addWidget( i4_edit, 20, 6+1  );
 
  grid->addWidget( new QLabel( "i5", this ),21, 6 );
 
  grid->addWidget( i5_edit, 21, 6+1  );
 
  grid->addWidget( new QLabel( "s1", this ),22, 6 );
 
  grid->addWidget( s1_edit, 22, 6+1  );
 
  grid->addWidget( new QLabel( "s2", this ),23, 6 );
 
  grid->addWidget( s2_edit, 23, 6+1  );
 
  grid->addWidget( new QLabel( "s3", this ),24, 6 );
 
  grid->addWidget( s3_edit, 24, 6+1  );
 
  grid->addWidget( new QLabel( "b1", this ),25, 6 );
 
  grid->addWidget( b1_edit, 25, 6+1  );
 
  grid->addWidget( new QLabel( "b2", this ),26, 6 );
 
  grid->addWidget( b2_edit, 26, 6+1  );
 
  grid->addWidget( new QLabel( "b3", this ),27, 6 );
 
  grid->addWidget( b3_edit, 27, 6+1  );
 
  grid->addWidget( new QLabel( "b4", this ),28, 6 );
 
  grid->addWidget( b4_edit, 28, 6+1  );
 
  grid->addWidget( new QLabel( "dir1", this ),29, 6 );
 
  grid->addWidget( dir1_edit, 29, 6+1  );
 
  grid->addWidget( new QLabel( "dir2", this ),3, 8 );
 
  grid->addWidget( dir2_edit, 3, 8+1  );
 
  grid->addWidget( new QLabel( "export_interval", this ),4, 8 );
 
  grid->addWidget( export_interval_edit, 4, 8+1  );
 
  grid->addWidget( new QLabel( "export_fn_prefix", this ),5, 8 );
 
  grid->addWidget( export_fn_prefix_edit, 5, 8+1  );
 
  grid->addWidget( new QLabel( "yielding_threshold", this ),17, 0 );
 
  grid->addWidget( yielding_threshold_edit, 17, 0+1  );
 
  grid->addWidget( new QLabel( "lambda_celllength", this ),18, 0 );
 
  grid->addWidget( lambda_celllength_edit, 18, 0+1  );
 
  grid->addWidget( new QLabel( "target_length", this ),19, 0 );
 
  grid->addWidget( target_length_edit, 19, 0+1  );
 
  grid->addWidget( new QLabel( "cell_expansion_rate", this ),20, 0 );
 
  grid->addWidget( cell_expansion_rate_edit, 20, 0+1  );
 
  grid->addWidget( new QLabel( "cell_div_expansion_rate", this ),21, 0 );
 
  grid->addWidget( cell_div_expansion_rate_edit, 21, 0+1  );
 
  grid->addWidget( new QLabel( "auxin_dependent_growth", this ),22, 0 );
 
  grid->addWidget( auxin_dependent_growth_edit, 22, 0+1  );
 
  grid->addWidget( new QLabel( "ode_accuracy", this ),23, 0 );
 
  grid->addWidget( ode_accuracy_edit, 23, 0+1  );
 
  grid->addWidget( new QLabel( "mc_stepsize", this ),24, 0 );
 
  grid->addWidget( mc_stepsize_edit, 24, 0+1  );
 
  grid->addWidget( new QLabel( "mc_cell_stepsize", this ),25, 0 );
 
  grid->addWidget( mc_cell_stepsize_edit, 25, 0+1  );
 
  grid->addWidget( new QLabel( "energy_threshold", this ),26, 0 );
 
  grid->addWidget( energy_threshold_edit, 26, 0+1  );
 
  grid->addWidget( new QLabel( "bend_lambda", this ),27, 0 );
 
  grid->addWidget( bend_lambda_edit, 27, 0+1  );
 
  grid->addWidget( new QLabel( "alignment_lambda", this ),28, 0 );
 
  grid->addWidget( alignment_lambda_edit, 28, 0+1  );
 
  grid->addWidget( new QLabel( "rel_cell_div_threshold", this ),29, 0 );
 
  grid->addWidget( rel_cell_div_threshold_edit, 29, 0+1  );
 
  grid->addWidget( new QLabel( "rel_perimeter_stiffness", this ),3, 2 );
 
  grid->addWidget( rel_perimeter_stiffness_edit, 3, 2+1  );
 
  grid->addWidget( new QLabel( "collapse_node_threshold", this ),4, 2 );
 
  grid->addWidget( collapse_node_threshold_edit, 4, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_div_threshold", this ),5, 2 );
 
  grid->addWidget( morphogen_div_threshold_edit, 5, 2+1  );
 
  grid->addWidget( new QLabel( "morphogen_expansion_threshold", this ),6, 2 );
 
  grid->addWidget( morphogen_expansion_threshold_edit, 6, 2+1  );
 
  grid->addWidget( new QLabel( "copy_wall", this ),7, 2 );
 
  grid->addWidget( copy_wall_edit, 7, 2+1  );
 
  grid->addWidget( new QLabel( "", this), 8, 2, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Auxin transport and PIN1 dynamics</b>", this), 9, 2, 1, 2 );
 
  grid->addWidget( new QLabel( "source", this ),10, 2 );
 
  grid->addWidget( source_edit, 10, 2+1  );
 
  grid->addWidget( new QLabel( "D", this ),11, 2 );
 
  grid->addWidget( D_edit, 11, 2+1  );
 
  grid->addWidget( new QLabel( "initval", this ),12, 2 );
 
  grid->addWidget( initval_edit, 12, 2+1  );
 
  grid->addWidget( new QLabel( "k1", this ),13, 2 );
 
  grid->addWidget( k1_edit, 13, 2+1  );
 
  grid->addWidget( new QLabel( "k2", this ),14, 2 );
 
  grid->addWidget( k2_edit, 14, 2+1  );
 
  grid->addWidget( new QLabel( "r", this ),15, 2 );
 
  grid->addWidget( r_edit, 15, 2+1  );
 
  grid->addWidget( new QLabel( "kr", this ),16, 2 );
 
  grid->addWidget( kr_edit, 16, 2+1  );
 
  grid->addWidget( new QLabel( "km", this ),17, 2 );
 
  grid->addWidget( km_edit, 17, 2+1  );
 
  grid->addWidget( new QLabel( "Pi_tot", this ),18, 2 );
 
  grid->addWidget( Pi_tot_edit, 18, 2+1  );
 
  grid->addWidget( new QLabel( "transport", this ),19, 2 );
 
  grid->addWidget( transport_edit, 19, 2+1  );
 
  grid->addWidget( new QLabel( "ka", this ),20, 2 );
 
  grid->addWidget( ka_edit, 20, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod", this ),21, 2 );
 
  grid->addWidget( pin_prod_edit, 21, 2+1  );
 
  grid->addWidget( new QLabel( "pin_prod_in_epidermis", this ),22, 2 );
 
  grid->addWidget( pin_prod_in_epidermis_edit, 22, 2+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown", this ),23, 2 );
 
  grid->addWidget( pin_breakdown_edit, 23, 2+1  );
 
  grid->addWidget( new QLabel( "pin_breakdown_internal", this ),24, 2 );
 
  grid->addWidget( pin_breakdown_internal_edit, 24, 2+1  );
 
  grid->addWidget( new QLabel( "aux1prod", this ),25, 2 );
 
  grid->addWidget( aux1prod_edit, 25, 2+1  );
 
  grid->addWidget( new QLabel( "aux1prodmeso", this ),26, 2 );
 
  grid->addWidget( aux1prodmeso_edit, 26, 2+1  );
 
  grid->addWidget( new QLabel( "aux1decay", this ),27, 2 );
 
  grid->addWidget( aux1decay_edit, 27, 2+1  );
 
  grid->addWidget( new QLabel( "aux1decaymeso", this ),28, 2 );
 
  grid->addWidget( aux1decaymeso_edit, 28, 2+1  );
 
  grid->addWidget( new QLabel( "aux1transport", this ),29, 2 );
 
  grid->addWidget( aux1transport_edit, 29, 2+1  );
 
  grid->addWidget( new QLabel( "aux_cons", this ),3, 4 );
 
  grid->addWidget( aux_cons_edit, 3, 4+1  );
 
  grid->addWidget( new QLabel( "aux_breakdown", this ),4, 4 );
 
  grid->addWidget( aux_breakdown_edit, 4, 4+1  );
 
  grid->addWidget( new QLabel( "kaux1", this ),5, 4 );
 
  grid->addWidget( kaux1_edit, 5, 4+1  );
 
  grid->addWidget( new QLabel( "kap", this ),6, 4 );
 
  grid->addWidget( kap_edit, 6, 4+1  );
 
  grid->addWidget( new QLabel( "leaf_tip_source", this ),7, 4 );
 
  grid->addWidget( leaf_tip_source_edit, 7, 4+1  );
 
  grid->addWidget( new QLabel( "sam_efflux", this ),8, 4 );
 
  grid->addWidget( sam_efflux_edit, 8, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin", this ),9, 4 );
 
  grid->addWidget( sam_auxin_edit, 9, 4+1  );
 
  grid->addWidget( new QLabel( "sam_auxin_breakdown", this ),10, 4 );
 
  grid->addWidget( sam_auxin_breakdown_edit, 10, 4+1  );
 
  grid->addWidget( new QLabel( "van3prod", this ),11, 4 );
 
  grid->addWidget( van3prod_edit, 11, 4+1  );
 
  grid->addWidget( new QLabel( "van3autokat", this ),12, 4 );
 
  grid->addWidget( van3autokat_edit, 12, 4+1  );
 
  grid->addWidget( new QLabel( "van3sat", this ),13, 4 );
 
  grid->addWidget( van3sat_edit, 13, 4+1  );
 
  grid->addWidget( new QLabel( "k2van3", this ),14, 4 );
 
  grid->addWidget( k2van3_edit, 14, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 15, 4, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Integration parameters</b>", this), 16, 4, 1, 2 );
 
  grid->addWidget( new QLabel( "dt", this ),17, 4 );
 
  grid->addWidget( dt_edit, 17, 4+1  );
 
  grid->addWidget( new QLabel( "rd_dt", this ),18, 4 );
 
  grid->addWidget( rd_dt_edit, 18, 4+1  );
 
  grid->addWidget( new QLabel( "datadir", this ),19, 4 );
 
  grid->addWidget( datadir_edit, 19, 4+1  );
 
  grid->addWidget( new QLabel( "movie", this ),20, 4 );
 
  grid->addWidget( movie_edit, 20, 4+1  );
 
  grid->addWidget( new QLabel( "nit", this ),21, 4 );
 
  grid->addWidget( nit_edit, 21, 4+1  );
 
  grid->addWidget( new QLabel( "maxt", this ),22, 4 );
 
  grid->addWidget( maxt_edit, 22, 4+1  );
 
  grid->addWidget( new QLabel( "storage_stride", this ),23, 4 );
 
  grid->addWidget( storage_stride_edit, 23, 4+1  );
 
  grid->addWidget( new QLabel( "xml_storage_stride", this ),24, 4 );
 
  grid->addWidget( xml_storage_stride_edit, 24, 4+1  );
 
  grid->addWidget( new QLabel( "rseed", this ),25, 4 );
 
  grid->addWidget( rseed_edit, 25, 4+1  );
 
  grid->addWidget( new QLabel( "", this), 26, 4, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>Meinhardt leaf venation model</b>", this), 27, 4, 1, 2 );
 
  grid->addWidget( new QLabel( "constituous_expansion_limit", this ),28, 4 );
 
  grid->addWidget( constituous_expansion_limit_edit, 28, 4+1  );
 
  grid->addWidget( new QLabel( "vessel_inh_level", this ),29, 4 );
 
  grid->addWidget( vessel_inh_level_edit, 29, 4+1  );
 
  grid->addWidget( new QLabel( "vessel_expansion_rate", this ),3, 6 );
 
  grid->addWidget( vessel_expansion_rate_edit, 3, 6+1  );
 
  grid->addWidget( new QLabel( "d", this ),4, 6 );
 
  grid->addWidget( d_edit, 4, 6+1  );
 
  grid->addWidget( new QLabel( "e", this ),5, 6 );
 
  grid->addWidget( e_edit, 5, 6+1  );
 
  grid->addWidget( new QLabel( "f", this ),6, 6 );
 
  grid->addWidget( f_edit, 6, 6+1  );
 
  grid->addWidget( new QLabel( "c", this ),7, 6 );
 
  grid->addWidget( c_edit, 7, 6+1  );
 
  grid->addWidget( new QLabel( "mu", this ),8, 6 );
 
  grid->addWidget( mu_edit, 8, 6+1  );
 
  grid->addWidget( new QLabel( "nu", this ),9, 6 );
 
  grid->addWidget( nu_edit, 9, 6+1  );
 
  grid->addWidget( new QLabel( "rho0", this ),10, 6 );
 
  grid->addWidget( rho0_edit, 10, 6+1  );
 
  grid->addWidget( new QLabel( "rho1", this ),11, 6 );
 
  grid->addWidget( rho1_edit, 11, 6+1  );
 
  grid->addWidget( new QLabel( "c0", this ),12, 6 );
 
  grid->addWidget( c0_edit, 12, 6+1  );
 
  grid->addWidget( new QLabel( "gamma", this ),13, 6 );
 
  grid->addWidget( gamma_edit, 13, 6+1  );
 
  grid->addWidget( new QLabel( "eps", this ),14, 6 );
 
  grid->addWidget( eps_edit, 14, 6+1  );
 
  grid->addWidget( new QLabel( "", this), 15, 6, 1, 2 );
 
  grid->addWidget( new QLabel( " <b>User-defined parameters</b>", this), 16, 6, 1, 2 );
 
  grid->addWidget( new QLabel( "k", this ),17, 6 );
 
  grid->addWidget( k_edit, 17, 6+1  );
 
  grid->addWidget( new QLabel( "i1", this ),18, 6 );
 
  grid->addWidget( i1_edit, 18, 6+1  );
 
  grid->addWidget( new QLabel( "i2", this ),19, 6 );
 
  grid->addWidget( i2_edit, 19, 6+1  );
 
  grid->addWidget( new QLabel( "i3", this ),20, 6 );
 
  grid->addWidget( i3_edit, 20, 6+1  );
 
  grid->addWidget( new QLabel( "i4", this ),21, 6 );
 
  grid->addWidget( i4_edit, 21, 6+1  );
 
  grid->addWidget( new QLabel( "i5", this ),22, 6 );
 
  grid->addWidget( i5_edit, 22, 6+1  );
 
  grid->addWidget( new QLabel( "s1", this ),23, 6 );
 
  grid->addWidget( s1_edit, 23, 6+1  );
 
  grid->addWidget( new QLabel( "s2", this ),24, 6 );
 
  grid->addWidget( s2_edit, 24, 6+1  );
 
  grid->addWidget( new QLabel( "s3", this ),25, 6 );
 
  grid->addWidget( s3_edit, 25, 6+1  );
 
  grid->addWidget( new QLabel( "b1", this ),26, 6 );
 
  grid->addWidget( b1_edit, 26, 6+1  );
 
  grid->addWidget( new QLabel( "b2", this ),27, 6 );
 
  grid->addWidget( b2_edit, 27, 6+1  );
 
  grid->addWidget( new QLabel( "b3", this ),28, 6 );
 
  grid->addWidget( b3_edit, 28, 6+1  );
 
  grid->addWidget( new QLabel( "b4", this ),29, 6 );
 
  grid->addWidget( b4_edit, 29, 6+1  );
 
  grid->addWidget( new QLabel( "dir1", this ),3, 8 );
 
  grid->addWidget( dir1_edit, 3, 8+1  );
 
  grid->addWidget( new QLabel( "dir2", this ),4, 8 );
 
  grid->addWidget( dir2_edit, 4, 8+1  );
 
  grid->addWidget( new QLabel( "export_interval", this ),5, 8 );
 
  grid->addWidget( export_interval_edit, 5, 8+1  );
 
  grid->addWidget( new QLabel( "export_fn_prefix", this ),6, 8 );
 
  grid->addWidget( export_fn_prefix_edit, 6, 8+1  );
 
QPushButton *pb = new QPushButton( "&Write", this );
 
grid->addWidget(pb, 31, 6 );
 
connect( pb, SIGNAL( clicked() ), this, SLOT( write() ) );
 
@@ -382,6 +385,7 @@ delete cell_outline_color_edit;
 
delete resize_stride_edit;
 
delete T_edit;
 
delete lambda_length_edit;
 
delete yielding_threshold_edit;
 
delete lambda_celllength_edit;
 
delete target_length_edit;
 
delete cell_expansion_rate_edit;
 
@@ -488,6 +492,7 @@ QString tmpval;
 
  par.resize_stride = resize_stride_edit->text().toInt();
 
  par.T = T_edit->text().toDouble();
 
  par.lambda_length = lambda_length_edit->text().toDouble();
 
  par.yielding_threshold = yielding_threshold_edit->text().toDouble();
 
  par.lambda_celllength = lambda_celllength_edit->text().toDouble();
 
  par.target_length = target_length_edit->text().toDouble();
 
  par.cell_expansion_rate = cell_expansion_rate_edit->text().toDouble();
 
@@ -722,6 +727,7 @@ void ParameterDialog::Reset(void) {
 
  resize_stride_edit->setText( QString("%1").arg(par.resize_stride) );
 
  T_edit->setText( QString("%1").arg(par.T) );
 
  lambda_length_edit->setText( QString("%1").arg(par.lambda_length) );
 
  yielding_threshold_edit->setText( QString("%1").arg(par.yielding_threshold) );
 
  lambda_celllength_edit->setText( QString("%1").arg(par.lambda_celllength) );
 
  target_length_edit->setText( QString("%1").arg(par.target_length) );
 
  cell_expansion_rate_edit->setText( QString("%1").arg(par.cell_expansion_rate) );
src/pardialog.h
Show inline comments
 
@@ -57,6 +57,7 @@ class ParameterDialog : public QDialog {
 
  QLineEdit *resize_stride_edit;
 
  QLineEdit *T_edit;
 
  QLineEdit *lambda_length_edit;
 
  QLineEdit *yielding_threshold_edit;
 
  QLineEdit *lambda_celllength_edit;
 
  QLineEdit *target_length_edit;
 
  QLineEdit *cell_expansion_rate_edit;
src/wallitem.cpp
Show inline comments
 
@@ -86,7 +86,6 @@ void WallItem::setColor(void) {
 

	
 
void WallItem::OnClick(QMouseEvent *e) {
 

	
 

	
 
  Wall *w=&getWall();
 
#ifdef QDEBUG
 
  qDebug() << "Wall ID = " << w->Index() << ", this = " << w << endl;
 
@@ -95,10 +94,8 @@ void WallItem::OnClick(QMouseEvent *e) {
 
  qDebug() << "N1 = " << w->N1()->Index() << ", N2 = " << w->N2()->Index() << endl;
 
#endif
 
  CellBase *c = wn==1?w->C1():w->C2();
 

	
 
  TransporterDialog dialog(w, c, wn);
 
  dialog.exec();
 

	
 
  
 
  
 
  if (e->button() == Qt::RightButton) {
 
    QString message;
 
    if (wn==1) {
 
@@ -111,22 +108,35 @@ void WallItem::OnClick(QMouseEvent *e) {
 

	
 
  } else {
 
    if (e->button() == Qt::LeftButton) {
 
      if (c->BoundaryPolP()) {
 
	w->cycleWallType();
 
      } else {
 
	if (e->modifiers() == Qt::ShiftModifier) {
 
	  wn==1?w->setTransporters1(1,0):w->setTransporters2(1,0);					
 
 
 
      if (e->modifiers() == Qt::ControlModifier) {
 
	// let's consider wall type cycling an "easter egg". 
 
	// Ctrl modifier key required 
 

	
 
	if (c->BoundaryPolP()) {
 
	  w->cycleWallType();
 
	} else {
 
	  // set high amount of PIN1
 
	  //cerr << "Setting PIN1\n";
 
	  wn==1?w->setTransporters1(1,10):w->setTransporters2(1,10);
 
	  if (e->modifiers() == Qt::ShiftModifier) {
 
	    wn==1?w->setTransporters1(1,0):w->setTransporters2(1,0);					
 

	
 
	  } else {
 
	    // set high amount of PIN1
 
	    //cerr << "Setting PIN1\n";
 
	    wn==1?w->setTransporters1(1,10):w->setTransporters2(1,10);
 
	  }
 
	}
 
	setColor();
 
      } else {
 
	TransporterDialog dialog(w, c, wn);
 
	dialog.exec();
 
      }
 
      setColor();
 
      update(boundingRect());
 
    } 
 

	
 
    }
 
 
 
  }
 
  setColor();
 
  update(boundingRect());
 

	
 
}
 

	
 
/* finis */
 
  /* finis */
0 comments (0 inline, 0 general)