File:VFPt superconductor ball E-field potential.svg
Original file (SVG file, nominally 600 × 600 pixels, file size: 99 KB)
Captions
Summary
[edit]DescriptionVFPt superconductor ball E-field potential.svg |
English: Deformation of a previously homogeneous electric field around a perfect conducting ball (e.g. iron or a superconductor). The electric field lines are accurately computed. The electric potential is drawn as a background color field. |
||
Date | |||
Source | Own work | ||
Author | Geek3 | ||
Other versions | |||
SVG development InfoField | This W3C-invalid vector image was created with Inkscape, or with something else.
| ||
Source code InfoField | SVG code# paste this code at the end of VectorFieldPlot 2.0
doc = FieldplotDocument('VFPt_superconductor_ball_E-field_potential',
width=600, height=600, commons=True)
unit = 100.
field_direction = [0.0, -1.0]
sphere = {'p':sc.array([0., 0.]), 'r':1.2}
field = Field([['homogeneous', {'Fx':field_direction[0], 'Fy':field_direction[1]}],
['dipole', {'x':sphere['p'][0], 'y':sphere['p'][1],
'px':4*pi*sphere['r']**3*field_direction[0],
'py':4*pi*sphere['r']**3*field_direction[1]}]])
def pot(xy):
if vabs(xy) <= sphere['r']:
return 0. # zero potential inside metal sphere
return field.V(xy)
U0 = pot([3, 3])
doc.draw_scalar_field(func=pot, cmap=doc.cmap_AqYlFs, vmin=-U0, vmax=U0)
# draw the superconducting ball
ball = doc.draw_object('g', {'id':'metal_ball'})
grad = doc.draw_object('radialGradient', {'id':'metal_spot', 'cx':'0.53', 'cy':'0.54',
'r':'0.55', 'fx':'0.65', 'fy':'0.7', 'gradientUnits':'objectBoundingBox'}, group=ball)
for col, of in (('#fff', 0), ('#e7e7e7', 0.15), ('#ddd', 0.25), ('#aaa', 0.7), ('#888', 0.9), ('#666', 1)):
doc.draw_object('stop', {'offset':of, 'stop-color':col}, group=grad)
doc.draw_object('circle', {'cx':sphere['p'][0], 'cy':sphere['p'][1], 'r':str(sphere['r']),
'style':'fill:url(#metal_spot); stroke:#000; stroke-width:0.02'}, group=ball)
ball_charges = doc.draw_object('g', {'style':'stroke-width:0.02; stroke-linecap:square'}, group=ball)
n_lines = 20
for i in range(n_lines):
a = -3 + 6 * (0.5 + i) / n_lines
line = FieldLine(field, [a, 6], maxr=12, pass_dipoles=1)
if abs((n_lines - 1.) / 2. - i) > 7:
off = {'start':0.5, 'leave_image':0.5, 'enter_image':0.5}
else:
off = {'start':0.25, 'leave_image':0.25, 'enter_image':0.25, 'end':0.25}
doc.draw_line(line, arrows_style={'min_arrows':2, 'max_arrows':2, 'offsets':off})
# draw little charge signs near the surface
path_minus = 'M {0:.5f},0 h {1:.5f}'.format(-2./unit, 4./unit)
path_plus = 'M {0:.5f},0 h {1:.5f} M 0,{0:.5f} v {1:.5f}'.format(-2./unit, 4./unit)
# check if fieldline crosses sphere surface
tlist = sc.linspace(0., 1., 101)
for i in range(1, len(tlist)):
in0 = vabs(line.get_position(tlist[i-1]) - sphere['p']) <= sphere['r']
in1 = vabs(line.get_position(tlist[i]) - sphere['p']) <= sphere['r']
if in0 != in1:
# find the point where the field line cuts the surface
t = op.brentq(lambda t: vabs(line.get_position(t)
- sphere['p']) - sphere['r'], tlist[i-1], tlist[i])
pr = line.get_position(t) - sphere['p']
cpos = 0.92 * sphere['r'] * pr / vabs(pr)
if in1:
path_d = path_minus
else:
path_d = path_plus
doc.draw_object('path', {'stroke':'black', 'd':path_d,
'transform':'translate({:.5f},{:.5f})'.format(
round(unit*cpos[0])/unit, round(unit*cpos[1])/unit)},
group=ball_charges)
doc.write()
|
Licensing
[edit]- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 22:19, 7 September 2019 | 600 × 600 (99 KB) | Geek3 (talk | contribs) | User created page with UploadWizard |
You cannot overwrite this file.
File usage on Commons
The following 3 pages use this file:
Metadata
This file contains additional information such as Exif metadata which may have been added by the digital camera, scanner, or software program used to create or digitize it. If the file has been modified from its original state, some details such as the timestamp may not fully reflect those of the original file. The timestamp is only as accurate as the clock in the camera, and it may be completely wrong.
Short title | VFPt_superconductor_ball_E-field_potential |
---|---|
Image title | VFPt_superconductor_ball_E-field_potential
created with VectorFieldPlot 2.0 https://commons.wikimedia.org/wiki/User:Geek3/VectorFieldPlot about: https://commons.wikimedia.org/wiki/File:VFPt_superconductor_ball_E-field_potential.svg rights: Creative Commons Attribution ShareAlike 4.0 |
Width | 600 |
Height | 600 |