Skip to content

Commit ff498bf

Browse files
committed
refact: move apply_stl funct upwards + change it to private _apply_stl_materials
1 parent 0330741 commit ff498bf

File tree

1 file changed

+40
-39
lines changed

1 file changed

+40
-39
lines changed

wakis/solverFIT3D.py

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,46 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
273273
self.solverInitializationTime = time.time() - t0
274274
self.update_logger(['solverInitializationTime'])
275275

276+
def _apply_stl_materials(self):
277+
'''
278+
Mask the cells inside the stl and assing the material
279+
defined by the user
280+
281+
* Note: stl material should contain **relative** epsilon and mu
282+
** Note 2: when assigning the stl material, the default values
283+
1./eps_0 and 1./mu_0 are substracted
284+
'''
285+
grid = self.grid.grid
286+
self.stl_solids = self.grid.stl_solids
287+
self.stl_materials = self.grid.stl_materials
288+
self.stl_colors = self.grid.stl_colors
289+
290+
for key in self.stl_solids.keys():
291+
292+
# TODO: adapt for subpixel smoothing
293+
mask = np.reshape(grid[key], (self.Nx, self.Ny, self.Nz)).astype(int)
294+
295+
eps = self.stl_materials[key][0]*eps_0
296+
mu = self.stl_materials[key][1]*mu_0
297+
298+
# Setting to zero
299+
self.ieps += self.ieps * (-1.0*mask)
300+
self.imu += self.imu * (-1.0*mask)
301+
302+
# Adding new values
303+
self.ieps += mask * 1./eps
304+
self.imu += mask * 1./mu
305+
306+
# Conductivity
307+
if len(self.stl_materials[key]) == 3:
308+
sigma = self.stl_materials[key][2]
309+
self.sigma += self.sigma * (-1.0*mask)
310+
self.sigma += mask * sigma
311+
self.use_conductivity = True
312+
313+
elif self.sigma_bg > 0.0: # assumed sigma = 0
314+
self.sigma += self.sigma * (-1.0*mask)
315+
276316
def update_tensors(self, tensor='all'):
277317
'''Update tensor matrices after
278318
Field ieps, imu or sigma have been modified
@@ -945,45 +985,6 @@ def _set_field_in_conductors_to_0(self):
945985
self.H *= self.flag_cleanup
946986
self.E *= self.flag_cleanup
947987

948-
def _apply_stl_materials(self):
949-
'''
950-
Mask the cells inside the stl and assing the material
951-
defined by the user
952-
953-
* Note: stl material should contain **relative** epsilon and mu
954-
** Note 2: when assigning the stl material, the default values
955-
1./eps_0 and 1./mu_0 are substracted
956-
'''
957-
grid = self.grid.grid
958-
self.stl_solids = self.grid.stl_solids
959-
self.stl_materials = self.grid.stl_materials
960-
self.stl_colors = self.grid.stl_colors
961-
962-
for key in self.stl_solids.keys():
963-
964-
mask = np.reshape(grid[key], (self.Nx, self.Ny, self.Nz)).astype(int)
965-
966-
eps = self.stl_materials[key][0]*eps_0
967-
mu = self.stl_materials[key][1]*mu_0
968-
969-
# Setting to zero
970-
self.ieps += self.ieps * (-1.0*mask)
971-
self.imu += self.imu * (-1.0*mask)
972-
973-
# Adding new values
974-
self.ieps += mask * 1./eps
975-
self.imu += mask * 1./mu
976-
977-
# Conductivity
978-
if len(self.stl_materials[key]) == 3:
979-
sigma = self.stl_materials[key][2]
980-
self.sigma += self.sigma * (-1.0*mask)
981-
self.sigma += mask * sigma
982-
self.use_conductivity = True
983-
984-
elif self.sigma_bg > 0.0: # assumed sigma = 0
985-
self.sigma += self.sigma * (-1.0*mask)
986-
987988
def _attrcleanup(self):
988989
# Fields
989990
del self.L, self.tL, self.iA, self.itA

0 commit comments

Comments
 (0)