RF Channel Modeler Custom 3D Tileset Materials
You can add custom material options to the Ansys RF Channel Modeler™ plugin and assign them to 3D tilesets in an analysis configuration. To do this, add a file named rfcm_materials.json to the Ansys Systems Tool Kit® (STK®) scenario directory. The RF Channel Modeler plugin detects this file, reads it, and adds the custom material types to the Material drop-down menu for each Selected Tileset in the Facet Tileset tab of an analysis configuration. The RF Channel Modeler plugin also detects changes to the file and automatically loads them.
Materials JSON file description
The custom materials file uses the JSON format, where the materials are listed in a JSON array of objects. The materials JSON object has two properties or attributes:
- “Type” is a string that contains the type or name of material. This is the name you will see in the Material drop-down menu.
- “Properties” is a string that contains the material’s properties. The Properties string is encoded as “MATERIAL CONFIG”.
- "HeightStandardDeviation" is the standard deviation of the surface height in millimeters.
- "Roughness" is determined by the equation R = H / L, where H is the surface height standard deviation and L is a surface correlation length. Roughness is a dimensionless parameter with typical values between 0.0 and 0.5.
The following notes apply to "HeightStandardDeviation" or "Roughness" or both:
- Both the "HeightStandardDeviation" and "Roughness" values must be nonnegative. If either of the values are 0.0 or both values are 0.0, the material will be treated as flat with no performance impact. If the RF Channel Modeler plugin detects this, it will post a warning message to the RF Channel Modeler Message Log as well as to the STK Message Viewer stating that the material will be treated as flat.
- A "HeightStandardDeviation" value of less than zero will result in the RF Channel Modeler plugin rejecting the material and posting an error message to the RF Channel Modeler Message Log and the STK Message Viewer.
- A "Roughness" value of less than zero will result in the RF Channel Modeler plugin rejecting the material and posting an error message to the RF Channel Modeler Message Log and the STK Message Viewer.
- If you want to specify "Roughness", the material may consist of two or more layers but may not be penetrable, i.e., it cannot be backed by VACUUM. If the material is penetrable and the "HeightStandardDeviation" and "Roughness" parameters are assigned, the RF Channel Modeler plugin will reject the material and post an error message to the RF Channel Modeler Message Log and the STK Message Viewer.
- If you want to specify roughness, the material may not be an absorber type. If the material is an absorber and the "HeightStandardDeviation" and "Roughness" parameters are assigned, the RF Channel Modeler plugin will reject the material and post an error message to the RF Channel Modeler Message Log and the STK Message Viewer.
You can specify “MATERIAL” as one of the following strings:
- “PEC” (perfect electrical conductor) represents a perfect metal surface with infinite conductivity. It has no additional configuration values.
- “Absorber” implements a perfect electromagnetic absorber. Incident rays are absorbed by surfaces with this material, with no reflection or transmission of rays.
Backscattering from perfect electromagnetic absorbers is not zero! Absorbers generate finite but weak backward scattering relative to the incident ray. While nonintuitive, it is entirely consistent with electromagnetic theory. Perfect absorbers work by producing strong forward scattering relative to the incident rays in order to yield a deep shadow in the total field (incident + scattered) beyond the absorbing surface. This strong forward scattering is created by equivalent currents painted on the absorber coating due to the incident ray fields. Since these currents properly radiate in all directions, perfect electromagnetic absorbers also generate finite scattering in the backward direction relative to the incident ray. The finite backscattering is much weaker than would occur with a highly reflective coating such as PEC, but it is not zero.
- “DielectricLayers” may contain two or more layers. The CONFIG string for layers are separated by a space, with each layer encoded as a comma-delimited set of configuration parameters:
“thickness,relEpsReal,relEpsImag,relMuReal,relMuImag,conductivity”
Thickness is in mm, and conductivity is in S/m and >= 0. The quantity relEps is a unitless relative permittivity with a real component > 0 and imaginary component <= 0. The quantity relMu is a unitless relative permeability with a real component > 0 and imaginary component <= 0. The order of the layers matters. Layers read first are closer to the interface upon which the ray is incident. All dielectric layers have one and only one backing layer of infinite thickness. The backing layer is flagged by setting thickness t < 0. It must be the final layer in the sequence of described layers. The RF Channel Modeler plugin will ignore any layers described after the backing layer. The backing layer can be characterized by its dielectric properties (formatted as above) or be expressed as “VACUUM” or “PEC”. Penetrable materials allow rays to transmit through as well as reflect. Transmitted rays will only be launched and traced if the backing layer is “VACUUM”, which is also the default if you do not provide a backing layer. You can specify half-space materials, such as to represent road surface, Earth, tires, or a building exterior, by a dielectric backing layer with no layers above it.
Here are some “DielectricLayers” examples:
A single 4 mm layer of glass:
"DielectricLayers 4.0,6.5,0.0,1.0,0.0,0.0000325 VACUUM"
A single infinite (half-space) layer of asphalt:
"DielectricLayers -1,3.18,-0.1,1.0,0.0,0.0"
Two 1 mm layers of plastic, backed by PEC metal:
"DielectricLayers 1.0,2.0,0.0,1.0,0.0,0.0 1.0,3.0,0.0,1.0,0.0,0.0 PEC"
Materials file example
Here is an example of a complete rfcm_materials.json file.
[ { "Type":"Custom Metal", "Properties":"PEC" }, { "Type":"Custom Absorber", "Properties":"Absorber" }, { "Type":"Custom Glass", "Properties":"DielectricLayers 4.0,6.5,0.0,1.0,0.0,0.0000325 VACUUM", "HeightStandardDeviation":0.3, "Roughness":0.3 }, { "Type":"Custom Asphalt", "Properties":"DielectricLayers -1,3.18,-0.1,1.0,0.0,0.0" } ]