"""Радиальное изменение гармоники поля от каждого токового слоя."""
import math,json
result={'radii_mm':[91+k*.5 for k in range(17)],'order':3,'sources':[]}
for title,name in [('Внутренний','Кольцо-Калибровка-внутренняя'),('Внешний','Кольцо-Калибровка-внешняя')]:
    opendocument(name+'.fem');mi_loadsolution();mo_smooth('off');profile=[]
    for radius in result['radii_mm']:
        accum=[0,0,0,0]
        for k in range(512):
            t=2*math.pi*k/512;c=math.cos(t);s=math.sin(t);v=mo_getpointvalues(radius*c,radius*s);bx=complex(v[1]).real;by=complex(v[2]).real;br=bx*c+by*s;bt=-bx*s+by*c
            accum[0]+=br*math.cos(3*t);accum[1]+=br*math.sin(3*t);accum[2]+=bt*math.cos(3*t);accum[3]+=bt*math.sin(3*t)
        profile.append({'r_mm':radius,'Br3_T':2*math.sqrt(accum[0]**2+accum[1]**2)/512,'Bt3_T':2*math.sqrt(accum[2]**2+accum[3]**2)/512})
    mo_close();mi_close();result['sources'].append({'title':title,'model':name+'.fem','solution':name+'.ans','profile':profile})
with open('profiles.json','w') as f:json.dump(result,f)
print('RING_PROFILES_COMPLETE')
