Thermal expansion coefficient
*****************************

ReaxFF Polymers Materials Science Simulated annealing Strain Thermal
expansion coefficient[image]

In this ReaxFF tutorial thermal expansion coefficients, CTE, are
calculated from a polymer's strain vs. temperature dependence.

The systems and workflows presented here are originally described in
the publication **Effect of chemical structure on thermo-mechanical
properties of epoxy polymers: Comparison of accelerated ReaxFF
simulations and experiments**, Polymer 159, 354-368 (2018).

The tutorial consists of the following steps:

* Importing the polymer structure

* Annealing the polymer

* Extracting strain vs. temperature profiles

* Calculation of the thermal expansion coefficient

Note:

  The calculations are *computationally demanding*. For optimal
  performance, a parallel execution on a compute cluster is advised.
  This can best be done by using the remote job management of the GUI


Importing the polymer structure
===============================

The tutorial will use a cross-linked epoxy polymer generated with the
bond boost method (see also bond boost tutorial ).

Begin by downloading the polymer and import into AMSinput:

   Click "here" to download the .xyz file **detda_epoxy.xyz**
   Import the coordinates in AMSinput: **File →  Import Coordinates**
 [image]


Annealing the polymer
=====================

For the calculation of the thermal expansion coefficient we determine
the volume change caused by increasing of the temperature. The data
points will be sampled within the temperature range of 300-340K.
Before the actual sampling, a short simulated annealing sequence was
found produce less noisy results. However, if the sampling intervals
are chosen long enough the simulated annealing can also be left out.

Start by choosing the MD settings:

   **1.** Select [image: ReaxFFPanel][image]
   **2.** Choose the force field **CHON2017_weak.ff**
   **3.** Click on [image: MoreBtn][image] next to **Task: Molecular Dynamics** to go to the MD details
   **4.** Set the **Number of steps** to "650000"
   **5.** Set the **Sample frequency** to "2000"
 [image][image]

To allow the unit cell to shrink or expand we further add a barostat:

   **1.** Click on [image: MoreBtn][image] next to **Barostat**
   **2.** Select **Berendsen** from the **Barostat** dropdown menu.
   **3.** Set the desired **Pressure** to "1.0" **atm**.
   **4.** Set the **Damping constant** to "500" fs.
 [image]

The annealing is defined in the thermostat panel

   **1.** Click on [image: MoreBtn][image] next to **MD Main options**
   **2.** Click on [image: MoreBtn][image] next to **Thermostat**
   **3.** Select **Thermostat → Berendsen**
   **4.** Set the **damping constant** to "100 fs"
 [image]

We will now define the following annealing temperature profile:

* increase the temperature from 298.15 to 600K over a duration of
  100000 steps

* followed by a cooling down back to 350K over a duration of 200000

* then we do a stepwise cool down to 300K again

   **1.** Enter "298.15 600 350 350 340 340 330 330 320 320 310 310 300 300" into the **Temperature(s)** field
   **2.** Enter "100000 200000 50000 10000 50000 10000 50000 10000 50000 10000 50000 10000 50000" into the **Duration(s)** field
 [image]

We are now ready to start the calculation

   **1.** **File → Save As...** and give it an appropriate name (e.g. "CTE")
   **2.** **File → Run**


Extracting strain vs. temperature profiles
==========================================

To extract the strain and temperatures from the trajectory for post-
processing we make use of a Python script.

   **1.** Download the script "strain.py" from "here"
   **2.** Place it in the same folder as your CTE.ams inputfile

Next, you need to open the command line to execute the script with the
AMS Python interpreter.

Tip:

  Windows and Mac users should open a pre-configured command-line from
  the GUI

In the command line, the script can be executed as follows:

   $AMSBIN/amspython strain.py CTE.results 300000

   # T[K]   a[Å]   b[Å]   c[Å]    V[Å**3]
    351.3 82.257 72.805 90.121 539708.532
    348.3 82.317 72.695 89.962 538332.062
    346.4 82.459 72.740 89.672 537856.479
    352.4 82.487 72.661 89.838 538452.127
    350.8 82.321 72.661 89.793 537097.158
    346.0 82.342 72.741 89.780 537745.440
    351.0 82.417 72.913 89.858 539987.153
    ...

but you can easily write them to file called **strain.out** instead:

   $AMSBIN/amspython strain.py CTE.results 300000 > strain.out


Calculation of the thermal expansion coefficient
================================================

The strain can be plotted with any graph plotting software, e.g.
gnuplot or any spreadsheet software. Import the results file into the
software of choice and plot two column #5 (volume) against column #1
(temperature) and

[image]

Perform a regression analysis and determine the slope. Calculate the
volumetric thermal expansion coefficient (α_V) from the volume of the
first data point (V_0) and the slope of the linear fit curve:

   \alpha_V = \frac{1}{V_0} \frac{\partial V}{\partial T}_p =
   \frac{1}{538628.483} \cdot 208.059 = 386 \cdot 10^{-6}
   [1/C^{\circ}]

We can then use that the coefficient of linear thermal expansion CTE
(α_l) is approximately

   \alpha _l \approx \alpha _V / 3

which gives α_l = 129 · 10^-6[1/°C].  The simulated expansion
coefficient is about two times larger than the experimental expansion
coefficient of 65 · 10^-6[1/°C].

The original publication **Effect of chemical structure on thermo-
mechanical properties of epoxy polymers: Comparison of accelerated
ReaxFF simulations and experiments**, Polymer 159, 354-368 (2018) also
found good agreement between the calculated and experimental value.
