Fichier:VFPt magnet B.svg
De testwiki
Aller à la navigation
Aller à la recherche
Taille de cet aperçu PNG pour ce fichier SVG : 400 × 300 pixels. Autres résolutions : 320 × 240 pixels | 640 × 480 pixels | 1 024 × 768 pixels | 1 280 × 960 pixels | 2 560 × 1 920 pixels.
Fichier d’origine (Fichier SVG, nominalement de 400 × 300 pixels, taille : 30 kio)
Ce fichier provient de Wikimedia Commons et peut être utilisé par d'autres projets. Sa description sur sa page de description est affichée ci-dessous.
Description
| DescriptionVFPt magnet B.svg |
English: Magnetic B-field inside and outside of a cylindrical bar magnet. The field is accurately computed with a physical model. Discrete field lines are drawn. |
| Date | |
| Source | Travail personnel |
| Auteur | Geek3 |
| Autres versions |
|
| SVG information InfoField | |
| Code source InfoField | Python code# paste this code at the end of VectorFieldPlot 1.4
import scipy.optimize as op
M = 1.0 # magnetic moment
r = 0.65; l = 1.2
n = 10
fieldB = Field({'coils':[[0, 0, 0, r, l, M/(r**2*pi)]]})
fieldH = Field({'charged_discs':[[-l, -r, -l, r, -0.5*M/l],
[ l, -r, l, r, 0.5*M/l]]})
inside = lambda p: -min(1-fabs(p[0]/l), 1-fabs(p[1]/r))
outside = lambda p: min(1-fabs(p[0]/l), 1-fabs(p[1]/r))
for field in ['B', 'H']:
fname = 'VFPt_magnet_' + field
doc = FieldplotDocument(fname, width=400, height=300, commons=True)
for i in range(n):
r_rel = 2 * (0.5 + i) / n - 1
y0 = r * (r_rel + 0.16 * (r_rel - r_rel**3))
p0 = sc.array([l, y0])
line1 = FieldLine(fieldB, p0*(1+1e-9), directions='forward',
maxr=1e4, maxn=1e4, stop_funcs=2*[outside])
doc.draw_line(line1, arrows_style={})
# B-field inside magnet
line2 = FieldLine(fieldB, p0*(1-1e-9), directions='backward',
stop_funcs=2*[inside])
if field == 'B':
doc.draw_line(line2, arrows_style={})
# H-field inside magnet
line3 = FieldLine(fieldH, p0*(1-1e-9), directions='forward',
stop_funcs=2*[inside])
if field == 'H':
doc.draw_line(line3, arrows_style={
'min_arrows':0, 'dist':0.6, 'max_arrows':2})
p1 = line3.nodes[-1]['p'] # where lines leave the magnet on the side
if fabs(p1[1]) >= r * (1-1e-8):
p1[1] = copysign(max(r, fabs(p1[1])), p1[1])
line4 = FieldLine(fieldH, p1, directions='forward',
stop_funcs=2*[outside])
doc.draw_line(line4, arrows_style={'max_arrows':2})
p2 = line4.nodes[-1]['p'] # where lines re-enter the magnet
line5 = FieldLine(fieldH, p2, directions='forward',
stop_funcs=2*[inside])
if field == 'H':
doc.draw_line(line5, arrows_style={
'min_arrows':0, 'dist':0.6, 'max_arrows':2})
line6 = FieldLine(fieldB, p1*(1-1e-9), directions='backward',
stop_funcs=2*[inside])
if field == 'B':
doc.draw_line(line6, arrows_style={})
if field == 'H':
doc.draw_object('path', {'d':'M {},{} V {} M {},{} V {}'.format(
-l, -r, r, l, -r, r), 'style':'stroke:#999999; stroke-width:0.02'})
doc.draw_magnets(fieldB)
# postprocessing: strip text and add opacity
for el in doc.svg.iter():
if el.tag.endswith('g'):
if el.get('id') != None and 'magnet' in el.get('id'):
el.set('opacity', '0.4')
if el.tag.endswith('text'):
el.getparent().remove(el)
doc.write()
|
Conditions d’utilisation
Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous la licence suivante :
Ce fichier est sous la licence Creative Commons Attribution – Partage dans les Mêmes Conditions 4.0 International.
- Vous êtes libre :
- de partager – de copier, distribuer et transmettre cette œuvre
- d’adapter – de modifier cette œuvre
- Sous les conditions suivantes :
- paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
- partage à l’identique – Si vous modifiez, transformez ou vous basez sur cet élément, vous devez distribuer votre contribution sous une license identique ou compatible à celle de l’original.
Légendes
Ajoutez en une ligne la description de ce que représente ce fichier
Éléments décrits dans ce fichier
dépeint
Valeur sans élément de Wikidata
1 mai 2017
image/svg+xml
Historique du fichier
Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.
| Date et heure | Vignette | Dimensions | Utilisateur | Commentaire | |
|---|---|---|---|---|---|
| actuel | 1 mai 2017 à 14:25 | 400 × 300 (30 kio) | wikimediacommons>Geek3 | User created page with UploadWizard |
Utilisation du fichier
La page suivante utilise ce fichier :