![](figs/Img3.png)
Compared to the raw curves, we can find the fitted curves keep the most appearance with less vibrations or noises. For desired output, you may try different combinations of arguments ```dV``` and ```dW```. Help documentation and references might be helpful. The calculation of adiabatic heating correction will utilize the integral of those curves, the smoothing by Kalman will make a more robust output rationally.
## Adiabatic heating correction
Adiabatic heating correction can be implemented after smoothing if it is necessary. We can use the function ```TCorrect()``` to output the adiabatic heating correction on data by declaring some necessary material contants. Take the conventional steel as the example, the heat capacity constant and material density are 502.416 J/(kJ\*K) and 7.8 g\*cm^(-3). The corrected data of flow strain ranged from 0 to 0.9 with 0.02 increase in each step would be:
```{r fig.show='hide'}
TCorrect_data <- TCorrect(TPMdata, 2, 3, 0.9, 7.8, 502.416, seq(0, 0.9, 0.02))
SSplots(TCorrect_data, 2, mfrow=c(2, 2))
```

![](figs/Img4.png)
The 2nd and 3rd argument in ```TCorrect()``` are integers to specify the layer for temperatures and strain rates.
After temperature correction, it is noted that flow stress increase significantly in low temperature, high strain rate, the two conditions which is experientially corresponding to our common sense that working hardening effect will be even obvious.
## Extraction based on given strain
In previous content, we understand the column name structure of the ```TPMdata``` dataset. Therefore the two layers for temperature and strain rate will be 2 and 3 respectively. If we want the strain rate-temperature table in condition of 0.7 flow strain, by executing the following codes the result can be returned automatically:
```{r}
epstable <- epsExtract(TCorrect_data, eps = 0.7, lyT = 2, lySR = 3)
epstable
```
Additionally, for correct exporting, the number of levels for numeric variables must be 2, for 'Strain' and 'Stress' respectively. In most cases, the package has a internal function to detect the locations for 'Strain' and 'Stress'. Nevertheless, people might have different nomenclature for 'Strain' and 'Stress' in their summary tables. If so, the argument ```manual``` will be helpful to manually assign the locations for 'Strain' and 'Stress', to ensure the correct output (see help documentation for the function ```epsExtract```).
## Automatic calculation
On the basis of dynamic materials modeling (DMM), constructive function and all material constants can be calculated from a certain strain rate-temperature table. The function ```DMMprocess``` includes all calculation steps for DMM processing. Call it on our previous result (strain rate-temperature table through specified value of strain), the complete output can be observed as following:
```{r}
DMM <- DMMprocess(epstable)
DMM
```
If the constructive function is also the thing we concerned, set the argument ```ConsFunc``` in ```DMMprocess``` as ```TRUE```:
```{r}
DMM <- DMMprocess(epstable, ConsFunc = TRUE)
```
Additionally, if the argument ```InteractMode``` is TRUE, all computation process and corresponding fitting figures can be output step by step. There shows some results in following figures:
![](figs/Img5.png)
![](figs/Img6.png)
![](figs/Img7.png)
![](figs/Img8.png)
![](figs/Img9.png)
![](figs/Img10.png)
![](figs/Img11.png)
All workflow control will be prompted in the console, something like:
![](figs/Img12.png)
## Preparation for visualization
As we can see, the "etatable" and "xitable" in tablelist are two constitutive parts for building processing-map. The former is for power dissipation efficiency factor eta, and the later is for rheological stability coefficient xi. However, since the values in both are discrete, regression process for these tables is necessary.
Support vector regression ([SVR](https://link.springer.com/article/10.1023/B:STCO.0000035301.49549.88)) is suggested in this package. The function ```SVRModel``` will return a regression result which can be utilized by following functions for plots.
The following demonstration save the returned result into the vairable "PLTbd", for the meaning of "Plots builder".
```{r}
PLTbd <- SVRModel(DMM)
```
## 2D processing map visualization
Function ```TPM2dplt``` can generate a thermal processing map from regression result easily. Following codes demonstrates the processing map from "PLTbd" with default settings:
```{r, fig.show='hold', fig.height=4, fig.width=6}
TPM2dplt(PLTbd)
```
In this processing map plot, customarily the power dissipation efficiency factor eta is denoted by contour with gradient blue, while the rheological stability coefficient xi is represented by a gradient colours from blue (low) to red (high). Annotation in top-left show the strain condition for current processing map.
Locations for annotation, gradient colors for rheological stability coefficient xi is customizable in ```TPM2dplt``` function. Refer the documentation for details.
## 3D processing map visualization
Function ```TPM3dplt``` can build a thermal processing results as similar as ```TPM2dplt``` did. The difference is, eta and xi will be separately plotted.
By running the following code, we can easily obtain the results as shown in the next figure.
```{r}
TPM3dplt(PLTbd)
```
![](figs/Img13.png)
These two 3d surfaces are generated through the rgl package, therefore it will be very convenient to utilize 3d rotation on our plots for further analysis in details.
Especially, the xi plots is coupled with a specific plane, z=0, in order to make divisions for the stable and unstable regions (doesn't included in demo figure). If the prediction for xi contained certain negative values, this plan will be visible in 3d surface plot.