Skip to content

Commit

Permalink
Checked stack calculations
Browse files Browse the repository at this point in the history
  • Loading branch information
markvankoningsveld committed Feb 21, 2020
1 parent a8ab4e3 commit ab6ffcc
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 111 deletions.
1 change: 1 addition & 0 deletions opentisim/agribulk_system.py
Expand Up @@ -243,6 +243,7 @@ def berth_invest(self, year, handysize, handymax, panamax):
quay_walls = len(core.find_elements(self, Quay_wall))
if berths > quay_walls:
# bug fixed, should only take the value of the vessels that actually come
# Todo: make sure that also other commodities are included
length_v = max(
(not agribulk_defaults.maize_data['handysize_perc'] == 0) * agribulk_defaults.handysize_data["LOA"],
(not agribulk_defaults.maize_data['handymax_perc'] == 0) * agribulk_defaults.handymax_data["LOA"],
Expand Down
57 changes: 29 additions & 28 deletions opentisim/container_defaults.py
Expand Up @@ -47,6 +47,7 @@
"mobilisation_perc": 0.02,
"maintenance_perc": 0.01,
"insurance_perc": 0.01,
"berthing_gap": 15, # see PIANC (2014), p 98
"freeboard": 4,
"Gijt_constant_2": 2800,
"Gijt_constant": 757.20,
Expand Down Expand Up @@ -154,87 +155,87 @@
"teu_factor": 1.55,
"dwell_time": 4, # days, PIANC (2014b) p 64 (5 - 10)
"peak_factor": 1.2,
"stack_occupancy": 0.8}
"stack_occupancy": 0.8} # acceptable occupancy rate (0.65 to 0.70), Quist and Wijdeven (2014), p 49

reefer_container_data = {"name": 'Empty container',
"type": 'empty_container',
"teu_factor": 1.75,
"dwell_time": 4, # days, PIANC (2014b) p 64 (5 - 10)
"peak_factor": 1.2,
"stack_occupancy": 0.8}
"stack_occupancy": 0.8} # acceptable occupancy rate (0.65 to 0.70), Quist and Wijdeven (2014), p 49

empty_container_data = {"name": 'Empty container',
"type": 'empty_container',
"teu_factor": 1.55,
"dwell_time": 10, # days, PIANC (2014b) p 64 (10 - 20)
"peak_factor": 1.2,
"stack_occupancy": 0.7}
"stack_occupancy": 0.7} # acceptable occupancy rate (0.65 to 0.70), Quist and Wijdeven (2014), p 49

oog_container_data = {"name": 'OOG container',
"type": 'oog_container',
"teu_factor": 1.55,
"dwell_time": 5, # days, PIANC (2014b) p 64 (5 - 10)
"peak_factor": 1.2,
"stack_occupancy": 0.9}
"stack_occupancy": 0.9} # acceptable occupancy rate (0.65 to 0.70), Quist and Wijdeven (2014), p 49

# *** Default inputs: Laden_Stack class

rtg_stack_data = {"name": 'RTG Stack',
"ownership": 'Terminal operator',
"delivery_time": 1,
"lifespan": 40,
"mobilisation": 25_000,
"delivery_time": 1, # years
"lifespan": 40, # years
"mobilisation": 25_000, # USD
"maintenance_perc": 0.1,
"width": 6, # TEU
"height": 5, # TEU
"length": 30, # TEU
"capacity": 900, # TEU
"gross_tgs": 18, # TEU Ground Slot
"area_factor": 2.04, # Based on grasshopper layout
"pavement": 200, # DUMMY
"drainage": 50, # DUMMY
"pavement": 200, # m2 DUMMY
"drainage": 50, # m2 DUMMY
"household": 0.1, # moves
"digout_margin": 1.2, # percentage
"reefer_factor": 2.33, # RHDHV
"consumption": 4, # kWh per active reefer
"reefer_rack": 3500,
"reefer_rack": 3500, # USD
"reefers_present": 0.5} # per reefer spot

rmg_stack_data = {"name": 'RMG Stack',
"ownership": 'Terminal operator',
"delivery_time": 1,
"lifespan": 40,
"mobilisation": 50_000,
"maintenance_perc": 0.1,
"delivery_time": 1, # years
"lifespan": 40, # years
"mobilisation": 50_000, # USD
"maintenance_perc": 0.1, # [-]
"width": 6, # TEU
"height": 5, # TEU
"length": 40, # TEU
"capacity": 1200, # TEU
"gross_tgs": 18.67, # TEU Ground Slot
"area_factor": 2.79, # Based on grasshopper layout
"pavement": 200, # DUMMY
"drainage": 50, # DUMMY
"pavement": 200, # m2 DUMMY
"drainage": 50, # m2 DUMMY
"household": 0.1, # moves
"digout_margin": 1.2, # percentage
"reefer_factor": 2.33, # RHDHV
"consumption": 4, # kWh per active reefer
"reefer_rack": 3500,
"reefer_rack": 3500, # USD
"reefers_present": 0.5} # per reefer spot

sc_stack_data = {"name": 'SC Stack',
"ownership": 'Terminal operator',
"delivery_time": 1,
"lifespan": 40,
"mobilisation": 50_000,
"maintenance_perc": 0.1,
"delivery_time": 1, # years
"lifespan": 40, # years
"mobilisation": 50_000, # USD
"maintenance_perc": 0.1, # [-]
"width": 48, # TEU
"height": 4, # TEU
"length": 20, # TEU
"capacity": 3840, # TEU
"gross_tgs": 26.46, # TEU Ground Slot
"area_factor": 1.45, # Based on grasshopper layout
"pavement": 200, # DUMMY
"drainage": 50, # DUMMY
"pavement": 200, # m2 DUMMY
"drainage": 50, # m2 DUMMY
"household": 0.1, # moves
"digout_margin": 1.2, # percentage
"reefer_factor": 2.33, # RHDHV
Expand All @@ -244,10 +245,10 @@

rs_stack_data = {"name": 'RS Stack',
"ownership": 'Terminal operator',
"delivery_time": 1,
"lifespan": 40,
"mobilisation": 10_000,
"maintenance_perc": 0.1,
"delivery_time": 1, # years
"lifespan": 40, # years
"mobilisation": 10_000, # USD
"maintenance_perc": 0.1, # [-]
"width": 4, # TEU
"height": 4, # TEU
"length": 20, # TEU
Expand All @@ -260,7 +261,7 @@
"digout_margin": 1.2, # percentage
"reefer_factor": 2.33, # RHDHV
"consumption": 4, # kWh per active reefer
"reefer_rack": 3500,
"reefer_rack": 3500, # USD
"reefers_present": 0.5} # per reefer spot


Expand Down
3 changes: 2 additions & 1 deletion opentisim/container_mixins.py
Expand Up @@ -125,7 +125,7 @@ def __init__(self, triggers=[], *args, **kwargs):

class quay_wall_properties_mixin(object):
def __init__(self, ownership, delivery_time, lifespan, mobilisation_min, mobilisation_perc,
maintenance_perc, insurance_perc, freeboard, Gijt_constant_2, Gijt_constant, Gijt_coefficient,
maintenance_perc, insurance_perc, berthing_gap, freeboard, Gijt_constant_2, Gijt_constant, Gijt_coefficient,
max_sinkage, wave_motion, safety_margin, apron_width, apron_pavement, *args, **kwargs):
super().__init__(*args, **kwargs)
"initialize"
Expand All @@ -136,6 +136,7 @@ def __init__(self, ownership, delivery_time, lifespan, mobilisation_min, mobilis
self.mobilisation_perc = mobilisation_perc
self.maintenance_perc = maintenance_perc
self.insurance_perc = insurance_perc
self.berthing_gap = berthing_gap
self.freeboard = freeboard
self.Gijt_constant_2 = Gijt_constant_2
self.Gijt_constant = Gijt_constant
Expand Down

0 comments on commit ab6ffcc

Please sign in to comment.