Файл:VFPt magnet H.svg

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Повна роздільність (SVG-файл, номінально 400 × 300 пікселів, розмір файлу: 24 КБ)

Опис файлу

Опис
English: Magnetic H-field inside and outside of a cylindrical bar magnet. The field is accurately computed with a physical model. Discrete field lines are drawn.
Час створення
Джерело Власна робота
Автор Geek3
Інші версії with magnetic charge symbols
SVG розвиток
InfoField
 
Вихідний код цього SVG-файлу правильний.
 
Це векторне зображення було створено з допомогою VectorFieldPlot
 
This file uses embedded text.
Сирцевий код
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()

Ліцензування

Я, власник авторських прав на цей твір, добровільно публікую його на умовах такої ліцензії:
w:uk:Creative Commons
зазначення авторства поширення на тих же умовах
Ви можете вільно:
  • ділитися – копіювати, поширювати і передавати твір
  • модифікувати – переробляти твір
При дотриманні таких умов:
  • зазначення авторства – Ви повинні вказати авторство, надати посилання на ліцензію і вказати, чи якісь зміни було внесено до оригінального твору. Ви можете зробити це в будь-який розсудливий спосіб, але так, щоб він жодним чином не натякав на те, наче ліцензіар підтримує Вас чи Ваш спосіб використання твору.
  • поширення на тих же умовах – Якщо ви змінюєте, перетворюєте або створюєте іншу похідну роботу на основі цього твору, ви можете поширювати отриманий у результаті твір тільки на умовах такої ж або сумісної ліцензії.

Підписи

Додайте однорядкове пояснення, що саме репрезентує цей файл

Об'єкти, показані на цьому файлі

зображує

Історія файлу

Клацніть на дату/час, щоб переглянути, як тоді виглядав файл.

Дата/часМініатюраРозмір об'єктаКористувачКоментар
поточний13:25, 1 травня 2017Мініатюра для версії від 13:25, 1 травня 2017400 × 300 (24 КБ)Geek3User created page with UploadWizard

Така сторінка використовує цей файл:

Метадані