"""Контрольный вычислительный фрагмент.

Среда: встроенный MicroPython FEMM 5.
Аналитический учебный пример; полевой решатель не вызывается.
Параметры, единицы величин и порядок вывода пояснены по стадиям.
"""

# Цель: аналитически найти проводимость, ток и среднюю активную мощность.
# Однородная плоская область; проводимость и диэлектрическая проницаемость
# постоянны. Комплексные величины — амплитуды при зависимости exp(jωt).
# Вход задан в СИ; выход: Re(I) [А], Im(I) [А], средняя мощность P [Вт].
import math

# 1. Исходные данные: площадь и длина определяют геометрический множитель S/L.
eps0_f_m = 8.8541878128e-12
eps_r = 4.0
sigma_s_m = 1e-8
f_hz = 1000.0
area_m2 = 0.001
length_m = 0.01
V = complex(100.0, 0.0)  # Амплитуда напряжения, В; это не действующее значение.

# 2. Активная и ёмкостная составляющие полной проводимости, См.
geometry_m = area_m2 / length_m
omega_rad_s = 2.0 * math.pi * f_hz
conductance_s = sigma_s_m * geometry_m
susceptance_s = omega_rad_s * eps0_f_m * eps_r * geometry_m
Y = complex(conductance_s, susceptance_s)
I = Y * V

# 3. При амплитудных фазорах P = Re(V·conj(I))/2.
# Модуль V·I не является активной мощностью; для RMS множитель 1/2 отсутствует.
P = 0.5 * (V * I.conjugate()).real
assert abs(P - 5e-6) < 1e-15
print("I_re_A", I.real, "I_im_A", I.imag, "P_W", P)

# Нативные ci/co здесь не вызываются. Модель не учитывает индуктивный
# скин-эффект, краевое поле, дисперсию и диэлектрические потери материала.
