Loading OpenSimRoot/InputFiles/runBarley.xml +9 −4 Original line number Diff line number Diff line Loading @@ -3,10 +3,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://rootmodels.gitlab.io/opensimroot/XML/SimulaXMLSchema.xsd" explicitCoupling="true" defaultStartingTimeStep="0.1" synchronizationTimeStep="0.1" defaultMaximumTimeStep="0.1" defaultMinimumTimeStep="0.1"> defaultStartingTimeStep="0.2" synchronizationTimeStep="0.2" defaultMaximumTimeStep="0.2" defaultMinimumTimeStep="0.2"> <SimulaBase name="atmosphere"> </SimulaBase> <SimulaBase name="soil"> Loading @@ -21,6 +21,11 @@ <SimulaIncludeFile fileName="templates/plantTemplateFullModel.xml" /> <SimulaIncludeFile fileName="environments/CKA/CKA-barley.xml" /> <!-- for faster testing purposes --> <SimulaDirective path="/environment/dimensions"> <SimulaConstant name="resolution" type="coordinate" replacesPreviousDeclaration="true"> 2 2 2 </SimulaConstant> </SimulaDirective> <SimulaIncludeFile fileName="templates/environmentTemplate.IncludeEvapotranspiration.xml" /> <SimulaIncludeFile Loading OpenSimRoot/src/modules/CarbonModule/Respiration.cpp +12 −5 Original line number Diff line number Diff line Loading @@ -83,8 +83,10 @@ RootSegmentRespirationRate::RootSegmentRespirationRate(SimulaDynamic* pSD):Total if (pSD->getName() == "rootSegmentRespiration" && relativeRespirationSimulator) { //add up steel and cortex mode = 1; sizeSimulator = pSD->existingSibling( "rootSegmentRespirationCortex"); sizeSimulator = pSD->getSibling("rootSegmentRespirationCortex",relativeRespirationSimulator->getUnit()); if(relativeRespirationSimulator->getUnit()=="g"){ ++mode; } } else { relativeRespirationSimulator = parameters->existingChild( "relativeRespiration" + section); Loading Loading @@ -159,11 +161,16 @@ void RootSegmentRespirationRate::calculate(const Time &t, double &rate) { return; } if (mode == 1) { if (mode > 0) { //just add up cortex and steel respiration double steel, cortex; if(mode>1){ relativeRespirationSimulator->getRate(t, steel); sizeSimulator->getRate(t, cortex); }else{ relativeRespirationSimulator->get(t, steel); sizeSimulator->get(t, cortex); } rate = steel + cortex; return; } Loading Loading
OpenSimRoot/InputFiles/runBarley.xml +9 −4 Original line number Diff line number Diff line Loading @@ -3,10 +3,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://rootmodels.gitlab.io/opensimroot/XML/SimulaXMLSchema.xsd" explicitCoupling="true" defaultStartingTimeStep="0.1" synchronizationTimeStep="0.1" defaultMaximumTimeStep="0.1" defaultMinimumTimeStep="0.1"> defaultStartingTimeStep="0.2" synchronizationTimeStep="0.2" defaultMaximumTimeStep="0.2" defaultMinimumTimeStep="0.2"> <SimulaBase name="atmosphere"> </SimulaBase> <SimulaBase name="soil"> Loading @@ -21,6 +21,11 @@ <SimulaIncludeFile fileName="templates/plantTemplateFullModel.xml" /> <SimulaIncludeFile fileName="environments/CKA/CKA-barley.xml" /> <!-- for faster testing purposes --> <SimulaDirective path="/environment/dimensions"> <SimulaConstant name="resolution" type="coordinate" replacesPreviousDeclaration="true"> 2 2 2 </SimulaConstant> </SimulaDirective> <SimulaIncludeFile fileName="templates/environmentTemplate.IncludeEvapotranspiration.xml" /> <SimulaIncludeFile Loading
OpenSimRoot/src/modules/CarbonModule/Respiration.cpp +12 −5 Original line number Diff line number Diff line Loading @@ -83,8 +83,10 @@ RootSegmentRespirationRate::RootSegmentRespirationRate(SimulaDynamic* pSD):Total if (pSD->getName() == "rootSegmentRespiration" && relativeRespirationSimulator) { //add up steel and cortex mode = 1; sizeSimulator = pSD->existingSibling( "rootSegmentRespirationCortex"); sizeSimulator = pSD->getSibling("rootSegmentRespirationCortex",relativeRespirationSimulator->getUnit()); if(relativeRespirationSimulator->getUnit()=="g"){ ++mode; } } else { relativeRespirationSimulator = parameters->existingChild( "relativeRespiration" + section); Loading Loading @@ -159,11 +161,16 @@ void RootSegmentRespirationRate::calculate(const Time &t, double &rate) { return; } if (mode == 1) { if (mode > 0) { //just add up cortex and steel respiration double steel, cortex; if(mode>1){ relativeRespirationSimulator->getRate(t, steel); sizeSimulator->getRate(t, cortex); }else{ relativeRespirationSimulator->get(t, steel); sizeSimulator->get(t, cortex); } rate = steel + cortex; return; } Loading