Open jorgepiloto opened 3 years ago
With previous presented approach, it is easy to model complex shapes:
wing_root = LiftingSurface(
r_offset = np.array([0,0,0]),
root_chord=1.5,
tip_chord=0.5,
planform_wingspan=4,
sweep_angle=30 * np.pi / 180,
dihedral_angle=15 * np.pi / 180,
)
wing_tip = LiftingSurface(
r_offset = wing_root.LE_tip,
root_chord=0.5,
tip_chord=0.1,
planform_wingspan=2,
sweep_angle=75 * np.pi / 180,
dihedral_angle=45 * np.pi / 180,
)
for part in [wing_root, wing_tip]:
fig = part.plot(fig)
fig.show()
Which outputs the following:
Hi @jorgepiloto!
I LOVE this proposal. You just aced one of the "that would be nice..." things I've had in my head for a while!
Please go ahead and open a PR whenever you like, and we can discuss together the needed refactors directly on the code ;)
Thank you again
This is looking good in my local machine. Still need to go through complete matrix solution but meshing and wake (which adapts to Uinf vector) are properly generated:
In previous image, wake offset was reduced for a better visualization.
Great stuff!! Looking forward to seeing the final result! ^^
Hi @jorgepiloto just checking in; all good? if you need any help please reach out :)
Let me propose an interesting upgrade: imagine we want to carry out a simulation on a general wing geometry like the one shown below:
At the moment,
ezaero
is able to properly mesh and solve for trapezoidal lifting surfaces. This new feature would require a software refactoring, but any geometry could be generated!I propose the following steps to achieve this new feature:
vlm/lifting_surface.py
module which holds the definition of aLiftingSurface
class. This class holds all geometrical definitions for a small trapezoidal section. It contains aplot()
method for showing the current geometry without having to run a simulation. Also, it includes a newr_offset
when building the object, which is the position vector of the leading edge of the root. This will enable to move the part along the global model geometry.LiftingSurfaces
modeling the global geometry is passed to theSimulation
instance. Influence coefficient matrices are stacked and a global solution is finally achieved. Testing cases can be implemented from this online solver.Let me now what you think about this new feature when possible, @partmor :+1: