Subversion Repositories public iLand

Rev

Go to most recent revision | Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
446 5149d 07h werner /src/ put Establishment parameters into database (total of 8 params).
new version 0.3 -- yeah!
just for the records the SQL for regeneration and Establishment:

-- add columns for regeneration
alter table species add maturityYears integer;
alter table species add seedYearInterval integer;
alter table species add nonSeedYearFraction real;
alter table species add fecundity_m2 real;
alter table species add seedKernel_as1 real;
alter table species add seedKernel_as2 real;
alter table species add seedKernel_ks0 real;

-- default values regeneration
update species
set maturityYears=30,seedYearInterval=5, nonSeedYearFraction=0.25, fecundity_m2=100, seedKernel_as1=100, seedKernel_as2=0, seedKernel_ks0=0;


-- add columns for establishment
/* --> corresponding c++-struct:
struct EstablishmentParameters
{
double min_temp; //degC
int chill_requirement; // days of chilling requirement
int GDD_min, GDD_max; // GDD thresholds
double GDD_baseTemperature; // for GDD-calc: GDD=sum(T - baseTemp)
int bud_birst; // GDDs needed until bud burst
int frost_free; // minimum number of annual frost-free days required
double frost_tolerance; //factor in growing season frost tolerance calculation
EstablishmentParameters(): min_temp(-37), chill_requirement(56), GDD_min(177), GDD_max(3261), GDD_baseTemperature(3.4),
bud_birst(255), frost_free(65), frost_tolerance(0.5) {}
}; */

alter table species add estMinTemp real;
alter table species add estChillRequirement integer;
alter table species add estGDDMin integer;
alter table species add estGDDMax integer;
alter table species add estGDDBaseTemp real;
alter table species add estBudBirstGDD integer;
alter table species add estFrostFreeDays integer;
alter table species add estFrostTolerance double;


-- default values establishment
update species
set estMinTemp=-37, estChillRequirement=56, estGDDMin=177, estGDDMaX=3261, estGDDBaseTemp=3.4,
estBudBirstGDD=255, estFrostFreeDays=65, estFrostTolerance=0.5;
 
445 5149d 08h werner /src/core/ added database species parameters for seed dispersal, fixed a bug with random generator in StandLoader, change maturity criterion for seed production to age instead of height.  
425 5181d 05h werner /src/ made the calculate() and execute() function of Expression const (using a trick), so there is no more need for un-const functions which should be const (e.g. in Species).  
420 5181d 20h werner /src/core/ removed the QMutex and the QMutexLocker for serializing the execution of expression evaluations. This is no longer necessary, because Expression::calculate() now is reentrant.
The performance effect of this change is awesome: the time used to grow individual trees drops by ca. 40% (the total runtime is maybe 5-10% faster) (tested with iLandSpeed.xml -> 2x2km)
 
415 5182d 05h werner /src/core/ seed dispersal:
* defining synchronized seed years for each species
* use different seed kernels depending on seed year state
* create two kernels for each species (1x seed year, 1 x non-seed-year)
* newYear() function also for each Species
 
391 5209d 03h werner /src/ a rather large update mainly in course of the implementation of seed dispersal.
* integrating the seed dispersal within the model logic
(new function e.g. SpeciesSet::newYear() or SpeciesSet::regeneration()).
* SeedDispersal: implementation of the Seed-Kernel a la TreeMig (see the R-Script on dispersal by Rupert)
Additionally:
new functions (sum(), multiply() for the Grid-template.
 
388 5209d 20h werner /src/core/ remodified the age calculation. Now the age is estimated based on the current height relative to h_max. The aging-calculation itself is no longer changed by that.  
387 5209d 20h werner /src/ integrating seed dispersal into the model
moved global constants for grid sizes into globalsettings.h
 
385 5210d 05h werner /src/core/ little update to tree age issues  
381 5210d 07h werner /src/core/ appropriate handling of tree age during initialization.
if no age is provided in the input file only the tree height is used for the aging calculation. The tree "age" in that case reflects only the number of years since initialization.
 
308 5365d 05h werner /src/ changed stress mortality (tracker#4)  
304 5367d 03h werner /src/core/ changed parameter name psiMax to psiMin (tracker#6)  
276 5404d 20h werner /src/ added explicit fine root compartment in tree. Changed partitioning, the calculation of the stress index, follow-up change in several outputs.  
274 5404d 22h werner /src/ lightResponseClasses (changed in SpeciesSet, Species and Tree)  
268 5405d 20h werner /src/core/ calculate permanent wilting point by weighing species-specifc psiMax value based on LAI on a resource unit.  
266 5405d 21h werner /src/ implemented soil water response (phase 1)  
265 5406d 11h werner /src/ tried to run iLand again for larger area, and got into concurrency-issues. Reasons:
* debug-messages: are now buffered in a string list and not instantly sent to the QTextEdit
* Expressions: lightResponse-formula: accessed concurrently by several threads; now there are thread-safe versions (executeLocked() and calculateLocked()) that use a QMutexLocker to properly serialize the execution flow.
 
257 5407d 19h werner /src/ added production based (tree) statistics.
StandOut after tree initialization.
some documentation polishing.
 
255 5408d 16h werner /src/ const-ness of Climate.
shell for species response water.
 
236 5413d 14h werner /src/core/ new species parameter: isConiferous, isEvergreen and canopyConductance.  

Show All