Fichier:VFPt magnet B.svg

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikiversité, la communauté pédagogique libre.

Fichier d’origine(Fichier SVG, nominalement de 400 × 300 pixels, taille : 30 kio)

Erreur : l’attribut name des indicateurs d’état de la page ne doit pas être vide.

Description

Description
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 with electric current symbols
SVG information
InfoField
 
Le code de ce fichier SVG est valide.
 
Cette représentation graphique a été créée avec VectorFieldPlot
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 :
w:fr:Creative Commons
paternité partage à l’identique
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 cette œuvre, vous devez distribuer votre contribution sous la même licence ou une licence compatible avec 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

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 heureVignetteDimensionsUtilisateurCommentaire
actuel1 mai 2017 à 13:25Vignette pour la version du 1 mai 2017 à 13:25400 × 300 (30 kio)Geek3User created page with UploadWizard

La page suivante utilise ce fichier :

Usage global du fichier

Les autres wikis suivants utilisent ce fichier :

Métadonnées