From a87ebd5343449030ed5371364aca46e3e31a9048 Mon Sep 17 00:00:00 2001
From: Peter Alexander <peter@blackhillock.co.uk>
Date: Fri, 23 Jun 2017 10:27:44 +0100
Subject: [PATCH] Stop increasing animal product demand for seed use

---
 src/ac/ed/lurg/ModelConfig.java          | 2 +-
 src/ac/ed/lurg/demand/DemandManager.java | 2 +-
 src/ac/ed/lurg/types/CommodityType.java  | 7 +++++++
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index 2ad2f69d..2fee042a 100644
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -201,7 +201,7 @@ public class ModelConfig {
 	public static final double AGRI_EXPANSION_COST_BASE = getDoubleProperty("AGRI_EXPANSION_COST_BASE", 0.05 * LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
 	public static final double AGRI_EXPANSION_COST_BASE_MANAGED_FOREST = getDoubleProperty("AGRI_EXPANSION_COST_BASE_MANAGED_FOREST", 0.3 * LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
 
-	public static final double SEED_AND_WASTE_FRACTION = getDoubleProperty("SEED_AND_WASTE_FRACTION", 0.15);  
+	public static final double SEED_AND_WASTE_FRACTION = getDoubleProperty("SEED_AND_WASTE_FRACTION", 0.1);  
 
 	public static final double TECHNOLOGY_CHANGE_ANNUAL_RATE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("TECHNOLOGY_CHANGE_ANNUAL_RATE", 0.0);
 	public static final int TECHNOLOGY_CHANGE_START_STEP = getIntProperty("TECHNOLOGY_CHANGE_START_STEP", 0);
diff --git a/src/ac/ed/lurg/demand/DemandManager.java b/src/ac/ed/lurg/demand/DemandManager.java
index b21ef8d2..0514ef1b 100644
--- a/src/ac/ed/lurg/demand/DemandManager.java
+++ b/src/ac/ed/lurg/demand/DemandManager.java
@@ -59,7 +59,7 @@ public class DemandManager {
 				double bioenergy = bioenergyDemandManager.getFirstGenBioenergyDemand(c, year, commodity);
 				//		LogWriter.println(String.format("Country %s comm %s: %f",  country, commodity, bioenergy));
 
-				double newDemand = (d + bioenergy) * (1.0 + ModelConfig.SEED_AND_WASTE_FRACTION);
+				double newDemand = (d + bioenergy) * (1.0 + commodity.getSeedWasteRate());
 				Double prevDemand = demandMap.get(commodity);
 
 				if (prevDemand != null)
diff --git a/src/ac/ed/lurg/types/CommodityType.java b/src/ac/ed/lurg/types/CommodityType.java
index 3f5915a9..615b6efb 100644
--- a/src/ac/ed/lurg/types/CommodityType.java
+++ b/src/ac/ed/lurg/types/CommodityType.java
@@ -4,6 +4,8 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+import ac.ed.lurg.ModelConfig;
+
 public enum CommodityType {
 
 	CEREALS("Cereals", "cereals", false),
@@ -54,4 +56,9 @@ public enum CommodityType {
 	public boolean isAnimalProduct() {
 		return isAnimalProduct;
 	}
+	
+	public double getSeedWasteRate() {
+		// just waste rate for animal products
+		return isAnimalProduct ? ModelConfig.SEED_AND_WASTE_FRACTION/2 : ModelConfig.SEED_AND_WASTE_FRACTION;
+	}
 }
-- 
GitLab