# Blended wing body across many missions
Example of a BWB panel method analysis across many missions.
Mesh is made using OpenVSP.
We utilize additional solver inputs like compressibility corrections and reusing the AIC matrix.
Distribution Statement A: Approved for public release; distribution is unlimited. PA# AFRL-2025-3820.
```python
'''Blended wing body across many missions:
Example of a BWB panel method analysis across many missions.
Mesh is made using OpenVSP.
We utilize additional solver inputs like compressibility corrections and reusing the AIC matrix.
Distribution Statement A: Approved for public release; distribution is unlimited. PA# AFRL-2025-3820.
'''
import numpy as np
import csdl_alpha as csdl
from VortexAD import PanelMethod
from VortexAD import SAMPLE_GEOMETRY_PATH
# instantiate recorder to assemble the graph
recorder = csdl.Recorder(inline=False)
recorder.start()
# set up input dictionary
mesh_file_path = str(SAMPLE_GEOMETRY_PATH) + '/pm/bwb.stl'
num_nodes = 6
pitch = csdl.Variable(value=np.arange(0,num_nodes))
# input dict
input_dict = {
'Mach': 0.65,
'alpha': pitch,
'Cp cutoff': -5.,
'mesh_path': mesh_file_path, # can alternatively load mesh in with connectivity/TE data
'ref_area': 525.,
'compressibility': True,
'reuse_AIC': True
}
# instantiate PanelMethod class
panel_method = PanelMethod(
input_dict
)
# declare outputs of interest
pm_outputs = [
'CL',
'CDi',
'Cp',
'L',
'Di'
]
panel_method.declare_outputs(pm_outputs)
panel_method.setup_grid_properties(threshold_angle=125, plot=True) # optional for debugging
# run the panel method
outputs = panel_method.evaluate()
# read outputs
CL = outputs['CL']
CDi = outputs['CDi']
CP = outputs['Cp']
L = outputs['L']
Di = outputs['Di']
# csdl-jax stuff
inputs = [pitch]
outputs = [CL, CDi, CP, L, Di]
sim = csdl.experimental.JaxSimulator(
recorder=recorder,
additional_inputs=inputs,
additional_outputs = outputs,
gpu=False
)
sim.run()
CL_val = sim[CL]
CDi_val = sim[CDi]
CP_val = sim[CP]
L_val = sim[L]
Di_val = sim[Di]
print('CL:', CL_val)
print('CDi:', CDi_val)
print('L:', L_val)
print('Di:', Di_val)
panel_method.plot(CP_val[0,:], bounds=[-3,1])
```