In the HDMR method, you run successive evaluations of a given function of one or more [[variables]] for a number of [[variables]] samples. Then you create an optimal monomial surface representation of the computed data as a function of those [[variables]]. The resulting simplified function is characterized by a finite number of monomial coefficients. Therefore, its computation is more faster and computationally efficient than the original functions.
Â
==Defining the HDMR Variables ==
[[Image:Variable32.png|thumb|500px|The HDMR Settings dialog.]]
To define the HDMR [[variables]], follow the procedure below:
* Open the Simulation '''Run Dialog''' of most of [[EM.Cube]]'s computational modules and select the '''HDMR''' option from the '''Simulation Mode''' dropdown list.
* Click the '''Settings''' button next to the simulation mode dropdown list to open up the HDMR Settings Dialog.
* On the left side of the "[[Variables]]" section of the dialog you see the "'Independent [[Variables]] Table", which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the Right Arrow (-->) button of the dialog to move it to the "HDMR [[Variables]] Table".
To define an HDMR model, follow the procedure below:
* click the '''Add''' button in the "HDMR ModelsModel Definition" section of the dialog to open up the '''Add HDMR Model Dialog'''. At the bottom of this dialog, you can see a list of all the available [[EM.Cube]] standard output [[parameters]]. This list may vary depending on the types of sources and observables you have defined in your project.
* Choose a name for your HDMR model. Make sure that this name is unique and does not conflict with the existing data file names in your project's folder.
* Type in any mathematical expressions in the boxes labeled '''Expression'''. If you select the name of any standard parameter in the table and double-click on it, it will be reflected in the expression box.
* You can have different names for your HDMR model and its model file with an '''.HDM''' file extension. But it is recommended that you choose the same name. Select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''"== (Equal To)"'''.* Once the construction definition of your objective HDMR model is complete, click the '''OK''' button on the dialog to close it and return to the Objectives HDMR Settings dialog.
You will see your new objective HDMR added to the Objective HDMR Model List table. You can modify a design objective model definition using the {{key|Edit}} button of the Objectives this dialog. Only design objectives that contain the logical operator "==" You can also define more than one HDMR model at a time. Such models will be used as an [[optimization]] goalgenerated using the same simulation runs. All However, it is recommended not to generate unrelated models together. In the design objectives that contain a logical operator other than example below, we have defined an HDMR model called "==Resistance" are treated as for the real part of the Z11 [[optimizationparameters]] constraints. This means that the optimizer algorithm first tries to minimize an error of a dipole antenna as a function that is based on the goals solely and then it verifies that the constraints are satisfied additionallyof its length defined by an independent variable "L".
<table>
<tr>
<td> [[Image:Variable31.png|thumb|300px|Defining an objective HDMR model involving S Z parameters.]] </td><td> [[Image:Variable34.png|thumb|300px|Defining an objective involving antenna directivity.]] </td>
</tr>
</table>
Â
[[Image:Variable34.png|thumb|550px|EM.Cube's Model dialog showing a the HDMR model "Resistance.HDM" generated by EM.Tempo's FDTD simulation engine.]]
== Running an HDMR Sweep ==
Â
After you define all of your HDMR [[variables]] and model(s), close the HDMR Settings dialog to return to the simulation Run dialog. When you click the {{key|Run}} button of the Simulation Run dialog to start the HDMR sweep process, an Output Window pops up that reports the various stages of the sweep loop and displays the progress or percentage of completion. After the sweep process is finished, an HDMR file with a '''.HDM''' file extension is added to your project's folder, which contains all the monomial coefficients of your HDMR model. You can see your new HDMR model [[EM.Cube]]'s Models Dialog, which you can open by clicking the '''Models''' button [[File:Models_icon.png]] of the Simulate Toolbar or selecting '''Menu > Simulate > Models...''' or using the keyboard shortcut {{key|Ctrl+L}}.
Â
Note that once you generate an HDMR model, you can use it everywhere in [[EM.Cube]] just like any standard or library function or like a functional, tabular or Python model. In the above example, the syntax of your new custom function is Resistance(L) or Resistance(x). As you can see from the figure on the right, the current value of "Resistance" is about 115.2Ω because the argument of your HDMR function, i.e. "L", has a current value of 150mm, which can be verified in the [[Variables]] dialog.
Â
<p> </p>
[[Image:Back_icon.png|40px]] '''[[Parametric_Modeling,_Sweep_%26_Optimization | Back to Parametric Modeling, Sweep & Optimization]]'''