Skip to content

Commit 6ce6614

Browse files
authored
Merge pull request #102 from sandialabs/jpof
Misc edits merged into 'dev'
2 parents 63eb343 + 4d352d1 commit 6ce6614

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+3053
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
/build/
66

77
_build
8+
_spack
9+
_spack_tpls
810
/.vs
911
/out/build
1012
__pycache__

lib/coek/coek/util/DataPortal.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414

1515
namespace coek {
1616

17-
#ifdef WITH_RAPIDJSON
17+
//
18+
// Locally defined utility functions
19+
//
1820
namespace {
1921

2022
template <typename T>
@@ -297,6 +299,11 @@ void load_param_data(T& obj,
297299
}
298300
}
299301

302+
}
303+
304+
#ifdef WITH_RAPIDJSON
305+
namespace {
306+
300307
//
301308
// Process JSON file
302309
//

lib/jpof/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from .jpof_writer import JPOFWriter
2+

lib/jpof/example/dsrosen.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import pyomo.environ as pe
2+
import jpof
3+
4+
def create(N):
5+
M = pe.ConcreteModel()
6+
7+
def x_init(model, i):
8+
if i % 2 == 1:
9+
return -1.2
10+
else:
11+
return 1.2
12+
13+
M.x = pe.Var(pe.RangeSet(1,N), initialize=x_init)
14+
M.p = pe.Param(initialize=0, mutable=True)
15+
M.I = pe.RangeSet(1,N-1)
16+
17+
M.f = pe.Objective(expr=sum( 100*(M.x[i+1]-M.x[i]**2+M.p)**2 + (1-M.x[i])**2 for i in M.I))
18+
19+
return M
20+
21+
writer = jpof.JPOFWriter()
22+
23+
M = create(3)
24+
writer(M, filename="dsrosen3.jpof", io_options={'file_determinism':3, 'symbolic_solver_labels':True})
25+
M = create(6)
26+
writer(M, filename="dsrosen6.jpof", io_options={'file_determinism':3, 'symbolic_solver_labels':True})
27+
M = create(10)
28+
writer(M, filename="dsrosen10.jpof", io_options={'file_determinism':3, 'symbolic_solver_labels':True})
29+

lib/jpof/example/dsrosen10.jpof

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{
2+
"__metadata__": {
3+
"version": 20210301,
4+
"format": "JSON Parameterized Optimization Format (JPOF)"
5+
},
6+
"model": {
7+
"config": {
8+
"symbolic_solver_labels": 1,
9+
"skip_trivial_constraints": 0,
10+
"file_determinism": 3,
11+
"include_all_variable_bounds": 0
12+
},
13+
"obj": [
14+
{
15+
"expr": "sum,18,*,N,100,pow,sum,3,V,1,neg,pow,V,0,N,2,P,0,N,2,pow,+,*,N,-1,V,0,N,1,N,2,*,N,100,pow,sum,3,V,2,neg,pow,V,1,N,2,P,0,N,2,pow,+,*,N,-1,V,1,N,1,N,2,*,N,100,pow,sum,3,V,3,neg,pow,V,2,N,2,P,0,N,2,pow,+,*,N,-1,V,2,N,1,N,2,*,N,100,pow,sum,3,V,4,neg,pow,V,3,N,2,P,0,N,2,pow,+,*,N,-1,V,3,N,1,N,2,*,N,100,pow,sum,3,V,5,neg,pow,V,4,N,2,P,0,N,2,pow,+,*,N,-1,V,4,N,1,N,2,*,N,100,pow,sum,3,V,6,neg,pow,V,5,N,2,P,0,N,2,pow,+,*,N,-1,V,5,N,1,N,2,*,N,100,pow,sum,3,V,7,neg,pow,V,6,N,2,P,0,N,2,pow,+,*,N,-1,V,6,N,1,N,2,*,N,100,pow,sum,3,V,8,neg,pow,V,7,N,2,P,0,N,2,pow,+,*,N,-1,V,7,N,1,N,2,*,N,100,pow,sum,3,V,9,neg,pow,V,8,N,2,P,0,N,2,pow,+,*,N,-1,V,8,N,1,N,2",
16+
"sense": "min",
17+
"label": "f"
18+
}
19+
],
20+
"con": [],
21+
"var": [
22+
{
23+
"label": "x[1]",
24+
"id": 0,
25+
"value": -1.2,
26+
"type": "R",
27+
"fixed": 0
28+
},
29+
{
30+
"label": "x[2]",
31+
"id": 1,
32+
"value": 1.2,
33+
"type": "R",
34+
"fixed": 0
35+
},
36+
{
37+
"label": "x[3]",
38+
"id": 2,
39+
"value": -1.2,
40+
"type": "R",
41+
"fixed": 0
42+
},
43+
{
44+
"label": "x[4]",
45+
"id": 3,
46+
"value": 1.2,
47+
"type": "R",
48+
"fixed": 0
49+
},
50+
{
51+
"label": "x[5]",
52+
"id": 4,
53+
"value": -1.2,
54+
"type": "R",
55+
"fixed": 0
56+
},
57+
{
58+
"label": "x[6]",
59+
"id": 5,
60+
"value": 1.2,
61+
"type": "R",
62+
"fixed": 0
63+
},
64+
{
65+
"label": "x[7]",
66+
"id": 6,
67+
"value": -1.2,
68+
"type": "R",
69+
"fixed": 0
70+
},
71+
{
72+
"label": "x[8]",
73+
"id": 7,
74+
"value": 1.2,
75+
"type": "R",
76+
"fixed": 0
77+
},
78+
{
79+
"label": "x[9]",
80+
"id": 8,
81+
"value": -1.2,
82+
"type": "R",
83+
"fixed": 0
84+
},
85+
{
86+
"label": "x[10]",
87+
"id": 9,
88+
"value": 1.2,
89+
"type": "R",
90+
"fixed": 0
91+
}
92+
],
93+
"param": [
94+
{
95+
"label": "p",
96+
"id": 0,
97+
"value": 0
98+
}
99+
],
100+
"set": {},
101+
"indexed_vars": [
102+
"x"
103+
],
104+
"indexed_params": []
105+
}
106+
}

lib/jpof/example/dsrosen3.jpof

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"__metadata__": {
3+
"version": 20210301,
4+
"format": "JSON Parameterized Optimization Format (JPOF)"
5+
},
6+
"model": {
7+
"config": {
8+
"symbolic_solver_labels": 1,
9+
"skip_trivial_constraints": 0,
10+
"file_determinism": 3,
11+
"include_all_variable_bounds": 0
12+
},
13+
"obj": [
14+
{
15+
"expr": "sum,4,*,N,100,pow,sum,3,V,1,neg,pow,V,0,N,2,P,0,N,2,pow,+,*,N,-1,V,0,N,1,N,2,*,N,100,pow,sum,3,V,2,neg,pow,V,1,N,2,P,0,N,2,pow,+,*,N,-1,V,1,N,1,N,2",
16+
"sense": "min",
17+
"label": "f"
18+
}
19+
],
20+
"con": [],
21+
"var": [
22+
{
23+
"label": "x[1]",
24+
"id": 0,
25+
"value": -1.2,
26+
"type": "R",
27+
"fixed": 0
28+
},
29+
{
30+
"label": "x[2]",
31+
"id": 1,
32+
"value": 1.2,
33+
"type": "R",
34+
"fixed": 0
35+
},
36+
{
37+
"label": "x[3]",
38+
"id": 2,
39+
"value": -1.2,
40+
"type": "R",
41+
"fixed": 0
42+
}
43+
],
44+
"param": [
45+
{
46+
"label": "p",
47+
"id": 0,
48+
"value": 0
49+
}
50+
],
51+
"set": {},
52+
"indexed_vars": [
53+
"x"
54+
],
55+
"indexed_params": []
56+
}
57+
}

lib/jpof/example/dsrosen6.jpof

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
{
2+
"__metadata__": {
3+
"version": 20210301,
4+
"format": "JSON Parameterized Optimization Format (JPOF)"
5+
},
6+
"model": {
7+
"config": {
8+
"symbolic_solver_labels": 1,
9+
"skip_trivial_constraints": 0,
10+
"file_determinism": 3,
11+
"include_all_variable_bounds": 0
12+
},
13+
"obj": [
14+
{
15+
"expr": "sum,10,*,N,100,pow,sum,3,V,1,neg,pow,V,0,N,2,P,0,N,2,pow,+,*,N,-1,V,0,N,1,N,2,*,N,100,pow,sum,3,V,2,neg,pow,V,1,N,2,P,0,N,2,pow,+,*,N,-1,V,1,N,1,N,2,*,N,100,pow,sum,3,V,3,neg,pow,V,2,N,2,P,0,N,2,pow,+,*,N,-1,V,2,N,1,N,2,*,N,100,pow,sum,3,V,4,neg,pow,V,3,N,2,P,0,N,2,pow,+,*,N,-1,V,3,N,1,N,2,*,N,100,pow,sum,3,V,5,neg,pow,V,4,N,2,P,0,N,2,pow,+,*,N,-1,V,4,N,1,N,2",
16+
"sense": "min",
17+
"label": "f"
18+
}
19+
],
20+
"con": [],
21+
"var": [
22+
{
23+
"label": "x[1]",
24+
"id": 0,
25+
"value": -1.2,
26+
"type": "R",
27+
"fixed": 0
28+
},
29+
{
30+
"label": "x[2]",
31+
"id": 1,
32+
"value": 1.2,
33+
"type": "R",
34+
"fixed": 0
35+
},
36+
{
37+
"label": "x[3]",
38+
"id": 2,
39+
"value": -1.2,
40+
"type": "R",
41+
"fixed": 0
42+
},
43+
{
44+
"label": "x[4]",
45+
"id": 3,
46+
"value": 1.2,
47+
"type": "R",
48+
"fixed": 0
49+
},
50+
{
51+
"label": "x[5]",
52+
"id": 4,
53+
"value": -1.2,
54+
"type": "R",
55+
"fixed": 0
56+
},
57+
{
58+
"label": "x[6]",
59+
"id": 5,
60+
"value": 1.2,
61+
"type": "R",
62+
"fixed": 0
63+
}
64+
],
65+
"param": [
66+
{
67+
"label": "p",
68+
"id": 0,
69+
"value": 0
70+
}
71+
],
72+
"set": {},
73+
"indexed_vars": [
74+
"x"
75+
],
76+
"indexed_params": []
77+
}
78+
}

0 commit comments

Comments
 (0)