New object building primitives and two new mixing models for fractal box, bug fixes

Introduced object primitives #ellipsoid and #cone. The #ellipsoid works with regular semi-axes
along x, y, and z. The #cone works in a similar way to the cylinder and can be truncated with circular faces of different radii. If one radius is zero then it is a normal cone.
Introduced two new mixing models for using with a fractal box, #material_range and #material_list
The #material_range allows materials to be constructed using ranges of permittivity, conductivity, magnetic permeability and magnetic loss. Ranges can be increasing or decreasing as needed.
The #material_list creates a list of predefined materials that can be used with a fractal box. The order of the listed materials reflects the order of the bins they are allocated to in a fractal box.
The fractal box and associated mixing models have been updated to use a list of material IDs and do not rely on the assumption that are generated sequentially. This gives greater flexibility and
adds little computation burden on the creation of the fractal volume.

Bug fixes for mixing anisotropic volumetric materials where "mr" was used instead of "ms".
Bug fixes on objects that use integer coordinates for centres but where passed floats instead.
这个提交包含在:
Antonis Giannopoulos
2023-04-16 13:51:47 +01:00
父节点 1dd4f17850
当前提交 bec20bbd52
共有 22 个文件被更改,包括 1067 次插入25 次删除

查看文件

@@ -160,8 +160,8 @@ class Triangle(UserObjectGeometry):
materials[2].se), axis=0)
m.mr = np.mean((materials[0].mr, materials[1].mr,
materials[2].mr), axis=0)
m.sm = np.mean((materials[0].mr, materials[1].mr,
materials[2].mr), axis=0)
m.sm = np.mean((materials[0].sm, materials[1].sm,
materials[2].sm), axis=0)
# Append the new material object to the materials list
grid.materials.append(m)