Difference between revisions of "EM.Libera"
Kazem Sabet (Talk | contribs) (→EM.Libera's Excitation Sources) |
Kazem Sabet (Talk | contribs) (→Building the Physical Structure in EM.Libera) |
||
Line 181: | Line 181: | ||
| style="width:250px;" | Solid objects | | style="width:250px;" | Solid objects | ||
| Surface MoM solver only | | Surface MoM solver only | ||
+ | |- | ||
+ | | style="width:30px;" | [[File:Virt_group_icon.png]] | ||
+ | | style="width:150px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Virtual_Object_Group | Virtual Object]] | ||
+ | | style="width:300px;" | Used for representing non-physical items | ||
+ | | style="width:250px;" | All types of objects | ||
+ | | None | ||
|} | |} | ||
Latest revision as of 23:49, 3 August 2018
3D Wire MoM And Surface MoM Solvers For Simulating Free-Space Structures
Contents
Product Overview
EM.Libera in a Nutshell
EM.Libera is a full-wave 3D electromagnetic simulator based on the Method of Moments (MoM) for frequency domain modeling of free-space structures made up of metal and dielectric regions or a combination of them. It features two separate simulation engines, a Surface MoM solver and a Wire MoM solver, that work independently and provide different types of solutions to your numerical problem. The Surface MoM solver utilizes a surface integration equation formulation of the metal and dielectric objects in your physical structure. The Wire MoM solver can only handle metallic wireframe structures. EM.Libera selects the simulation engine automatically based on the types of objects present in your project workspace.
EM.Libera offers two distinct 3D MoM simulation engines. The Wire MoM solver is based on Pocklington's integral equation. The Surface MoM solver uses a number of surface integral equation formulations of Maxwell's equations. In particular, it uses an electric field integral equation (EFIE), magnetic field integral equation (MFIE), or combined field integral equation (CFIE) for modeling PEC regions. On the other hand, the so-called Poggio-Miller-Chang-Harrington-Wu-Tsai (PMCHWT) technique is utilized for modeling dielectric regions. Equivalent electric and magnetic currents are assumed on the surface of the dielectric objects to formulate their assocaited interior and exterior boundary value problems.
In general, EM.Libera uses the surface MoM solver to analyze your physical structure. If your project workspace contains at least one line or curve object, EM.Libera switches to the Wire MoM solver. |
Click here to learn more about the theory of the 3D Method of Moments.
EM.Libera as the MoM3D Module of EM.Cube
You can use EM.Libera either for simulating arbitrary 3D metallic, dielectric and composite surfaces and volumetric structures or for modeling wire objects and metallic wireframe structures. EM.Libera also serves as the frequency-domain, full-wave MoM3D Module of EM.Cube, a comprehensive, integrated, modular electromagnetic modeling environment. EM.Libera shares the visual interface, 3D parametric CAD modeler, data visualization tools, and many more utilities and features collectively known as CubeCAD with all of EM.Cube's other computational modules.
Click here to learn more about EM.Cube Modeling Environment.
Advantages & Limitations of EM.Libera's Surface MoM & Wire MoM Solvers
The method of moments uses an open-boundary formulation of Maxwell's equations which does not require a discretization of the entire computational domain, but only the finite-sized objects within it. As a result, EM.Libera's typical mesh size is typically much smaller that that of a finite-domain technique like EM.Tempo's FDTD. In addition, EM.Libera's triangular surface mesh provides a more accurate representation of your physical structure than EM.Tempo's staircase brick volume mesh, which often requires a fairly high mesh density to capture the geometric details of curved surfaces. These can be serious advantages when deciding on which solver to use for analyzing highly resonant structures. In that respect, EM.Libera and EM.Picasso are similar as both utilize MoM solvers and surface mesh generators. Whereas EM.Picasso is optimized for modeling multilayer planar structures, EM.Libera can handle arbitrarily complex 3D structures with high geometrical fidelity.
EM.Libera's Wire MoM solver can be used to simulate thin wires and wireframe structures very fast and accurately. This is particularly useful for modeling wire-type antennas and arrays. One of the current limitations of EM.Libera, however, is its inability to mix wire structures with dielectric objects. If your physical structure contains one ore more wire objects, then all the PEC surface and solid CAD objects of the project workspace are reduced to wireframe models in order to perform a Wire MoM simulation. Also note that Surface MoM simulation of composite structures containing conjoined metal and dielectric parts may take long computation times due to the slow convergence of the iterative linear solver for such types of numerical problems. Since EM.Libera uses a surface integral equation formulation of dielectric objects, it can only handle homogeneous dielectric regions. For structures that involve multiple interconnected dielectric and metal regions such as planar circuits, it is highly recommended that you use either EM.Tempo or EM.Picasso instead.
EM.Libera Features at a Glance
Physical Structure Definition
- Metal wires and curves in free space
- Metal surfaces and solids in free space
- Homogeneous dielectric solid objects in free space
- Import STL CAD files as native polymesh structures
- Export wireframe structures as STL CAD files
Sources, Loads & Ports
- Gap sources on wires (for Wire MoM) and gap sources on long, narrow, metal strips (for Surface MoM)
- Gap arrays with amplitude distribution and phase progression
- Multi-port port definition for gap sources
- Short dipole sources
- Import previously generated wire mesh solution as collection of short dipoles
- RLC lumped elements on wires and narrow strips with series-parallel combinations
- Plane wave excitation with linear and circular polarizations
- Multi-Ray excitation capability (ray data imported from EM.Terrano or external files)
- Huygens sources imported from FDTD or other modules with arbitrary rotation and array configuration
Mesh Generation
- Polygonized mesh of curves and wireframe mesh of surfaces and solids for Wire MoM simulation
- User defined wire radius
- Connection of wires/lines to wireframe surfaces and solids using polymesh objects
- Surface triangular mesh of surfaces and solids for Surface MoM simulation
- Local mesh editing of polymesh objects
3D Wire MoM & Surface MoM Simulations
- 3D Pocklington integral equation formulation of wire structures
- 3D electric field integral equation (EFIE), magnetic field integral equation (MFIE) and combined field integral equation (CFIE) formulation of PEC structures
- PMCHWT formulation of homogeneous dielectric objects
- AIM acceleration of Surface MoM solver
- Uniform and fast adaptive frequency sweep
- Parametric sweep with variable object properties or source parameters
- Multi-variable and multi-goal optimization of scene
- Fully parallelized Surface MoM solver using MPI
- Both Windows and Linux versions of Wire MoM simulation engine available
Data Generation & Visualization
- Wireframe and electric and magnetic current distributions
- Near Field intensity plots (vectorial - amplitude & phase)
- Huygens surface data generation for use in MoM3D or other EM.Cube modules
- Far field radiation patterns: 3D pattern visualization and 2D Cartesian and polar graphs
- Far field characteristics such as directivity, beam width, axial ratio, side lobe levels and null parameters, etc.
- Radiation pattern of an arbitrary array configuraition of the wire structure
- Bi-static and mono-static radar cross section: 3D visualization and 2D graphs
- Port characteristics: S/Y/Z parameters, VSWR and Smith chart
- Touchstone-style S parameter text files for direct export to RF.Spice or its Device Editor
- Custom output parameters defined as mathematical expressions of standard outputs
Building the Physical Structure in EM.Libera
All the objects in your project workspace are organized into object groups based on their material composition and geometry type in the "Physical Structure" section of the navigation tree. In EM.Libera, you can create three different types of objects:
Icon | Material Type | Applications | Geometric Object Types Allowed | Restrictions |
---|---|---|---|---|
Perfect Electric Conductor (PEC) | Modeling perfect metals | Solid, surface and curve objects | None | |
Thin Wire | Modeling wire radiators | Curve objects | Wire MoM solver only | |
Dielectric Material | Modeling any homogeneous material | Solid objects | Surface MoM solver only | |
Virtual Object | Used for representing non-physical items | All types of objects | None |
Click on each category to learn more details about it in the Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types.
Both of EM.Libera's two simulation engines, Wire MoM and Surface MoM, can handle metallic structures. You define wires under Thin Wire groups and surface and volumetric metal objects under PEC Objects. In other words, you can draw lines, polylines and other curve objects as thin wires, which have a radius parameters expressed in project units. All types of solid and surface CAD objects can be drawn in a PEC group. Only solid CAD objects can be drawn under Dielectric Objects.
Once a new object group node has been created on the navigation tree, it becomes the "Active" group of the project workspace, which is always listed in bold letters. When you draw a new CAD object such as a Box or a Sphere, it is inserted under the currently active group. There is only one object group that is active at any time. Any object type can be made active by right clicking on its name in the navigation tree and selecting the Activate item of the contextual menu. It is recommended that you first create object groups, and then draw new CAD objects under the active object group. However, if you start a new EM.Libera project from scratch, and start drawing a new object without having previously defined any object groups, a new default PEC object group is created and added to the navigation tree to hold your new CAD object.
Click here to learn more about Moving Objects among Different Groups.
In EM.Cube, you can import external CAD models (such as STEP, IGES, STL models, etc.) only to CubeCAD. From CubeCAD, you can then move the imported objects to EM.Libera. |
EM.Libera's Excitation Sources
Your 3D physical structure must be excited by some sort of signal source that induces electric linear currents on thin wires, electric surface currents on metal surface and both electric magnetic surface currents on the surface of dielectric objects. The excitation source you choose depends on the observables you seek in your project. EM.Libera provides the following source types for exciting your physical structure:
Icon | Source Type | Applications | Restrictions |
---|---|---|---|
Strip Gap Circuit Source | General-purpose point voltage source | Associated with a PEC rectangle strip, works only with SMOM solver | |
Wire Gap Circuit Source | General-purpose point voltage source | Associated with an PEC or thin wire line or polyline, works only with WMOM solver | |
Hertzian Short Dipole Source | Almost omni-directional physical radiator | None, stand-alone source | |
Plane Wave Source | Used for modeling scattering | None, stand-alone source | |
Huygens Source | Used for modeling equivalent sources imported from other EM.Cube modules | Imported from a Huygens surface data file |
Click on each category to learn more details about it in the Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types.
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. EM.Libera provides two types of lumped sources: strip gap and wire gap. A Gap is an infinitesimally narrow discontinuity that is placed on the path of the current and is used to define an ideal voltage source. Wire gap sources must be placed on Thin Wire Line and Thin Polyline objects to provide excitation for the Wire MoM solver. The gap splits the wire into two lines with a an infinitesimally small spacing between them, across which the ideal voltage source is connected. Strip gap sources must be placed on long, narrow, PEC Rectangle Strip objects to provide excitation for the Surface MoM solver. The gap splits the strip into two strips with a an infinitesimally small spacing between them, across which the ideal voltage source is connected. Only narrow rectangle strip object that have a single mesh cell across their width can be used to host a gap source.
If you want to excite a curved wire antenna such as a circular loop or helix with a wire gap source, first you have to convert the curve object into a polyline using CubeCAD's Polygonize Tool. |
A short dipole provides another simple way of exciting a 3D structure in EM.Libera. A short dipole source acts like an infinitesimally small ideal current source. You can also use an incident plane wave to excite your physical structure in EM.Libera. In particular, you need a plane wave source to compute the radar cross section of a target. The direction of incidence is defined by the θ and φ angles of the unit propagation vector in the spherical coordinate system. The default values of the incidence angles are θ = 180° and φ = 0° corresponding to a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure that was previously analyzed in another EM.Cube computational module.
Click here to learn more about Using Source Arrays in Antenna Arrays.
Modeling Lumped Circuits
In EM.Libera, you can define simple lumped elements in a similar manner as gap sources. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of the current, across which Ohm's law is enforced as a boundary condition. You can define passive RLC lumped elements or active lumped elements containing a voltage gap source. The latter case can be used to excite a wire structure or metallic strip and model a non-ideal voltage source with an internal resistance. EM.Libera's lumped circuit represent a series-parallel combination of resistor, inductor and capacitor elements. This is shown in the figure below:
Click here to learn more about Defining Lumped Elements.
Click here for a general discussion of Linear Passive Devices.
Defining Ports
Ports are used to order and index gap sources for S parameter calculation. They are defined in the Observables section of the navigation tree. By default, as many ports as the total number of sources are created. You can define any number of ports equal to or less than the total number of sources. All port impedances are 50Ω by default.
Click here to learn more about the Port Definition Observable.
EM.Libera's Simulation Data & Observables
At the end of a 3D MoM simulation, EM.Libera generates a number of output data files that contain all the computed simulation data. The primary solution of the Wire MoM simulation engine consists of the linear electric currents on the wires and wireframe structures. The primary solution of the Surface MoM simulation engine consists of the electric and magnetic surface currents on the PEC and dielectric objects. EM.Libera currently offers the following types of observables:
Icon | Simulation Data Type | Observable Type | Applications | Restrictions |
---|---|---|---|---|
Current Distribution Maps | Current Distribution | Computing electric surface current distribution on metal and dielectric objects, magnetic surface current distribution on dielectric objects and linear current distribution on wires | None | |
Near-Field Distribution Maps | Near-Field Sensor | Computing electric and magnetic field components on a specified plane in the frequency domain | None | |
Far-Field Radiation Characteristics | Far-Field Radiation Pattern | Computing the radiation pattern and additional radiation characteristics such as directivity, axial ratio, side lobe levels, etc. | None | |
Far-Field Scattering Characteristics | Radar Cross Section (RCS) | Computing the bistatic and monostatic RCS of a target | Requires a plane wave source | |
Port Characteristics | Port Definition | Computing the S/Y/Z parameters and voltage standing wave ratio (VSWR) | Requires one of these source types: lumped, distributed, microstrip, CPW, coaxial or waveguide port | |
Equivalent electric and magnetic surface current data | Huygens Surface | Collecting tangential field data on a box to be used later as a Huygens source in other EM.Cube modules | None |
Click on each category to learn more details about it in the Glossary of EM.Cube's Simulation Observables & Graph Types.
Depending on the types of objects present in your project workspace, EM.Libera performs either a Surface MoM simulation or a Wire MoM simulation. In the former case, the electric and magnetic surface current distributions on the surface of PEC and dielectric objects can be visualized. In the latter case, the linear electric currents on all the wires and wireframe objects can be plotted.
You need to define a far field observable if you want to plot radiation patterns of your physical structure in EM.Libera. After a 3D MoM simulation is finished, three radiation patterns plots are added to the far field entry in the Navigation Tree. These are the far field component in Theta direction, the far field component in Phi direction and the total far field.
Click here to learn more about the theory of Using Array Factors to Model Antenna Arrays .
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Libera calculates the radar cross section (RCS) of a target. Three RCS quantities are computed: the θ and φ components of the radar cross section as well as the total radar cross section, which are dented by σ_{θ}, σ_{φ}, and σ_{tot}. In addition, EM.Libera calculates two types of RCS for each structure: Bi-Static RCS and Mono-Static RCS. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles θ_{0} and φ_{0}, and the RCS is measured and plotted at all θ and φ angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles θ_{0} and φ_{0}, and the RCS is measured and plotted at the echo angles 180°-θ_{0}; and φ_{0}. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles θ and φ are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. At the end of a PO simulation, the thee RCS plots σ_{θ}, σ_{φ}, and σ_{tot} are added under the far field section of the navigation tree.
Computing the 3D mono-static RCS may take an enormous amount of computation time. |
3D Mesh Generation in EM.Libera
A Note on EM.Libera's Mesh Types
EM.Libera features two simulation engines, Wire MoM and Surface MoM, which require different mesh types. The Wire MoM simulator handles only wire objects and wireframe structures. These objects are discretized as elementary linear elements (filaments). A wire is simply subdivided into smaller segments according to a mesh density criterion. Curved wires are first converted to multi-segment polylines and then subdivided further if necessary. At the connection points between two or more wires, junction basis functions are generated to ensure current continuity.
On the other hands, EM.Libera's Surface MoM solver requires a triangular surface mesh of surface and solid objects.The mesh generating algorithm tries to generate regularized triangular cells with almost equal surface areas across the entire structure. You can control the cell size using the "Mesh Density" parameter. By default, the mesh density is expressed in terms of the free-space wavelength. The default mesh density is 10 cells per wavelength. For meshing surfaces, a mesh density of 7 cells per wavelength roughly translates to 100 triangular cells per squared wavelength. Alternatively, you can base the definition of the mesh density on "Cell Edge Length" expressed in project units.
Click here to learn more about Working with Mesh Generator.
Click here to learn more about EM.Libera's Triangular Surface Mesh Generator .
The Linear Wireframe Mesh Generator
You can analyze metallic wire structures very accurately with utmost computational efficiency using EM.Libera's Wire MoM simulator. When you structure contains at least one PEC line, polyline or any curve CAD object, EM.Libera will automatically invoke its linear wireframe mesh generator. This mesh generator subdivides straight lines and linear segments of polyline objects into or linear elements according to the specified mesh density. It also polygonizes rounded curve objects into polylines with side lengths that are determined by the specified mesh density. Note that polygonizing operation is temporary and solely for he purpose of mesh generation. As for surface and solid CAD objects, a wireframe mesh of these objects is created which consists of a large number of interconnected linear (wire) elements.
Mesh of Connected Objects
All the objects belonging to the same PEC or dielectric group are merged together using the Boolean union operation before meshing. If your structure contains attached, interconnected or overlapping solid objects, their internal common faces are removed and only the surface of the external faces is meshed. Similarly, all the surface objects belonging to the same PEC group are merged together and their internal edges are removed before meshing. Note that a solid and a surface object belonging to the same PEC group might not always be merged properly.
When two objects belonging to two different material groups overlap or intersect each other, EM.Libera has to determine how to designate the overlap or common volume or surface. As an example, the figure below shows a dielectric cylinder sitting on top of a PEC plate. The two object share a circular area at the base of the cylinder. Are the cells on this circle metallic or do they belong to the dielectric material group? Note that the cells of the junction are displayed in a different color then those of either groups. To address problems of this kind, EM.Libera does provide a "Material Hierarchy" table, which you can modify. To access this table, select Menu > Simulate < discretization < Mesh Hierarchy.... The PEC groups by default have the highest priority and reside at the top of the table. You can select an group from the table and change its hierarch using the Move Up or Move Down buttons of the dialog. You can also change the color of junction cells that belong to each group.
Using Polymesh Objects to Connect Wires to Wireframe Surfaces
If the project workspace contains a line object, the wireframe mesh generator is used to discretize your physical structure. From the point of view of this mesh generator, all PEC surface objects and PEC solid objects are treated as wireframe objects. If you want to model a wire radiator connected to a metal surface, you have to make sure that the resulting wireframe mesh of the surface has a node exactly at the location where you want to connect your wire. This is not guaranteed automatically. However, you can use EM.Cube's polymesh objects to accomplish this objective.
In EM.Cube, polymesh objects are regards as already-meshed objects and are not re-meshed again during a simulation. |
You can convert any surface object or solid object to a polymesh using CubeCAD's Polymesh Tool.
Click here to learn more about Converting Object to Polymesh in EM.Cube.
Once an object is converted to a polymesh, you can place your wire at any of its nodes. In that case, EM.Libera's Wire MoM engine will sense the coincident nodes between line segments and will create a junction basis function to ensure current continuity.
Running 3D MoM Simulations in EM.Libera
EM.Libera's Simulation Modes
Once you have set up your structure in EM.Libera, have defined sources and observables and have examined the quality of the structure's mesh, you are ready to run a 3D MoM simulation. EM.Libera offers five simulation modes:
Simulation Mode | Usage | Number of Engine Runs | Frequency | Restrictions |
---|---|---|---|---|
Single-Frequency Analysis | Simulates the planar structure "As Is" | Single run | Runs at the center frequency fc | None |
Frequency Sweep | Varies the operating frequency of the surface MoM or wire MoM solvers | Multiple runs | Runs at a specified set of frequency samples or adds more frequency samples in an adaptive way | None |
Parametric Sweep | Varies the value(s) of one or more project variables | Multiple runs | Runs at the center frequency fc | None |
Optimization | Optimizes the value(s) of one or more project variables to achieve a design goal | Multiple runs | Runs at the center frequency fc | None |
HDMR Sweep | Varies the value(s) of one or more project variables to generate a compact model | Multiple runs | Runs at the center frequency fc | None |
You can set the simulation mode from EM.Libera's "Simulation Run Dialog". A single-frequency analysis is a single-run simulation. All the other simulation modes in the above list are considered multi-run simulations. If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. In multi-run simulation modes, certain parameters are varied and a collection of simulation data files are generated. At the end of a sweep simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the navigation tree.
Running a Single-Frequency MoM Analysis
In a single-frequency analysis, the structure of your project workspace is meshed at the center frequency of the project and analyzed by one of EM.Libera's two MoM solvers. If your project contains at least one line or curve object, the Wire MoM solver is automatically selected. Otherwise, the Surface MoM solver will always be used to simulate your numerical problem. In either case, the engine type is set automatically.
To open the Run Simulation Dialog, click the Run button of the Simulate Toolbar or select Menu > Simulate > Run... or use the keyboard shortcut Ctrl+R. By default, the Surface MoM solver is selected as your simulation engine. To start the simulation, click the Run button of this dialog. Once the 3D MoM simulation starts, a new dialog called Output Window opens up that reports the various stages of MoM simulation, displays the running time and shows the percentage of completion for certain tasks during the MoM simulation process. A prompt announces the completion of the MoM simulation.
Setting MoM Numerical Parameters
MoM simulations involve a number of numerical parameters that normally take default values unless you change them. You can access these parameters and change their values by clicking on the Settings button next to the "Select Engine" dropdown list in the Run Dialog. Depending on which MoM solver has been chosen for solving your problem, the corresponding Engine Settings dialog opens up.
First we discuss the Wire MoM Engine Settings dialog. In the Solver section of this dialog, you can choose the type of Linear Solver. The current options are LU and Bi-Conjugate Gradient (BiCG). The LU solver is a direct solver and is the default option of the Wire MoM solver. The BiCG solver is iterative. If BiCG is selected, you have to set a Tolerance for its convergence. You can also change the maximum number of BiCG iterations by setting a new value for Max. No. of Solver Iterations / System Size.
The Surface MoM Engine Settings dialog is bit more extensive and provides more options. In the "Integral Equation" section of the dialog, you can choose among the three PEC formulations: EFIE, MFIE and CFIE. The EFIE formulation is the default option. In the case of the CFIE formulation, you can set a value for the "Alpha" parameter, which determines the weights for the EFIE and MFIE terms of the combine field formulation. The default value of this parameter is α = 0.4. The Surface MoM solver provides two types of linear solver: iterative TFQMR and direct LU. The former is the default option and asks for additional parameters: Error Tolerance and Max. No. of Solver Iterations. When the system size is large, typically above 3000, EM.Libera uses an acceleration technique called the Adaptive Integral Method (AIM) to speed up the linear system inversion. You can set the "AIM Grid Spacing" parameter in wavelength, which has a default value of 0.05λ_{0}. EM.Libera's Surface MoM solver has been highly parallelized using MPI framework. When you install EM.Cube on your computer, the installer program also installs the Windows MPI package on your computer. If you are using a multicore CPU, taking advantage of the MPI-parallelized solver can speed up your simulations significantly. In the "MPI Settings" of the dialog, you can set the "Number of CPU's Used", which has a default value of 4 cores.
For both Wire MoM and Surface MoM solvers, you can instruct EM.Libera to write the contents of the MoM matrix and excitation and solutions vectors into data files with .DAT1 file extensions. These files can be accessed from the Input/Output Files tab of the Data Manager. In both case, you have the option to uncheck the check box labeled "Superpose Incident plane Wave Fields". This option applies when your structure is excited by a plane wave source. When checked, the field sensors plot the total electric and magnetic field distributions including the incident field. Otherwise, only the scattered electric and magnetic field distributions are visualized.