-
Notifications
You must be signed in to change notification settings - Fork 0
/
receiver_test.py
105 lines (73 loc) · 2.28 KB
/
receiver_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Jun 25 00:50:51 2022
@author: tufanakba
this code for running the receiver for given conditions
inputs = rpc, ins, L, Tfo, Tfi, m_dot
rest of the parameters should not be change for surrogate model algorithm
"""
import openmdao.api as om
import numpy as np
from receiver import Receiver
from components.draw_contour import draw_contour
def test(rpc,ins,L,Tfi,m_dot,mesh):
p = om.Problem()
p.model.add_subsystem('receiver', Receiver(disc_z=mesh,
disc_SiC=int(mesh/2),
disc_RPC=mesh,
disc_INS=int(mesh/2)))
p.setup()
#set inputs
# surrogate optimization results
# rpc = .00785298
# ins = .09976585
# L = .07252483
Tfi = 300.
m_dot = .00066
p.set_val('receiver.s_RPC',rpc, units='m')
p.set_val('receiver.s_INS',ins, units='m')
p.set_val('receiver.L',L, units='m')
p.set_val('receiver.T_fluid_in',Tfi, units='K')
p.set_val('receiver.Mass_Flow', m_dot, units='kg/s')
p.run_model()
z_n = p.get_val('receiver.z_n')
r_n = p.get_val('receiver.r_n')
T = p.get_val('receiver.T').reshape(44,22)
r_1 = 0.015
s_SiC = 0.005
draw_contour(z_n[0,:], r_n[:,0], T-273, r_1+s_SiC, r_1+s_SiC+rpc, m_dot, 10)
Tf_out= p.get_val('receiver.T_fluid_out')
if Tf_out<1273:
print(f'failed : {Tf_out-273}')
print(f'Mass_Flow: {m_dot}')
print(f'Tf_out: {Tf_out}K')
print('efficiency:',p.get_val('receiver.eff_S2G'))
return Tf_out-273.15
if __name__ == "__main__":
#set inputs
# first try
Tfi = 300.
m_dot = .00066
#mesh conv.
rpc = .01
ins = .08
L = .065
# response surface
rpc = .00860
ins = .0995
L = .0729
# # gradient based results
# rpc = .0109
# ins = .0786
# L = .0630
# krigin
rpc = .0135
ins = .0853
L = .0807
Tf_out = test(rpc,ins,L,Tfi,m_dot,mesh = 20)
# mesh = [8, 10, 16, 20 , 32, 40, 50]
# Tf_out = []
# for i in mesh:
# Tf_out.append(test(rpc,ins,L,Tfi,m_dot,mesh = i))
# print(Tf_out)