Skip to content

Commit 8e03df0

Browse files
author
Marie J Vaucher
committed
merged upstream main to resolve conflicts with hx
2 parents c0cf7d3 + 773de3a commit 8e03df0

File tree

10 files changed

+175
-171
lines changed

10 files changed

+175
-171
lines changed

openconcept/aerodynamics/openaerostruct/aerostructural.py

+2
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ def setup(self):
244244
q={"units": "Pa", "shape": (nn,)},
245245
S={"units": "m**2"},
246246
CD={"shape": (nn,)},
247+
has_diag_partials=True,
247248
),
248249
promotes_inputs=[("q", "fltcond|q"), ("S", "ac|geom|wing|S_ref")],
249250
promotes_outputs=["drag"],
@@ -1495,6 +1496,7 @@ def setup(self):
14951496
S={"units": "m**2"},
14961497
CD={"shape": (nn,)},
14971498
CD0={"shape": (1,)},
1499+
has_diag_partials=True,
14981500
),
14991501
promotes_inputs=[("q", "fltcond|q"), ("S", "ac|geom|wing|S_ref"), ("CD0", "ac|aero|CD_nonwing")],
15001502
promotes_outputs=["drag"],

openconcept/aerodynamics/openaerostruct/drag_polar.py

+1
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ def setup(self):
356356
q={"units": "Pa", "shape": (nn,)},
357357
S={"units": "m**2"},
358358
CD={"shape": (nn,)},
359+
has_diag_partials=True,
359360
),
360361
promotes_inputs=[("q", "fltcond|q"), ("S", "ac|geom|wing|S_ref")],
361362
promotes_outputs=["drag"],

openconcept/examples/B738.py

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def setup(self):
4141
"tags": ["integrate", "state_name:fuel_used", "state_units:kg", "state_val:1.0", "state_promotes:True"],
4242
},
4343
fuel_flow_in={"val": 1.0 * np.ones((nn,)), "units": "kg/s"},
44+
has_diag_partials=True,
4445
)
4546

4647
self.add_subsystem("doubler", doubler, promotes_outputs=["*"])

openconcept/examples/B738_VLM_drag.py

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def setup(self):
5858
"tags": ["integrate", "state_name:fuel_used", "state_units:kg", "state_val:1.0", "state_promotes:True"],
5959
},
6060
fuel_flow_in={"val": 1.0 * np.ones((nn,)), "units": "kg/s"},
61+
has_diag_partials=True,
6162
)
6263

6364
self.add_subsystem("doubler", doubler, promotes_outputs=["*"])

openconcept/examples/B738_aerostructural.py

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ def setup(self):
6969
"tags": ["integrate", "state_name:fuel_used", "state_units:kg", "state_val:1.0", "state_promotes:True"],
7070
},
7171
fuel_flow_in={"val": 1.0 * np.ones((nn,)), "units": "kg/s"},
72+
has_diag_partials=True,
7273
)
7374

7475
self.add_subsystem("doubler", doubler, promotes_outputs=["*"])

openconcept/examples/minimal_integrator.py

+2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def setup(self):
5757
fuel_flow={"units": "kg/s", "shape": nn},
5858
TSFC={"units": "kg/N/s", "shape": 1},
5959
thrust={"units": "N", "shape": nn},
60+
has_diag_partials=True,
6061
),
6162
promotes_inputs=[("TSFC", "ac|propulsion|TSFC"), "thrust"],
6263
)
@@ -82,6 +83,7 @@ def setup(self):
8283
weight={"shape": nn},
8384
TOW={"shape": 1},
8485
fuel_burned={"shape": nn},
86+
has_diag_partials=True,
8587
),
8688
promotes_inputs=[("TOW", "ac|weights|TOW")],
8789
promotes_outputs=["weight"],

openconcept/mission/tests/test_trajectories.py

+7
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ def setup(self):
165165
"tags": ["integrate", "state_name:f", "state_units:kg"],
166166
},
167167
x={"val": 1.0 * np.ones((nn,)), "units": "s"},
168+
has_diag_partials=True,
168169
),
169170
)
170171
self.connect("iv.x", "ec.x")
@@ -215,6 +216,7 @@ def setup(self):
215216
"tags": ["integrate", "state_name:f2", "state_units:J"],
216217
},
217218
x={"val": 1.0 * np.ones((nn,)), "units": "s"},
219+
has_diag_partials=True,
218220
),
219221
)
220222
self.connect("iv.x", "ec2.x")
@@ -269,6 +271,7 @@ def setup(self):
269271
"tags": ["integrate", "state_name:f2", "state_units:J", "state_promotes:True"],
270272
},
271273
x={"val": 1.0 * np.ones((nn,)), "units": "s"},
274+
has_diag_partials=True,
272275
),
273276
)
274277
self.connect("iv.x", "ec2.x")
@@ -330,6 +333,7 @@ def setup(self):
330333
],
331334
},
332335
x={"val": 1.0 * np.ones((nn,)), "units": "s"},
336+
has_diag_partials=True,
333337
),
334338
)
335339
self.connect("iv.x", "ec2.x")
@@ -378,6 +382,7 @@ def setup(self):
378382
["df = 5.1*x**3 +0.5*x-7.2"],
379383
df={"val": 1.0 * np.ones((nn,)), "units": "W", "tags": ["integrate", "state_name:f2", "state_units:J"]},
380384
x={"val": 1.0 * np.ones((nn,)), "units": "s"},
385+
has_diag_partials=True,
381386
),
382387
)
383388
self.connect("iv.x", "ec2.x")
@@ -413,6 +418,7 @@ def setup(self):
413418
["df2 = 5.1*x**3 +0.5*x-7.2"],
414419
df2={"val": 1.0 * np.ones((nn,)), "units": "W", "tags": ["integrate", "state_name:f", "state_units:J"]},
415420
x={"val": 1.0 * np.ones((nn,)), "units": "s"},
421+
has_diag_partials=True,
416422
),
417423
)
418424
self.connect("iv.x", "ec2.x")
@@ -521,6 +527,7 @@ def setup(self):
521527
"tags": ["integrate", "state_name:f", "state_units:kg"],
522528
},
523529
x={"val": 1.0 * np.ones((nn,)), "units": "s"},
530+
has_diag_partials=True,
524531
),
525532
promotes_outputs=["df"],
526533
)

openconcept/thermal/heat_exchanger.py

+32-32
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import numpy as np
2-
from openmdao.api import ExplicitComponent, IndepVarComp, Group, AnalysisError
2+
from openmdao.api import ExplicitComponent, Group, AnalysisError
33
from openconcept.utilities import DVLabel
44

55

@@ -1397,37 +1397,37 @@ def initialize(self):
13971397
def setup(self):
13981398
nn = self.options["num_nodes"]
13991399

1400-
iv = self.add_subsystem("dv", IndepVarComp(), promotes_outputs=["*"])
1401-
iv.add_output("case_thickness", val=2.0, units="mm")
1402-
iv.add_output("fin_thickness", val=0.102, units="mm")
1403-
iv.add_output("plate_thickness", val=0.2, units="mm")
1404-
iv.add_output("material_k", val=190, units="W/m/K")
1405-
iv.add_output("material_rho", val=2700, units="kg/m**3")
1406-
1407-
# iv.add_output('mdot_cold', val=np.ones(nn)*1.5, units='kg/s')
1408-
# iv.add_output('rho_cold', val=np.ones(nn)*0.5, units='kg/m**3')
1409-
# iv.add_output('mdot_hot', val=0.075*np.ones(nn), units='kg/s')
1410-
# iv.add_output('rho_hot', val=np.ones(nn)*1020.2, units='kg/m**3')
1411-
1412-
# iv.add_output('T_in_cold', val=np.ones(nn)*45, units='degC')
1413-
# iv.add_output('T_in_hot', val=np.ones(nn)*90, units='degC')
1414-
# iv.add_output('n_long_cold', val=3)
1415-
# iv.add_output('n_wide_cold', val=430)
1416-
# iv.add_output('n_tall', val=19)
1417-
1418-
iv.add_output("channel_height_cold", val=14, units="mm")
1419-
iv.add_output("channel_width_cold", val=1.35, units="mm")
1420-
iv.add_output("fin_length_cold", val=6, units="mm")
1421-
iv.add_output("cp_cold", val=1005, units="J/kg/K")
1422-
iv.add_output("k_cold", val=0.02596, units="W/m/K")
1423-
iv.add_output("mu_cold", val=1.789e-5, units="kg/m/s")
1424-
1425-
iv.add_output("channel_height_hot", val=1, units="mm")
1426-
iv.add_output("channel_width_hot", val=1, units="mm")
1427-
iv.add_output("fin_length_hot", val=6, units="mm")
1428-
iv.add_output("cp_hot", val=3801, units="J/kg/K")
1429-
iv.add_output("k_hot", val=0.405, units="W/m/K")
1430-
iv.add_output("mu_hot", val=1.68e-3, units="kg/m/s")
1400+
# Set the default values for promoted variables
1401+
self.set_input_defaults("case_thickness", val=2.0, units="mm")
1402+
self.set_input_defaults("fin_thickness", val=0.102, units="mm")
1403+
self.set_input_defaults("plate_thickness", val=0.2, units="mm")
1404+
self.set_input_defaults("material_k", val=190, units="W/m/K")
1405+
self.set_input_defaults("material_rho", val=2700, units="kg/m**3")
1406+
1407+
# self.set_input_defaults('mdot_cold', val=np.ones(nn)*1.5, units='kg/s')
1408+
# self.set_input_defaults('rho_cold', val=np.ones(nn)*0.5, units='kg/m**3')
1409+
# self.set_input_defaults('mdot_hot', val=0.075*np.ones(nn), units='kg/s')
1410+
# self.set_input_defaults('rho_hot', val=np.ones(nn)*1020.2, units='kg/m**3')
1411+
1412+
# self.set_input_defaults('T_in_cold', val=np.ones(nn)*45, units='degC')
1413+
# self.set_input_defaults('T_in_hot', val=np.ones(nn)*90, units='degC')
1414+
# self.set_input_defaults('n_long_cold', val=3)
1415+
# self.set_input_defaults('n_wide_cold', val=430)
1416+
# self.set_input_defaults('n_tall', val=19)
1417+
1418+
self.set_input_defaults("channel_height_cold", val=14, units="mm")
1419+
self.set_input_defaults("channel_width_cold", val=1.35, units="mm")
1420+
self.set_input_defaults("fin_length_cold", val=6, units="mm")
1421+
self.set_input_defaults("cp_cold", val=1005, units="J/kg/K")
1422+
self.set_input_defaults("k_cold", val=0.02596, units="W/m/K")
1423+
self.set_input_defaults("mu_cold", val=1.789e-5, units="kg/m/s")
1424+
1425+
self.set_input_defaults("channel_height_hot", val=1, units="mm")
1426+
self.set_input_defaults("channel_width_hot", val=1, units="mm")
1427+
self.set_input_defaults("fin_length_hot", val=6, units="mm")
1428+
self.set_input_defaults("cp_hot", val=3801, units="J/kg/K")
1429+
self.set_input_defaults("k_hot", val=0.405, units="W/m/K")
1430+
self.set_input_defaults("mu_hot", val=1.68e-3, units="kg/m/s")
14311431

14321432
dvlist = [
14331433
["ac|propulsion|thermal|hx|n_wide_cold", "n_wide_cold", 430, None],

openconcept/thermal/heat_pipe.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,12 @@ def setup(self):
9191
# Used ExecComp here because multiplying vector and scalar inputs
9292
self.add_subsystem(
9393
"heat_divide",
94-
ExecComp("q_div = q / n_pipes", q_div={"units": "W", "shape": (nn,)}, q={"units": "W", "shape": (nn,)}),
94+
ExecComp(
95+
"q_div = q / n_pipes",
96+
q_div={"units": "W", "shape": (nn,)},
97+
q={"units": "W", "shape": (nn,)},
98+
has_diag_partials=True,
99+
),
95100
promotes_inputs=["q", "n_pipes"],
96101
)
97102

@@ -123,6 +128,7 @@ def setup(self):
123128
"q_max = single_pipe_q_max * n_pipes",
124129
q_max={"units": "W", "shape": (nn,)},
125130
single_pipe_q_max={"units": "W", "shape": (nn,)},
131+
has_diag_partials=True,
126132
),
127133
promotes_inputs=["n_pipes"],
128134
promotes_outputs=["q_max"],
@@ -171,6 +177,7 @@ def setup(self):
171177
T_evap={"units": "degC", "shape": (nn,)},
172178
q={"units": "W", "shape": (nn,)},
173179
R={"units": "K/W", "shape": (nn,)},
180+
has_diag_partials=True,
174181
),
175182
promotes_inputs=["T_evap"],
176183
promotes_outputs=["T_cond"],

0 commit comments

Comments
 (0)