import paraBEM from paraBEM.pan3d import doublet_src_3_0_vsaero, src_3_0_vsaero_v from paraBEM.vtk_export import VtkWriter import numpy from paraBEM.utils import check_path v1 = paraBEM.PanelVector3(-0.5, -0.5, 0) v2 = paraBEM.PanelVector3(0.5, -0.5, 0) v3 = paraBEM.PanelVector3(0.5, 0.5, 0) v4 = paraBEM.PanelVector3(-0.5, 0.5, 0) p = paraBEM.Panel3([v1, v2, v3, v4]) p.potential = 1.0 n = 50 a = numpy.linspace(-1, 1, n).tolist() b = [paraBEM.PanelVector3(i, j, k) for i in a for j in a for k in a] pot = [doublet_src_3_0_vsaero(i, p)[1] for i in b] vel = [src_3_0_vsaero_v(i, p) for i in b] writer = VtkWriter() with open(check_path("results/src_panel.vtk"), "w") as _file: writer.structed_grid(_file, "duplet", [n, n, n]) writer.points(_file, b) writer.data(_file, pot, name="potential", _type="SCALARS", data_type="POINT_DATA") writer.data(_file, vel, name="velocity", _type="VECTORS", data_type="POINT_DATA")
from paraBEM.utils import check_path v1 = paraBEM.PanelVector3(-0.5, -0.5, 0) v2 = paraBEM.PanelVector3(0.5, -0.5, 0) v3 = paraBEM.PanelVector3(0.5, 0.5, 0) v4 = paraBEM.PanelVector3(-0.5, 0.5, 0) p = paraBEM.Panel3([v1, v2, v3, v4]) p.potential = 1. n = 50 a = numpy.linspace(-1, 1, n).tolist() b = [paraBEM.PanelVector3(i, j, k) for i in a for j in a for k in a] pot = [doublet_src_3_0_vsaero(i, p)[1] for i in b] vel = [src_3_0_vsaero_v(i, p) for i in b] writer = VtkWriter() with open(check_path("results/src_panel.vtk"), "w") as _file: writer.structed_grid(_file, "duplet", [n, n, n]) writer.points(_file, b) writer.data(_file, pot, name="potential", _type="SCALARS", data_type="POINT_DATA") writer.data(_file, vel, name="velocity", _type="VECTORS",
import numpy as np import paraBEM from paraBEM import pan3d v1 = paraBEM.PanelVector3(-0.5, -0.5, 0) v2 = paraBEM.PanelVector3(0.5, -0.5, 0) v3 = paraBEM.PanelVector3(0.5, 0.5, 0) v4 = paraBEM.PanelVector3(-0.5, 0.5, 0) p = paraBEM.Panel3([v1, v2, v3, v4]) v5 = paraBEM.Vector3(0.5, 0, 0.5) v6 = paraBEM.Vector3(0.4999, 0, 0) v7 = paraBEM.Vector3(0.5, 0.0, 0) v8 = paraBEM.Vector3(0.5001, 0, 0) checklist = [v1, v2, v3, v4, v5, v6, v7, v8, p.center] for v in checklist: dip, src = pan3d.doublet_src_3_0_vsaero(v, p) print(v, ": doublet:", dip, "source:", src)
import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import paraBEM from paraBEM.pan3d import doublet_src_3_0_vsaero from paraBEM.utils import check_path doublet = lambda target, source: doublet_src_3_0_vsaero(target, source)[0] pnt1 = paraBEM.PanelVector3(-0.5, -0.5, 0) pnt2 = paraBEM.PanelVector3(0.5, -0.5, 0) pnt3 = paraBEM.PanelVector3(0.5, 0.5, 0) pnt4 = paraBEM.PanelVector3(-0.5, 0.5, 0) source = paraBEM.Panel3([pnt1, pnt2, pnt3, pnt4]) x = np.linspace(-4, 4, 100) y = [] for xi in x: target1 = paraBEM.PanelVector3(xi, 0., 0.0) target2 = paraBEM.PanelVector3(xi, 0, 0.5) target3 = paraBEM.PanelVector3(xi, 0, 1.0) val1 = doublet(target1, source) val2 = doublet(target2, source) val3 = doublet(target3, source) y.append([val1, val2, val3]) fig = plt.figure()