# EPTlib: An Open-Source Extensible Collection of Electric Properties Tomography Techniques
## 3 EPT Techniques
### Gradient-Ept
```
1:method = 2
2:[\(input\)]
3:tx-channels = 8
4:rx-channels = 1
5:[\(parameter.savitzky-galaxy\)]
6:size = [2,2,1]
7:shape = 0
8:[\(parameter.seed-point\)]
9:use-seed-point = true
10:coordinates = [[15,20,25], [42,16,20] ]
11:electric-conductivity = [0.1, 0.15]
12:relative-permittivity = [50.0, 70.0]
13:[\(parameter.regularization\)]
14:regularization-coefficient = 1000.0
15:gradient-tolerance = 0.01
16:output-mask = \"out.h5:/mask\"
17:[\(parameter\)]
18:volume-tomography = false
19:imaging-slice = 3
20:full-run = true
```  
**Configuration File 4** Gradient-EPT specific settings for _EPTlib_app_  
The example Configuration File 4 collects the additional settings of _EPTlib_app_ specific for gradient-EPT. As already described for Helmholtz-EPT, the optional section _parameter.savitzky-galaxy_ select the window of the Savitzky-Golay filter [36] adopted for the estimation of the first- and second-order derivatives of the Tx sensitivities and the relative phases in the local step. The optional section _parameter.seed-point_ sets a seed point constraint in the global step (29):  
* **use-seed-point** is true if the seed point constraint is selected. By default false. * **coordinates** is the list of the integer coordinates of the seed points in the mesh of voxels (index 0 is used for the first voxel). This setting is mandatory if **use-seed-point** is true, otherwise it is ignored. * **electric-conductivity** is the list of the electric conductivity in siemens per meter forced in each seed point. This setting is mandatory if **use-seed-point** is true, otherwise it is ignored. * **relative-permittivity** is the list of the relative permittivity forced in each seed point. This setting is mandatory if **use-seed-point** is true, otherwise it is ignored. The lists of **coordinates**, **electric-conductivity** and **relative-permittivity** must have as many elements as the number of selected seed points. The optional section _parameter.regularization_ sets the regularization term in the global step (31) if the seed point constraint is not used (this section is ignored if **use-seed-point** in section _parameter.seed-point_ is true):  
* **regularization-coefficient** is the value of the regularization coefficient \(\lambda\). By default 1. * **gradient-tolerance** is the value of the tolerance \(k\) for determining the sub-domain \(\Omega_{0}\). By default 0. * **output-mask** is the address of the dataset in HDF5 file in which the characteristic function of \(\Omega_{0}\) will be stored. The address is provided as a string in which the HDF5 file address is separated from the internal dataset identifier by a colon. Thus, the string \"out.h5:/mask\" denotes the dataset \"/mask\" in the file \"out.h5\". If this setting is omitted, the data will not be stored. The optional section _parameter_ selects the two-dimensional approximation (33) and if the execution must end after the local step (28) or proceed with the global-step (29):  
* **volume-tomography** is false if the two-dimensional approximation is selected. By default false. * **imaging-slice** is the index of the slice selected for the two-dimensional tomography. This setting is ignored if **volume-tomography** is true. The mid-plane of the input data is selected by default. * **full-run** is false if the execution must stop after the local step. By default true. Moreover, to apply gradient-EPT it is necessary to select in the configuration file the **method** 2 and to set **rx-channels** in the _input_ section equal to 1. Since in the local step (28) there are nine real-valued unknowns and each Tx channel leads to a complex-valued equation, a pTx system with at least five Tx channels is needed by gradient-EPT. Thus, the setting **tx-channels** in the _input_ section must be at least equal to 5.