Add "building period" parameter

gh-actions
Alinson S. Xavier 5 years ago
parent 232784d215
commit 44df06bbfa

@ -1,4 +1,8 @@
# Vertion 0.3.1 (July 17, 2020) # Version 0.3.2 (Aug 7, 2020)
- Add "building period" parameter
# Version 0.3.1 (July 17, 2020)
- Fix expansion cost breakdown - Fix expansion cost breakdown

@ -1,4 +1,3 @@
VERSION := 0.3
JULIA := julia --color=yes --project=@. JULIA := julia --color=yes --project=@.
SRC_FILES := $(wildcard src/*.jl test/*.jl) SRC_FILES := $(wildcard src/*.jl test/*.jl)

@ -1,7 +1,7 @@
name = "RELOG" name = "RELOG"
uuid = "a2afcdf7-cf04-4913-85f9-c0d81ddf2008" uuid = "a2afcdf7-cf04-4913-85f9-c0d81ddf2008"
authors = ["Alinson S Xavier <axavier@anl.gov>"] authors = ["Alinson S Xavier <axavier@anl.gov>"]
version = "0.3.1" version = "0.3.2"
[deps] [deps]
Cbc = "9961bab8-2fa3-5c5a-9d89-47fab24efd76" Cbc = "9961bab8-2fa3-5c5a-9d89-47fab24efd76"

@ -8,20 +8,26 @@
<link rel="/img/favicon.ico"> <link rel="shortcut icon" href="/img/favicon.ico">
<title>RELOG</title> <title>RELOG</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/v4-shims.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css">
<link href='//fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//rsms.me/inter/inter.css' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
<link href="/css/bootstrap-custom.min.css" rel="stylesheet"> <link href="/css/bootstrap-custom.min.css" rel="stylesheet">
<link href="/css/base.min.css" rel="stylesheet"> <link href="/css/base.min.css" rel="stylesheet">
<link href="/css/cinder.min.css" rel="stylesheet"> <link href="/css/cinder.min.css" rel="stylesheet">
<link href="/css/highlight.min.css" rel="stylesheet">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/styles/github.min.css">
<link href="/css/custom.css" rel="stylesheet"> <link href="/css/custom.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
@ -30,15 +36,6 @@
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]--> <![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
google: {
families: ['Open Sans', 'PT Sans']
}
});
</script>
@ -128,17 +125,23 @@
<hr> <hr>
<p> <p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.<br></small> <small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</p></small> <small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer> </footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="/js/bootstrap-3.0.3.min.js"></script> <script src="/js/bootstrap-3.0.3.min.js"></script>
<script src="/js/highlight.pack.js"></script>
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script> <script>hljs.initHighlightingOnLoad();</script>
<script>var base_url = "/"</script> <script>var base_url = "/"</script>
<script src="/js/base.js"></script> <script src="/js/base.js"></script>
@ -150,8 +153,11 @@
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="searchModalLabel">Search</h4> <h4 class="modal-title" id="searchModalLabel">Search</h4>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p> <p>

@ -10,23 +10,28 @@ body {
color: #343838; color: #343838;
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
font-family:'PT Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-family:'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #222; color: #222;
} }
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small {
color: #B1B7B9; color: #B1B7B9;
} }
h2 {
margin-top: 35px;
}
h1, h2 { h1, h2 {
font-weight: 700; font-weight: 700;
} }
h4 { h4 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 300; font-weight: 300;
margin-top: 20px; margin-top: 20px;
font-style: italic; font-style: italic;
} }
h5 { h5 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 300; font-weight: 300;
font-variant: small-caps; font-variant: small-caps;
} }
@ -41,7 +46,7 @@ pre {
margin-bottom: 25px; margin-bottom: 25px;
} }
.lead { .lead {
font-family:"Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: 400; font-weight: 400;
line-height: 1.4; line-height: 1.4;
letter-spacing: 0.0312em; letter-spacing: 0.0312em;
@ -54,7 +59,8 @@ pre {
.bs-sidenav { .bs-sidenav {
background-image: url("../img/grid11.png"); background-image: url("../img/grid11.png");
background-repeat: repeat; background-repeat: repeat;
font-size: 12px; font-family: Inter,"Helvetica Neue",Helvetica,Arial,sans-serif;
font-size: 13px;
} }
.well { .well {
background-color: #FCFDFF; background-color: #FCFDFF;
@ -71,7 +77,7 @@ pre {
box-shadow: none; box-shadow: none;
} }
#mkdocs-search-query { #mkdocs-search-query {
font-family:"Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
color: #343838; color: #343838;

@ -1 +1 @@
body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.7;background-color:#FFF;color:#343838}h1,h2,h3,h4,h5,h6{font-family:'PT Sans','Helvetica Neue',Helvetica,Arial,sans-serif;color:#222}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{color:#b1b7b9}h1,h2{font-weight:700}h4{font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300;margin-top:20px;font-style:italic}h5{font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300;font-variant:small-caps}pre,code{background-color:#fcfdff}pre>code{font-size:13px}pre{margin-top:25px;margin-bottom:25px}.lead{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.4;letter-spacing:.0312em;color:#b1b7b9}.navbar-default{background-color:#343838;border-bottom:8px #ebf2f2 solid}.bs-sidenav{background-image:url("../img/grid11.png");background-repeat:repeat;font-size:12px}.well{background-color:#fcfdff}.btn-default{background-color:#fcfdff}.table-striped>tbody>tr:nth-child(2n+1)>td,.table-striped>tbody>tr:nth-child(2n+1)>th{background-color:#fcfdff}#mkdocs-search-query:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#mkdocs-search-query{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:20px;font-weight:700;color:#343838;height:45px}footer>hr{width:35%} body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.7;background-color:#FFF;color:#343838}h1,h2,h3,h4,h5,h6{font-family:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;color:#222}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{color:#b1b7b9}h2{margin-top:35px}h1,h2{font-weight:700}h4{font-family:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300;margin-top:20px;font-style:italic}h5{font-family:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300;font-variant:small-caps}pre,code{background-color:#fcfdff}pre>code{font-size:13px}pre{margin-top:25px;margin-bottom:25px}.lead{font-family:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.4;letter-spacing:.0312em;color:#b1b7b9}.navbar-default{background-color:#343838;border-bottom:8px #ebf2f2 solid}.bs-sidenav{background-image:url("../img/grid11.png");background-repeat:repeat;font-family:Inter,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px}.well{background-color:#fcfdff}.btn-default{background-color:#fcfdff}.table-striped>tbody>tr:nth-child(2n+1)>td,.table-striped>tbody>tr:nth-child(2n+1)>th{background-color:#fcfdff}#mkdocs-search-query:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}#mkdocs-search-query{font-family:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:20px;font-weight:700;color:#343838;height:45px}footer>hr{width:35%}

@ -8,20 +8,26 @@
<link rel="img/favicon.ico"> <link rel="shortcut icon" href="img/favicon.ico">
<title>Home - RELOG</title> <title>Home - RELOG</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/v4-shims.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css">
<link href='//fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//rsms.me/inter/inter.css' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
<link href="css/bootstrap-custom.min.css" rel="stylesheet"> <link href="css/bootstrap-custom.min.css" rel="stylesheet">
<link href="css/base.min.css" rel="stylesheet"> <link href="css/base.min.css" rel="stylesheet">
<link href="css/cinder.min.css" rel="stylesheet"> <link href="css/cinder.min.css" rel="stylesheet">
<link href="css/highlight.min.css" rel="stylesheet">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/styles/github.min.css">
<link href="css/custom.css" rel="stylesheet"> <link href="css/custom.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
@ -30,15 +36,6 @@
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]--> <![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
google: {
families: ['Open Sans', 'PT Sans']
}
});
</script>
@ -189,17 +186,23 @@ POSSIBILITY OF SUCH DAMAGE.
<hr> <hr>
<p> <p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.<br></small> <small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</p></small> <small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer> </footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/bootstrap-3.0.3.min.js"></script> <script src="js/bootstrap-3.0.3.min.js"></script>
<script src="js/highlight.pack.js"></script>
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script> <script>hljs.initHighlightingOnLoad();</script>
<script>var base_url = "."</script> <script>var base_url = "."</script>
<script src="js/base.js"></script> <script src="js/base.js"></script>
@ -211,8 +214,11 @@ POSSIBILITY OF SUCH DAMAGE.
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="searchModalLabel">Search</h4> <h4 class="modal-title" id="searchModalLabel">Search</h4>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p> <p>
@ -275,6 +281,6 @@ POSSIBILITY OF SUCH DAMAGE.
</html> </html>
<!-- <!--
MkDocs version : 1.0.4 MkDocs version : 1.1.2
Build Date UTC : 2020-06-25 22:26:12 Build Date UTC : 2020-08-07 18:14:42.160379+00:00
--> -->

@ -8,20 +8,26 @@
<link rel="../img/favicon.ico"> <link rel="shortcut icon" href="../img/favicon.ico">
<title>Install - RELOG</title> <title>Install - RELOG</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/v4-shims.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css">
<link href='//fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//rsms.me/inter/inter.css' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
<link href="../css/bootstrap-custom.min.css" rel="stylesheet"> <link href="../css/bootstrap-custom.min.css" rel="stylesheet">
<link href="../css/base.min.css" rel="stylesheet"> <link href="../css/base.min.css" rel="stylesheet">
<link href="../css/cinder.min.css" rel="stylesheet"> <link href="../css/cinder.min.css" rel="stylesheet">
<link href="../css/highlight.min.css" rel="stylesheet">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/styles/github.min.css">
<link href="../css/custom.css" rel="stylesheet"> <link href="../css/custom.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
@ -30,15 +36,6 @@
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]--> <![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
google: {
families: ['Open Sans', 'PT Sans']
}
});
</script>
@ -146,17 +143,23 @@
<hr> <hr>
<p> <p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.<br></small> <small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</p></small> <small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer> </footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script> <script src="../js/bootstrap-3.0.3.min.js"></script>
<script src="../js/highlight.pack.js"></script>
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script> <script>hljs.initHighlightingOnLoad();</script>
<script>var base_url = ".."</script> <script>var base_url = ".."</script>
<script src="../js/base.js"></script> <script src="../js/base.js"></script>
@ -168,8 +171,11 @@
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="searchModalLabel">Search</h4> <h4 class="modal-title" id="searchModalLabel">Search</h4>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p> <p>

@ -1,88 +1,78 @@
function getSearchTerm() function getSearchTerm() {
{
var sPageURL = window.location.search.substring(1); var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&'); var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) for (var i = 0; i < sURLVariables.length; i++) {
{
var sParameterName = sURLVariables[i].split('='); var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == 'q') if (sParameterName[0] == 'q') {
{
return sParameterName[1]; return sParameterName[1];
} }
} }
} }
$(document).ready(function() { $(document).ready(function() {
/**
* ------------------------------------------------------------------------
* Cinder theme specific
* ------------------------------------------------------------------------
*/
hljs.initHighlightingOnLoad();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Taken from themes/mkdocs/js/base.js * Taken from themes/mkdocs/js/base.js
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var search_term = getSearchTerm(), var search_term = getSearchTerm(),
$search_modal = $('#mkdocs_search_modal'), $search_modal = $('#mkdocs_search_modal'),
$keyboard_modal = $('#mkdocs_keyboard_modal'); $keyboard_modal = $('#mkdocs_keyboard_modal');
if(search_term){ if (search_term) {
$search_modal.modal(); $search_modal.modal();
} }
// make sure search input gets autofocus everytime modal opens. // make sure search input gets autofocus everytime modal opens.
$search_modal.on('shown.bs.modal', function () { $search_modal.on('shown.bs.modal', function() {
$search_modal.find('#mkdocs-search-query').focus(); $search_modal.find('#mkdocs-search-query').focus();
}); });
// Close search modal when result is selected // Close search modal when result is selected
// The links get added later so listen to parent // The links get added later so listen to parent
$('#mkdocs-search-results').click(function(e) { $('#mkdocs-search-results').click(function(e) {
if ($(e.target).is('a')) { if ($(e.target).is('a')) {
$search_modal.modal('hide'); $search_modal.modal('hide');
} }
}); });
if (typeof shortcuts !== 'undefined') { if (typeof shortcuts !== 'undefined') {
// Populate keyboard modal with proper Keys // Populate keyboard modal with proper Keys
$keyboard_modal.find('.help.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.help]; $keyboard_modal.find('.help.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.help];
$keyboard_modal.find('.prev.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.previous]; $keyboard_modal.find('.prev.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.previous];
$keyboard_modal.find('.next.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.next]; $keyboard_modal.find('.next.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.next];
$keyboard_modal.find('.search.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.search]; $keyboard_modal.find('.search.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.search];
// Keyboard navigation // Keyboard navigation
document.addEventListener("keydown", function(e) { document.addEventListener("keydown", function(e) {
if ($(e.target).is(':input')) return true; if ($(e.target).is(':input')) return true;
var key = e.which || e.key || window.event && window.event.key; var key = e.which || e.key || window.event && window.event.key;
var page; var page;
switch (key) { switch (key) {
case shortcuts.next: case shortcuts.next:
page = $('.navbar a[rel="next"]:first').prop('href'); page = $('.navbar a[rel="next"]:first').prop('href');
break; break;
case shortcuts.previous: case shortcuts.previous:
page = $('.navbar a[rel="prev"]:first').prop('href'); page = $('.navbar a[rel="prev"]:first').prop('href');
break; break;
case shortcuts.search: case shortcuts.search:
e.preventDefault(); e.preventDefault();
$keyboard_modal.modal('hide'); $keyboard_modal.modal('hide');
$search_modal.modal('show'); $search_modal.modal('show');
$search_modal.find('#mkdocs-search-query').focus(); $search_modal.find('#mkdocs-search-query').focus();
break; break;
case shortcuts.help: case shortcuts.help:
$search_modal.modal('hide'); $search_modal.modal('hide');
$keyboard_modal.modal('show'); $keyboard_modal.modal('show');
break; break;
default: break; default:
} break;
if (page) { }
$keyboard_modal.modal('hide'); if (page) {
window.location.href = page; $keyboard_modal.modal('hide');
} window.location.href = page;
}); }
});
} }
$('table').addClass('table table-striped table-hover'); $('table').addClass('table table-striped table-hover');
@ -121,115 +111,115 @@ $("li.disabled a").click(function() {
// See https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes // See https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
// We only list common keys below. Obscure keys are omited and their use is discouraged. // We only list common keys below. Obscure keys are omited and their use is discouraged.
var keyCodes = { var keyCodes = {
8: 'backspace', 8: 'backspace',
9: 'tab', 9: 'tab',
13: 'enter', 13: 'enter',
16: 'shift', 16: 'shift',
17: 'ctrl', 17: 'ctrl',
18: 'alt', 18: 'alt',
19: 'pause/break', 19: 'pause/break',
20: 'caps lock', 20: 'caps lock',
27: 'escape', 27: 'escape',
32: 'spacebar', 32: 'spacebar',
33: 'page up', 33: 'page up',
34: 'page down', 34: 'page down',
35: 'end', 35: 'end',
36: 'home', 36: 'home',
37: '&larr;', 37: '&larr;',
38: '&uarr;', 38: '&uarr;',
39: '&rarr;', 39: '&rarr;',
40: '&darr;', 40: '&darr;',
45: 'insert', 45: 'insert',
46: 'delete', 46: 'delete',
48: '0', 48: '0',
49: '1', 49: '1',
50: '2', 50: '2',
51: '3', 51: '3',
52: '4', 52: '4',
53: '5', 53: '5',
54: '6', 54: '6',
55: '7', 55: '7',
56: '8', 56: '8',
57: '9', 57: '9',
65: 'a', 65: 'a',
66: 'b', 66: 'b',
67: 'c', 67: 'c',
68: 'd', 68: 'd',
69: 'e', 69: 'e',
70: 'f', 70: 'f',
71: 'g', 71: 'g',
72: 'h', 72: 'h',
73: 'i', 73: 'i',
74: 'j', 74: 'j',
75: 'k', 75: 'k',
76: 'l', 76: 'l',
77: 'm', 77: 'm',
78: 'n', 78: 'n',
79: 'o', 79: 'o',
80: 'p', 80: 'p',
81: 'q', 81: 'q',
82: 'r', 82: 'r',
83: 's', 83: 's',
84: 't', 84: 't',
85: 'u', 85: 'u',
86: 'v', 86: 'v',
87: 'w', 87: 'w',
88: 'x', 88: 'x',
89: 'y', 89: 'y',
90: 'z', 90: 'z',
91: 'Left Windows Key / Left ⌘', 91: 'Left Windows Key / Left ⌘',
92: 'Right Windows Key', 92: 'Right Windows Key',
93: 'Windows Menu / Right ⌘', 93: 'Windows Menu / Right ⌘',
96: 'numpad 0', 96: 'numpad 0',
97: 'numpad 1', 97: 'numpad 1',
98: 'numpad 2', 98: 'numpad 2',
99: 'numpad 3', 99: 'numpad 3',
100: 'numpad 4', 100: 'numpad 4',
101: 'numpad 5', 101: 'numpad 5',
102: 'numpad 6', 102: 'numpad 6',
103: 'numpad 7', 103: 'numpad 7',
104: 'numpad 8', 104: 'numpad 8',
105: 'numpad 9', 105: 'numpad 9',
106: 'multiply', 106: 'multiply',
107: 'add', 107: 'add',
109: 'subtract', 109: 'subtract',
110: 'decimal point', 110: 'decimal point',
111: 'divide', 111: 'divide',
112: 'f1', 112: 'f1',
113: 'f2', 113: 'f2',
114: 'f3', 114: 'f3',
115: 'f4', 115: 'f4',
116: 'f5', 116: 'f5',
117: 'f6', 117: 'f6',
118: 'f7', 118: 'f7',
119: 'f8', 119: 'f8',
120: 'f9', 120: 'f9',
121: 'f10', 121: 'f10',
122: 'f11', 122: 'f11',
123: 'f12', 123: 'f12',
124: 'f13', 124: 'f13',
125: 'f14', 125: 'f14',
126: 'f15', 126: 'f15',
127: 'f16', 127: 'f16',
128: 'f17', 128: 'f17',
129: 'f18', 129: 'f18',
130: 'f19', 130: 'f19',
131: 'f20', 131: 'f20',
132: 'f21', 132: 'f21',
133: 'f22', 133: 'f22',
134: 'f23', 134: 'f23',
135: 'f24', 135: 'f24',
144: 'num lock', 144: 'num lock',
145: 'scroll lock', 145: 'scroll lock',
186: '&semi;', 186: '&semi;',
187: '&equals;', 187: '&equals;',
188: '&comma;', 188: '&comma;',
189: '&hyphen;', 189: '&hyphen;',
190: '&period;', 190: '&period;',
191: '&quest;', 191: '&quest;',
192: '&grave;', 192: '&grave;',
219: '&lsqb;', 219: '&lsqb;',
220: '&bsol;', 220: '&bsol;',
221: '&rsqb;', 221: '&rsqb;',
222: '&apos;', 222: '&apos;',
}; };

@ -8,20 +8,26 @@
<link rel="../img/favicon.ico"> <link rel="shortcut icon" href="../img/favicon.ico">
<title>Model - RELOG</title> <title>Model - RELOG</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/v4-shims.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css">
<link href='//fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//rsms.me/inter/inter.css' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
<link href="../css/bootstrap-custom.min.css" rel="stylesheet"> <link href="../css/bootstrap-custom.min.css" rel="stylesheet">
<link href="../css/base.min.css" rel="stylesheet"> <link href="../css/base.min.css" rel="stylesheet">
<link href="../css/cinder.min.css" rel="stylesheet"> <link href="../css/cinder.min.css" rel="stylesheet">
<link href="../css/highlight.min.css" rel="stylesheet">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/styles/github.min.css">
<link href="../css/custom.css" rel="stylesheet"> <link href="../css/custom.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
@ -30,15 +36,6 @@
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]--> <![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
google: {
families: ['Open Sans', 'PT Sans']
}
});
</script>
@ -157,12 +154,17 @@
<td align="left"><code>time horizon (years)</code></td> <td align="left"><code>time horizon (years)</code></td>
<td>Number of years in the simulation.</td> <td>Number of years in the simulation.</td>
</tr> </tr>
<tr>
<td align="left"><code>building period (years)</code></td>
<td>List of years in which we are allowed to open new plants. For example, if this parameter is set to <code>[1,2,3]</code>, we can only open plants during the first three years. By default, this equals <code>[1]</code>; that is, plants can only be opened during the first year.</td>
</tr>
</tbody> </tbody>
</table> </table>
<h3 id="example">Example</h3> <h3 id="example">Example</h3>
<pre><code class="json">{ <pre><code class="json">{
&quot;parameters&quot;: { &quot;parameters&quot;: {
&quot;time horizon (years)&quot;: 2, &quot;time horizon (years)&quot;: 2,
&quot;building period (years)&quot;: [1]
} }
} }
</code></pre> </code></pre>
@ -418,17 +420,23 @@
<hr> <hr>
<p> <p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.<br></small> <small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</p></small> <small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer> </footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script> <script src="../js/bootstrap-3.0.3.min.js"></script>
<script src="../js/highlight.pack.js"></script>
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script> <script>hljs.initHighlightingOnLoad();</script>
<script>var base_url = ".."</script> <script>var base_url = ".."</script>
<script src="../js/base.js"></script> <script src="../js/base.js"></script>
@ -440,8 +448,11 @@
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="searchModalLabel">Search</h4> <h4 class="modal-title" id="searchModalLabel">Search</h4>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p> <p>

@ -8,20 +8,26 @@
<link rel="../img/favicon.ico"> <link rel="shortcut icon" href="../img/favicon.ico">
<title>Optimize - RELOG</title> <title>Optimize - RELOG</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/v4-shims.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css"> <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css">
<link href='//fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//rsms.me/inter/inter.css' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'> <link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
<link href="../css/bootstrap-custom.min.css" rel="stylesheet"> <link href="../css/bootstrap-custom.min.css" rel="stylesheet">
<link href="../css/base.min.css" rel="stylesheet"> <link href="../css/base.min.css" rel="stylesheet">
<link href="../css/cinder.min.css" rel="stylesheet"> <link href="../css/cinder.min.css" rel="stylesheet">
<link href="../css/highlight.min.css" rel="stylesheet">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/styles/github.min.css">
<link href="../css/custom.css" rel="stylesheet"> <link href="../css/custom.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
@ -30,15 +36,6 @@
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
<![endif]--> <![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
google: {
families: ['Open Sans', 'PT Sans']
}
});
</script>
@ -145,17 +142,23 @@ RELOG.solve(&quot;/home/user/instance.json&quot;)
<hr> <hr>
<p> <p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.<br></small> <small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</p></small> <small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer> </footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script> <script src="../js/bootstrap-3.0.3.min.js"></script>
<script src="../js/highlight.pack.js"></script>
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script> <script>hljs.initHighlightingOnLoad();</script>
<script>var base_url = ".."</script> <script>var base_url = ".."</script>
<script src="../js/base.js"></script> <script src="../js/base.js"></script>
@ -167,8 +170,11 @@ RELOG.solve(&quot;/home/user/instance.json&quot;)
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="searchModalLabel">Search</h4> <h4 class="modal-title" id="searchModalLabel">Search</h4>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p> <p>

File diff suppressed because it is too large Load Diff

@ -43,7 +43,7 @@ function displayResults (results) {
function doSearch () { function doSearch () {
var query = document.getElementById('mkdocs-search-query').value; var query = document.getElementById('mkdocs-search-query').value;
if (query.length > 2) { if (query.length > min_search_length) {
if (!window.Worker) { if (!window.Worker) {
displayResults(search(query)); displayResults(search(query));
} else { } else {
@ -73,6 +73,8 @@ function onWorkerMessage (e) {
} else if (e.data.results) { } else if (e.data.results) {
var results = e.data.results; var results = e.data.results;
displayResults(results); displayResults(results);
} else if (e.data.config) {
min_search_length = e.data.config.min_search_length-1;
} }
} }

File diff suppressed because one or more lines are too long

@ -58,6 +58,7 @@ function onScriptsLoaded () {
if (data.config && data.config.separator && data.config.separator.length) { if (data.config && data.config.separator && data.config.separator.length) {
lunr.tokenizer.separator = new RegExp(data.config.separator); lunr.tokenizer.separator = new RegExp(data.config.separator);
} }
if (data.index) { if (data.index) {
index = lunr.Index.load(data.index); index = lunr.Index.load(data.index);
data.docs.forEach(function (doc) { data.docs.forEach(function (doc) {
@ -84,6 +85,7 @@ function onScriptsLoaded () {
console.log('Lunr index built, search ready'); console.log('Lunr index built, search ready');
} }
allowSearch = true; allowSearch = true;
postMessage({config: data.config});
postMessage({allowSearch: allowSearch}); postMessage({allowSearch: allowSearch});
} }

@ -1,23 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>
<url>
<loc>None</loc> <loc>None</loc>
<lastmod>2020-06-25</lastmod> <lastmod>2020-08-07</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url><url>
<url>
<loc>None</loc> <loc>None</loc>
<lastmod>2020-06-25</lastmod> <lastmod>2020-08-07</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url><url>
<url>
<loc>None</loc> <loc>None</loc>
<lastmod>2020-06-25</lastmod> <lastmod>2020-08-07</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url><url>
<url>
<loc>None</loc> <loc>None</loc>
<lastmod>2020-06-25</lastmod> <lastmod>2020-08-07</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
</urlset> </urlset>

Binary file not shown.

@ -6,9 +6,10 @@ The first step when using RELOG is to describe the reverse logistics pipeline an
The **parameters** section describes details about the simulation itself. The **parameters** section describes details about the simulation itself.
| Key | Description | Key | Description
|:------------------------|---------------| |:--------------------------|---------------|
|`time horizon (years)` | Number of years in the simulation. |`time horizon (years)` | Number of years in the simulation.
|`building period (years)` | List of years in which we are allowed to open new plants. For example, if this parameter is set to `[1,2,3]`, we can only open plants during the first three years. By default, this equals `[1]`; that is, plants can only be opened during the first year. |
### Example ### Example
@ -16,6 +17,7 @@ The **parameters** section describes details about the simulation itself.
{ {
"parameters": { "parameters": {
"time horizon (years)": 2, "time horizon (years)": 2,
"building period (years)": [1]
} }
} }
``` ```

@ -52,6 +52,7 @@ mutable struct Instance
products::Array{Product, 1} products::Array{Product, 1}
collection_centers::Array{CollectionCenter, 1} collection_centers::Array{CollectionCenter, 1}
plants::Array{Plant, 1} plants::Array{Plant, 1}
building_period::Array{Int64}
end end
function validate(json, schema) function validate(json, schema)
@ -82,6 +83,11 @@ function load(path::String)::Instance
json_schema["definitions"]["TimeSeries"]["maxItems"] = T json_schema["definitions"]["TimeSeries"]["maxItems"] = T
validate(json, Schema(json_schema)) validate(json, Schema(json_schema))
building_period = [1]
if "building period (years)" in keys(json)
building_period = json["building period (years)"]
end
plants = Plant[] plants = Plant[]
products = Product[] products = Product[]
collection_centers = CollectionCenter[] collection_centers = CollectionCenter[]
@ -194,5 +200,5 @@ function load(path::String)::Instance
end end
end end
return Instance(T, products, collection_centers, plants) return Instance(T, products, collection_centers, plants, building_period)
end end

@ -184,6 +184,11 @@ function create_process_node_constraints!(model::ManufacturingModel)
else else
@constraint(mip, vars.is_open[n, t] == vars.open_plant[n, t]) @constraint(mip, vars.is_open[n, t] == vars.open_plant[n, t])
end end
# Plant can only be opened during building period
if t model.instance.building_period
@constraint(mip, vars.open_plant[n, t] == 0)
end
end end
end end

Loading…
Cancel
Save