1 | #!/usr/bin/env python |
---|
2 | import sys |
---|
3 | from puq import NormalParameter, UniformParameter, Sweep, RapptureHost, Smolyak |
---|
4 | import csv, os |
---|
5 | import numpy as np |
---|
6 | from puq.jpickle import unpickle |
---|
7 | |
---|
8 | sys.stdout = open("gp.out", 'w') |
---|
9 | sys.stderr = open("gp.err", 'w') |
---|
10 | |
---|
11 | |
---|
12 | dfile, pid, varlist, uq_type, args = sys.argv[1:] |
---|
13 | cvsname = "params%s.csv" % pid |
---|
14 | hname = "puq_%s.hdf5" % pid |
---|
15 | |
---|
16 | print sys.argv[1:] |
---|
17 | varlist = unpickle(varlist) |
---|
18 | print "varlist=", varlist |
---|
19 | |
---|
20 | |
---|
21 | v = {} |
---|
22 | for p in varlist: |
---|
23 | name, dist = p |
---|
24 | name = str(name) |
---|
25 | print "name=", name |
---|
26 | print "dist=", dist |
---|
27 | if dist[0] == u'gaussian': |
---|
28 | v[name] = NormalParameter(name, name, mean=dist[1], dev=dist[2]) |
---|
29 | elif dist[0] == u'uniform': |
---|
30 | v[name] = UniformParameter(name, name, min=dist[1], max=dist[2]) |
---|
31 | else: |
---|
32 | print "ERROR: Unknown distribution type: %s" % dist[0] |
---|
33 | sys.exit(1) |
---|
34 | if uq_type == "smolyak": |
---|
35 | uq = Smolyak(v.values(), args) |
---|
36 | else: |
---|
37 | print "ERROR: Unknown UQ type: %s" % uq_type |
---|
38 | os.chdir('..') |
---|
39 | sys.exit(1) |
---|
40 | |
---|
41 | vals = np.column_stack([p.values for p in uq.params]) |
---|
42 | names = ['@@'+str(p.name) for p in uq.params] |
---|
43 | np.savetxt(cvsname, vals, delimiter=',', header=','.join(names), comments='') |
---|
44 | |
---|
45 | sw = Sweep(uq, RapptureHost('puq', dfile), 'test/vel_add.py') |
---|
46 | sw.run(hname, overwrite=True) |
---|