Пример #1
1
                                       points[:,outside], evalOptions)
           - dlPotExt.evaluateAtPoints(scattDirichletTrace,
                                       points[:,outside], evalOptions)
           + evalIncField(points[:,outside]))

# Evaluate field (all three components) at interior points
valsInt = (  slPotInt.evaluateAtPoints(intNeumannTrace,
                                       points[:,inside], evalOptions)
           + dlPotInt.evaluateAtPoints(intDirichletTrace,
                                       points[:,inside], evalOptions))

# Combine the results obtained for points inside and outside the scatterer
# in a single array

vals = np.empty((3, nPointsX * nPointsY), dtype=complex)
for dim in range(3): # iterate over coordinates
    np.place(vals[dim], outside, valsExt[dim].ravel())
    np.place(vals[dim], inside, valsInt[dim].ravel())

# Display the field plot

from bempp import visualization2 as vis
tvtkVals = vis.tvtkStructuredGridData(points, vals, (nPointsX, nPointsY))
tvtkGrid = vis.tvtkGrid(grid)
vis.plotVectorData(tvtkGrids=tvtkGrid, tvtkStructuredGridData=tvtkVals)

# Export the results into a VTK file

from tvtk.api import write_data
write_data(tvtkVals, "u.vts")
Пример #2
0
x, y, z = np.mgrid[-5:5:nPointsX*1j, 0:0:1j, -5:5:nPointsZ*1j]
points = np.vstack((x.ravel(), y.ravel(), z.ravel()))

# Use Green's representation formula to evaluate the total field

evaluationOptions = createEvaluationOptions()
scatteredField = -(slPotOp.evaluateAtPoints(neumannData, points,
                                            evaluationOptions))
incidentField = evalIncField(points)
field = scatteredField + incidentField

# Display the field plot

from bempp import visualization2 as vis
tvtkField = vis.tvtkStructuredGridData(points, field, (nPointsX, nPointsZ))
tvtkGrid = vis.tvtkGrid(grid)
vis.plotVectorData(tvtkGrids=tvtkGrid, tvtkStructuredGridData=tvtkField)

# from bempp import visualization as vis
# uActor = vis.scalarDataOnRegularGridActor(
#         points, fieldMagnitude, (nPointsX, nPointsZ),
#         colorRange=(0, 2))
# legendActor = vis.legendActor(uActor)
# gridActor = vis.gridActor(grid)
# vis.plotTvtkActors([uActor, gridActor, legendActor])

# Export the results into a VTK file

from tvtk.api import write_data
write_data(tvtkField, "u.vts")