PDF

PCB to Material Data
Introduction
This add-in provides a streamlined way to prepare a printed circuit board (PCB) for simulation by replacing its detailed internal structure with a space-dependent interpolation function for the material properties. Instead of explicitly modeling every trace and via in the geometry, the interpolation function captures their effect across the board. The resulting simplified geometry is generated by extruding the PCB outline according to the layer stack defined in the input file.
With this approach, you can assign materials for traces, dielectric regions, and via cores directly through the add-in. There is also flexibility to include domains for selected components, giving you control over how much detail to preserve in the model.
This simplification technique is particularly valuable for studies where full geometric detail is unnecessary but material behavior is critical. For example, when analyzing heat loads, evaluating temperature distributions, or investigating the effects of thermal expansion on the board. By reducing geometric detail while preserving the essential material behavior, the add-in speeds up geometry creation, meshing, and simulation, helping you explore results faster and with fewer computational resources.
Using the Add-in
Start by selecting a PCB file for analysis. The metal, dielectric and drill layers contained in the file are displayed in a table where their names, types, and thicknesses can be reviewed and modified. Copper layers that are not selected for import are still accounted for and they are approximated with dielectric material properties, preserving the overall thickness of the board. At least one metal or dielectric layer with a nonzero thickness must be included to ensure that the board is correctly represented in the analysis.
With the layout defined, the next step is to assign material properties. In the Materials section you decide how copper layers (including hole plating, if specified) and dielectric layers should be treated. While in the Vias section, you can choose which materials will be assigned to via cores. The add-in supports both built-in materials and user-defined materials added to Global Materials. The generated material includes the properties available in the selected source materials, including constant and variable-dependent properties, and associated material functions. If a property is defined for one selected material but not for another, the missing value is set to zero in that material region. Verify that the chosen materials contain all properties required by the physics interfaces in the model. For anisotropic properties, select the coordinate system created by the add-in, in the relevant physics node so that the material directions follow the position and orientation of the simplified PCB.
Use the Interpolation Grid Size section to control the spatial resolution of the material distribution. With Automatic selected, the add-in estimates the grid spacing from the smallest via geometry. If no valid via geometry is available, the spacing is estimated from the board dimensions. Select Absolute to enter the spacing directly. Note that a smaller spacing captures finer PCB features but increases processing time and the size of the interpolation file.
Once the layers, materials and interpolation grid size are specified, the add-in can be run. A progress bar indicates the status while the add-in systematically processes each layer and generates a space-dependent interpolation function representing the interior structure of the board. A file with a resulting interpolation function is stored in the user files directory. By default, this directory is set under Preferences > Files > Folder for user files, but the location can be changed if desired. A working version of the selected PCB file is stored in the same folder.
In the last steps, add-in creates a simplified PCB geometry, assigns the material properties using the imported interpolation function, and generates a mesh using a Swept mesh generator. The simplified PCB is defined as a geometry part and inserted into the target component as the Part Instance. To position and orient the PCB, use translation and rotation settings in the Part Instance; the material distribution follows these transformations automatically. Avoid applying subsequent geometry transformations to the resulting PCB, as this can misalign the interpolation data and the geometry. The initial mesh element size is based on the interpolation grid size and can be adjusted afterwards to create finer or coarser mesh.
In addition to generating the interpolation-based board model, the add-in offers the option of creating simplified 3D components from the file’s outlines. This step does not affect the interpolation function but adds geometric detail that can be useful when constructing the complete simulation model.
An interpolation function is defined by a file that provides function values at discrete grid points. In this workflow, an interpolation file is automatically generated by the add-in, with the naming convention interpolationFunction_<PCB_filename>. In the settings window for Interpolation to the right you can see an example of an imported interpolation function file generated by the add-in.
The Interpolation and Extrapolation settings determine how values are evaluated between grid points and outside the defined coordinate domain. Interpolation is set to Nearest neighbor, meaning the value of the closest defined point is used, while extrapolation is not performed. If required, these settings can be adjusted to other methods, depending on the needs of the analysis.
Finally, the Units section specifies the units of both the function and its arguments. This table is generated automatically, with argument units derived from the geometry units defined in the PCB file.
To inspect the created interpolation function, you can click Create Plot in the settings toolbar. This generates a 3D Plot Group with slice plots of the function, similar to the example shown below. By default, the plot displays a low-resolution version of the interpolation data, but you can increase the level of detail by adjusting the grid resolution in the 3D Grid settings under Datasets.
The PCB featured in the images originates from OtterCastAudioV2, Copyright © 2024 Ottercast, Jana Marie Hemsing, and it is made available under the MIT license.
Add-in Library path: ECAD_Import_Module/pcb_to_material_data
PCB to Material Data
Toolbar
The toolbar at the top of the Settings window provides quick access to main controls of the add-in.
Click Run to execute the add-in and create an interpolation function representing the geometry of selected PCB. Click Reset Current to restore the default add-in settings for the currently selected PCB while keeping the file and its layer table loaded. Click Reset All to clear the selected PCB file and restore all controls to their initial values. Note that the reset commands affect only the add-in settings. They do not remove model nodes or interpolation files created by an earlier run.
Source
Use the Source section to select PCB file to process. Click the Browse button to open a file browser and select a supported PCB file.
Target
The Target section defines where the interpolation function is created in the model. You can create a New component (default) or insert the function into an already defined 3D component in the current model. The list shows all valid 3D components available for selection.
layers
The Layers section provides a table that lists all metal, dielectric, and drill layers in the selected PCB. Each row contains the layer name, which can be renamed if needed, along with the layer type, such as metal, dielectric, or drill. The table also includes the thickness of each layer, with values that can be modified to match the desired board thickness. A set of checkboxes makes it possible to control whether individual layers are included in the analysis, with all layers selected for processing by default. For quick access, you can use buttons below table to Clear All Layers or Select All Layers.
materials
In the Materials section, you can specify material properties for Metal (including hole plating, if specified) and Dielectric layers. The default option for metal is set to Copper, while material for dielectric layers is set to FR4 (Circuit Board). An alternative option is to set the layer material properties to an already defined material in the Materials node under Global Definitions.
VIas
In the Vias section, you can assign material properties to the via cores. The core material can be set to Copper or FR4 (Circuit Board), or you can choose From Global materials to assign material properties of an existing material in the Materials node under Global Definitions. It is also possible to add a plating to all holes by specifying the plating thickness.
When the selected file contains multiple drill layers, an additional Defined per drill layer option becomes available. This makes it possible to define core material properties individually for each drill layer.
components
The Components section controls how 3D PCB components are created in the target component. If None is selected, no components are generated, while choosing All creates every component included in the file.
Choosing Selected displays a list box where you can select specific components to import. By default, the list is empty, but you add specific components by clicking Add () button in the toolbar below the list. This will display a dialog box with all available components, where you can select more than one item in the list by using Shift+Click or Ctrl+Click. Click OK to add desired PCB component to the list. Use Move Up (), Move Down () and Delete () buttons to organize the table.
This flexibility makes it possible to import only the components relevant to your analysis, as illustrated in the example where only a few selected components are included in the geometry.
Interpolation grid size
The Interpolation Grid Size section controls the in-plane resolution of the generated material data. Select Automatic to let the add-in estimate a suitable spacing..
Select Absolute to enter the grid spacing manually. When this option is selected for the first time, the automatically estimated value is displayed.
Information
In the Information section, you will find the last build time, as well as the COMSOL Multiphysics version used to run the add-in.