Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
475 |
5013d 16h |
werner |
/src/ |
* Snag dynamics
debug output "SnagDynamics"
life cycle of Snag objects
include Snag Dynamics in newYear / year end routines
* threadrunner.cpp: parallel execution of species related tasks, e.g. the seed dispersal. In the current form, the ThreadRunner is much nicer:
ThreadRunner runner(mActiveSpecies);
runner.run(func_ptr); |
|
/src/core/model.cpp /src/core/resourceunit.cpp /src/core/resourceunitspecies.cpp /src/core/resourceunitspecies.h /src/core/snag.cpp /src/core/snag.h /src/core/species.h /src/core/speciesset.cpp /src/core/threadrunner.cpp /src/core/threadrunner.h /src/tools/globalsettings.cpp /src/tools/globalsettings.h
|
470 |
5017d 20h |
werner |
/src/core/ |
add light response function to sapling growth (rest: constness of lightresponse function calls) |
|
/src/core/sapling.cpp /src/core/species.h /src/core/speciesset.cpp /src/core/speciesset.h /src/core/tree.cpp
|
467 |
5018d 19h |
werner |
/src/core/ |
added species-parameter "sapReferenceFactor" (for calculation of f_env,yr for sapling growth). |
|
/src/core/production3pg.cpp /src/core/species.cpp /src/core/species.h /src/core/speciesresponse.h
|
460 |
5019d 11h |
werner |
/src/ |
changed label in regeneration debug output,
added minimum height of 4m as requirement for seed production. |
|
/src/core/species.cpp /src/core/species.h /src/core/tree.cpp /src/tools/globalsettings.cpp
|
453 |
5069d 06h |
werner |
/src/ |
sapling growth now in a basic working state. started to implement recruitment. One bug with the "maximum-establishment-height-grid" known.
added also visualization of regeneration layer. Once I have time, I should restructure the drawing/visualization code as it gets quirky (and a paper-concept is available...) |
|
/src/core/grid.h /src/core/resourceunit.cpp /src/core/resourceunitspecies.cpp /src/core/resourceunitspecies.h /src/core/sapling.cpp /src/core/sapling.h /src/core/species.cpp /src/core/species.h /src/core/standstatistics.cpp /src/core/standstatistics.h /src/iland/mainwindow.cpp /src/iland/mainwindow.h /src/tools/expressionwrapper.cpp
|
450 |
5069d 17h |
werner |
/src/core/ |
implementing sapling growth... |
|
/src/core/model.cpp /src/core/resourceunit.cpp /src/core/resourceunitspecies.cpp /src/core/resourceunitspecies.h /src/core/sapling.cpp /src/core/sapling.h /src/core/species.h
|
449 |
5069d 18h |
werner |
/src/ |
start of implementation of sapling growth.
setup of the temporal height-map for saplings. |
|
/src/core/sapling.cpp /src/core/sapling.h
/src/core/resourceunit.h /src/core/resourceunitspecies.h /src/core/species.cpp /src/core/species.h /src/core/tree.h /src/iland/iland.pro /src/tools/globalsettings.h
|
446 |
5118d 19h |
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; |
|
/src/core/establishment.cpp /src/core/species.cpp /src/core/species.h /src/iland/version.cpp
|
445 |
5118d 19h |
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. |
|
/src/core/seeddispersal.cpp /src/core/seeddispersal.h /src/core/species.cpp /src/core/species.h /src/core/standloader.cpp /src/core/tree.cpp
|
425 |
5150d 16h |
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). |
|
/src/core/species.cpp /src/core/species.h /src/core/speciesset.cpp /src/core/speciesset.h /src/tools/expression.cpp /src/tools/expression.h
|
420 |
5151d 07h |
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) |
|
/src/core/management.cpp /src/core/species.cpp /src/core/species.h /src/core/speciesset.cpp /src/core/speciesset.h
|
415 |
5151d 16h |
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 |
|
/src/core/seeddispersal.cpp /src/core/seeddispersal.h /src/core/species.cpp /src/core/species.h /src/core/speciesset.cpp
|
391 |
5178d 14h |
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. |
|
/src/core/grid.h /src/core/model.cpp /src/core/modelsettings.h /src/core/seeddispersal.cpp /src/core/seeddispersal.h /src/core/species.cpp /src/core/species.h /src/core/speciesset.cpp /src/core/speciesset.h /src/iland/mainwindow.cpp
|
388 |
5179d 08h |
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. |
|
/src/core/species.cpp /src/core/species.h /src/core/standloader.cpp /src/core/tree.cpp /src/core/tree.h
|
387 |
5179d 08h |
werner |
/src/ |
integrating seed dispersal into the model
moved global constants for grid sizes into globalsettings.h |
|
/src/core/model.cpp /src/core/seeddispersal.cpp /src/core/seeddispersal.h /src/core/species.cpp /src/core/species.h /src/core/speciesset.cpp /src/core/speciesset.h /src/core/tree.cpp /src/tools/globalsettings.h
|
385 |
5179d 17h |
werner |
/src/core/ |
little update to tree age issues |
|
/src/core/species.cpp /src/core/species.h /src/core/tree.h
|
381 |
5179d 19h |
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. |
|
/src/core/species.cpp /src/core/species.h /src/core/standloader.cpp /src/core/tree.cpp /src/core/tree.h
|
308 |
5334d 17h |
werner |
/src/ |
changed stress mortality (tracker#4) |
|
/src/core/species.cpp /src/core/species.h /src/core/tree.cpp /src/iland/iland.pro
|
304 |
5336d 15h |
werner |
/src/core/ |
changed parameter name psiMax to psiMin (tracker#6) |
|
/src/core/species.cpp /src/core/species.h /src/core/watercycle.cpp
|
276 |
5374d 08h |
werner |
/src/ |
added explicit fine root compartment in tree. Changed partitioning, the calculation of the stress index, follow-up change in several outputs. |
|
/src/core/species.cpp /src/core/species.h /src/core/tree.cpp /src/core/tree.h /src/output/treeout.cpp /src/tools/expressionwrapper.cpp /src/tools/expressionwrapper.h /src/tools/globalsettings.cpp
|