Skip to content

Commit c01a0d1

Browse files
Mortara  AlessandroMortara  Alessandro
authored andcommitted
Revert "chore: restored the inductance methods"
This reverts commit fbad580.
1 parent 51cfa7e commit c01a0d1

1 file changed

Lines changed: 116 additions & 113 deletions

File tree

source_code/conductor.py

Lines changed: 116 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -3776,91 +3776,92 @@ def __mutual_inductance(
37763776
"""
37773777

37783778
jj = np.r_[ii + 1 : self.total_elements_current_carriers]
3779-
ll = lmod[jj]
3780-
mm = lmod[ii]
3781-
len_jj = self.total_elements_current_carriers - (ii + 1)
3782-
rr = dict(
3783-
end_end=np.zeros(len_jj),
3784-
end_start=np.zeros(len_jj),
3785-
start_start=np.zeros(len_jj),
3786-
start_end=np.zeros(len_jj),
3787-
)
3788-
3789-
for key in rr.keys():
3790-
rr[key] = self.__vertex_to_vertex_distance(key, ii, jj)
3791-
# End for key
3792-
3793-
# Additional parameters
3794-
alpha2 = (
3795-
rr["start_end"] ** 2
3796-
- rr["start_start"] ** 2
3797-
+ rr["end_start"] ** 2
3798-
- rr["end_end"] ** 2
3799-
)
3779+
# ll = lmod[jj]
3780+
# mm = lmod[ii]
3781+
# len_jj = self.total_elements_current_carriers - (ii + 1)
3782+
# rr = dict(
3783+
# end_end=np.zeros(len_jj),
3784+
# end_start=np.zeros(len_jj),
3785+
# start_start=np.zeros(len_jj),
3786+
# start_end=np.zeros(len_jj),
3787+
# )
38003788

3801-
cos_eps = np.minimum(np.maximum(alpha2 / (2 * ll * mm), -1.0), 1.0)
3802-
sin_eps = np.sin(np.arccos(cos_eps))
3789+
# for key in rr.keys():
3790+
# rr[key] = self.__vertex_to_vertex_distance(key, ii, jj)
3791+
# # End for key
38033792

3804-
dd = 4 * ll ** 2 * mm ** 2 - alpha2 ** 2
3805-
mu = (
3806-
ll
3807-
* (
3808-
2 * mm ** 2 * (rr["end_start"] ** 2 - rr["start_start"] ** 2 - ll ** 2)
3809-
+ alpha2 * (rr["start_end"] ** 2 - rr["start_start"] ** 2 - mm ** 2)
3810-
)
3811-
/ dd
3812-
)
3813-
nu = (
3814-
mm
3815-
* (
3816-
2 * ll ** 2 * (rr["start_end"] ** 2 - rr["start_start"] ** 2 - mm ** 2)
3817-
+ alpha2 * (rr["end_start"] ** 2 - rr["start_start"] ** 2 - ll ** 2)
3818-
)
3819-
/ dd
3820-
)
3821-
d2 = rr["start_start"] ** 2 - mu ** 2 - nu ** 2 + 2 * mu * nu * cos_eps
3822-
3823-
# avoid rounding for segments in a plane
3824-
d2[d2 < abstol ** 2] = 0
3825-
d0 = np.sqrt(d2)
3793+
# # Additional parameters
3794+
# alpha2 = (
3795+
# rr["start_end"] ** 2
3796+
# - rr["start_start"] ** 2
3797+
# + rr["end_start"] ** 2
3798+
# - rr["end_end"] ** 2
3799+
# )
38263800

3827-
# solid angles
3828-
omega = (
3829-
np.arctan(
3830-
(d2 * cos_eps + (mu + ll) * (nu + mm) * sin_eps ** 2)
3831-
/ (d0 * rr["end_end"] * sin_eps)
3832-
)
3833-
- np.arctan(
3834-
(d2 * cos_eps + (mu + ll) * nu * sin_eps ** 2)
3835-
/ (d0 * rr["end_start"] * sin_eps)
3836-
)
3837-
+ np.arctan(
3838-
(d2 * cos_eps + mu * nu * sin_eps ** 2)
3839-
/ (d0 * rr["start_start"] * sin_eps)
3840-
)
3841-
- np.arctan(
3842-
(d2 * cos_eps + mu * (nu + mm) * sin_eps ** 2)
3843-
/ (d0 * rr["start_end"] * sin_eps)
3844-
)
3845-
)
3846-
omega[d0 == 0.0] = 0.0
3801+
# cos_eps = np.minimum(np.maximum(alpha2 / (2 * ll * mm), -1.0), 1.0)
3802+
# sin_eps = np.sin(np.arccos(cos_eps))
3803+
3804+
# dd = 4 * ll ** 2 * mm ** 2 - alpha2 ** 2
3805+
# mu = (
3806+
# ll
3807+
# * (
3808+
# 2 * mm ** 2 * (rr["end_start"] ** 2 - rr["start_start"] ** 2 - ll ** 2)
3809+
# + alpha2 * (rr["start_end"] ** 2 - rr["start_start"] ** 2 - mm ** 2)
3810+
# )
3811+
# / dd
3812+
# )
3813+
# nu = (
3814+
# mm
3815+
# * (
3816+
# 2 * ll ** 2 * (rr["start_end"] ** 2 - rr["start_start"] ** 2 - mm ** 2)
3817+
# + alpha2 * (rr["end_start"] ** 2 - rr["start_start"] ** 2 - ll ** 2)
3818+
# )
3819+
# / dd
3820+
# )
3821+
# d2 = rr["start_start"] ** 2 - mu ** 2 - nu ** 2 + 2 * mu * nu * cos_eps
3822+
3823+
# # avoid rounding for segments in a plane
3824+
# d2[d2 < abstol ** 2] = 0
3825+
# d0 = np.sqrt(d2)
3826+
3827+
# # solid angles
3828+
# omega = (
3829+
# np.arctan(
3830+
# (d2 * cos_eps + (mu + ll) * (nu + mm) * sin_eps ** 2)
3831+
# / (d0 * rr["end_end"] * sin_eps)
3832+
# )
3833+
# - np.arctan(
3834+
# (d2 * cos_eps + (mu + ll) * nu * sin_eps ** 2)
3835+
# / (d0 * rr["end_start"] * sin_eps)
3836+
# )
3837+
# + np.arctan(
3838+
# (d2 * cos_eps + mu * nu * sin_eps ** 2)
3839+
# / (d0 * rr["start_start"] * sin_eps)
3840+
# )
3841+
# - np.arctan(
3842+
# (d2 * cos_eps + mu * (nu + mm) * sin_eps ** 2)
3843+
# / (d0 * rr["start_end"] * sin_eps)
3844+
# )
3845+
# )
3846+
# omega[d0 == 0.0] = 0.0
38473847

3848-
# contribution
3849-
pp = np.zeros((len_jj, 5), dtype=float)
3850-
pp[:, 0] = (ll + mu) * np.arctanh(mm / (rr["end_end"] + rr["end_start"]))
3851-
pp[:, 1] = -nu * np.arctanh(ll / (rr["end_start"] + rr["start_start"]))
3852-
pp[:, 2] = (mm + nu) * np.arctanh(ll / (rr["end_end"] + rr["start_end"]))
3853-
pp[:, 3] = -mu * np.arctanh(mm / (rr["start_start"] + rr["start_end"]))
3854-
pp[:, 4] = d0 * omega / sin_eps
3848+
# # contribution
3849+
# pp = np.zeros((len_jj, 5), dtype=float)
3850+
# pp[:, 0] = (ll + mu) * np.arctanh(mm / (rr["end_end"] + rr["end_start"]))
3851+
# pp[:, 1] = -nu * np.arctanh(ll / (rr["end_start"] + rr["start_start"]))
3852+
# pp[:, 2] = (mm + nu) * np.arctanh(ll / (rr["end_end"] + rr["start_end"]))
3853+
# pp[:, 3] = -mu * np.arctanh(mm / (rr["start_start"] + rr["start_end"]))
3854+
# pp[:, 4] = d0 * omega / sin_eps
38553855

3856-
# filter odd cases (e.g. consecutive segments)
3857-
pp[np.isnan(pp)] = 0.0
3858-
pp[np.isinf(pp)] = 0.0
3856+
# # filter odd cases (e.g. consecutive segments)
3857+
# pp[np.isnan(pp)] = 0.0
3858+
# pp[np.isinf(pp)] = 0.0
38593859

38603860
# Mutual inductances
38613861
matrix[ii, jj] = (
3862-
2 * cos_eps * (pp[:, 0] + pp[:, 1] + pp[:, 2] + pp[:, 3])
3863-
- cos_eps * pp[:, 4]
3862+
5.0e-8 # Mutual inductance imposed by Zappatore input file
3863+
# 2 * cos_eps * (pp[:, 0] + pp[:, 1] + pp[:, 2] + pp[:, 3])
3864+
# - cos_eps * pp[:, 4]
38643865
)
38653866
return matrix
38663867

@@ -3920,23 +3921,24 @@ def __self_inductance_mode1(self, lmod: np.ndarray) -> np.ndarray:
39203921

39213922
for ii, obj in enumerate(self.inventory["StrandComponent"].collection):
39223923
self_inductance[ii :: self.inventory["StrandComponent"].number] = (
3923-
2
3924-
* lmod[ii :: self.inventory["StrandComponent"].number]
3925-
* (
3926-
np.arcsinh(
3927-
lmod[ii :: self.inventory["StrandComponent"].number]
3928-
/ obj.radius
3929-
)
3930-
- np.sqrt(
3931-
1.0
3932-
+ (
3933-
obj.radius
3934-
/ lmod[ii :: self.inventory["StrandComponent"].number]
3935-
)
3936-
** 2
3937-
)
3938-
+ obj.radius / lmod[ii :: self.inventory["StrandComponent"].number]
3939-
)
3924+
1.0e-7
3925+
# 2
3926+
# * lmod[ii :: self.inventory["StrandComponent"].number]
3927+
# * (
3928+
# np.arcsinh(
3929+
# lmod[ii :: self.inventory["StrandComponent"].number]
3930+
# / obj.radius
3931+
# )
3932+
# - np.sqrt(
3933+
# 1.0
3934+
# + (
3935+
# obj.radius
3936+
# / lmod[ii :: self.inventory["StrandComponent"].number]
3937+
# )
3938+
# ** 2
3939+
# )
3940+
# + obj.radius / lmod[ii :: self.inventory["StrandComponent"].number]
3941+
# )
39403942
)
39413943
return self_inductance
39423944

@@ -3953,25 +3955,26 @@ def __self_inductance_mode2(self, lmod: np.ndarray) -> np.ndarray:
39533955
for ii, obj in enumerate(self.inventory["StrandComponent"].collection):
39543956

39553957
self_inductance[ii :: self.inventory["StrandComponent"].number] = (
3956-
2 * (
3957-
lmod[ii :: self.inventory["StrandComponent"].number]
3958-
* np.log(
3959-
(
3960-
lmod[ii :: self.inventory["StrandComponent"].number]
3961-
+ np.sqrt(
3962-
lmod[ii :: self.inventory["StrandComponent"].number] ** 2
3963-
+ obj.radius ** 2
3964-
)
3965-
)
3966-
/ obj.radius
3967-
)
3968-
- np.sqrt(
3969-
lmod[ii :: self.inventory["StrandComponent"].number] ** 2
3970-
+ obj.radius ** 2
3971-
)
3972-
+ lmod[ii :: self.inventory["StrandComponent"].number] / 4
3973-
+ obj.radius
3974-
))
3958+
1.0e-7
3959+
# 2 * (
3960+
# lmod[ii :: self.inventory["StrandComponent"].number]
3961+
# * np.log(
3962+
# (
3963+
# lmod[ii :: self.inventory["StrandComponent"].number]
3964+
# + np.sqrt(
3965+
# lmod[ii :: self.inventory["StrandComponent"].number] ** 2
3966+
# + obj.radius ** 2
3967+
# )
3968+
# )
3969+
# / obj.radius
3970+
# )
3971+
# - np.sqrt(
3972+
# lmod[ii :: self.inventory["StrandComponent"].number] ** 2
3973+
# + obj.radius ** 2
3974+
# )
3975+
# + lmod[ii :: self.inventory["StrandComponent"].number] / 4
3976+
# + obj.radius
3977+
)
39753978

39763979
return self_inductance
39773980

0 commit comments

Comments
 (0)