LP2R 1.0
Linear Polydisperse Polymer Rheology
Linear rheology of linear polydisperse polymers

        © Chinmay Das and Daniel J. Read
            28/09/2022
            GNU GPLv3 (or at your option any later version)


Introduction

The code in this depository accompanies our paper "A tube model for predicting the stress and dielectric relaxations of polydisperse linear polymers" submitted to Journal of Rheology (2022). This implements modern ideas about how constraint release and tube escape modes in linear polymer melts affect each other in a numerical code to predict linear respose in arbitrarily polydisperse linear polymers. The information about the polymers can be supplied as moments of a distribution, or as data files containing gel permeation chromatography measurements (GPC), or a set of discrete molar masses and associated weight fractions. Arbitrarily complex blends can be designed by adding several such components. Besides the mechanical relaxation moduli, the code also can calculate dielectric relaxation for type-A polymers (polymers with monomer dipole moments aligned along the chain backbone). With appropriate instructions, the code outputs evolutions of model constructs like different dynamic tube diameters or how a specific molar mass chain will undergo the terminal relaxation.

The code is available for download from github. On UNIX/Linux systems, you can use make command from LP2R/src/obj subdirectory to create the executable. A precompiled windows executable is available from google drive. A snapshot of the code at the time of submission of this paper including the submitted preprint is available at zenodo.

The rest of this page documents the command line options, input file syntax, and output file formats.

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Usage

LP2R [-L] [-d] [-i inputfile] [-r resourcefile] [-h] [--version]

Optional command line arguments:

  • -L : Output debugging and extra information in a file named LP2Rlog.txt

  • -i inputfile : material and output frequency information supplied via a named file. Default inputfile name is inp.dat

  • -r resourcefile : Presumably chemistry independent parameters, and output options can be set via a resource file. Default resourcefile name is LP2R.rc

  • -h : help (this usage information)

  • - -version : version information

 

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Input files

The code expects input to be supplied from plain text files. The percentage (%) character is used as a comment character in the files. If the first non-space character in a line is %, the entire line is ignored. Similarly a % sign can be used beyond the intended input in the same line to add comments. The files are read one line at a time - so, if multiple entries are supposed to be in the same line, a line break between entries will lead to input error. The input file itself may contain names of some other file containing detailed molecular weight information. In such cases, names containing space or percentage sign will not be processed correctly. Avoid names like "Molecular Weight.txt" or "PI100k(2%)_PI50k(98%).txt": The first name will be truncated to "Molecular" and the second will be truncated to "PI100k(2" and the code will fail to find the intended data file.

Two different files are used for input: The first should supply the material parameters and the frequency range over which relaxation spectra is desired. The default file name for this file is inp.dat . A different file can be supplied with the command line option -i filename . Details of the information required in this file are described in Material input file .

The second optional file supplies model parameters that are thought to be insensitive to the chemistry, and can be used to choose the results that the code should generate. The default file name for this resource file is LP2R.rc . A different file can be supplied with the command line option -r filename . Details of the information required in this file are described in Resource file .

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Material input file

The information about the polymers is supplied via a plain-text file called inp.dat (a different file can be used by using the command line option -i filename ). The input can be imagined as having three distinct parts: the first part gives the frequency range and discretization for the relaxation spectra output, the second part inputs the material parameters (chemistry dependent but architucture independent parameters), and finally the third part inputs the information about the molar mass distribution(s) of the molecules of interest.

The first valid line (the code will ignore comment lines or empty lines) needs the minimum angular frequency (ωmin), the maximum angular frequency (ωmax) and the ratio of successive angular frequencies (ωratio) for the desired relaxation spectra output.

The second valid line requires the Kuhn molar mass (MKuhn) in g/mole, entanglement molar mass (Me) in g/mole, plateau modulus (GN0) in Pa, and the entanglement time (τe) in seconds. The third line gives the glassy modulus (G) in Pa, glassy relaxation time (τg) in seconds and the exponent for the stretched exponential glassy relaxation (βg).

The fourth line contains a single integer specifying the number of components (ncomp) forming the blend. (In the special case of single component polymer, this number is one). A component is understood to be a set of molecules having a easily described distribution. For each of these components, additional two input-lines are given to characterize the components. The first of thse lines contain an integer parameter (ptype) and the weight fraction of this component (wcomp) in the blend. If ptype=0, the component is assumed to be represented by a log-normal distribution. The following line in that case needs number of discrete molar masses to be used to represent the distribution (npoly), the weight-averaged molar mass (MW) in g/mole and the polydispersity index (PDI). Instead if, ptype=1, the molar mass distribution is assumed to exist as a GPC measurement and the second line of component specification in that case gives the file name of the GPC data. The GPC file should have usual {M, dW/dlog10M } values with the molar mass in g/mole. Finally, ptype=2, assumes that the molar mass is specified by a set of weights associated with discrete sets of molar mass. Again, the second line of component specification is a file name and the file should contain two columns: molar mass in g/mole and the associated weights {Mi, wi }.

The following is an input file for 1,4-PI at 25°C for a 1131000 g/mole polymer assumed to be described by a log-normal distribution:

1.0e-4 1.0e6 1.2     %     ωmin, ωmax, ωratio
113.0 4350.0 476000.0 1.30e-5     %     MKuhn, Me, GN0, τe
1.0e9 7.0e-11 0.370     %     G, τg, βg
1     %     Single component: ncomp=1
0 1.0     %     ptype=0 (log-normal distribution), wcomp=1
50 1131000 1.05     %     npoly=50, MW, PDI

Blending 30-wt% 226kg/mole polymer would require an input file like the following

1.0e-4 1.0e6 1.2     %     ωmin, ωmax, ωratio
113.0 4350.0 476000.0 1.30e-5     %     MKuhn, Me, GN0, τe
1.0e9 7.0e-11 0.370     %     G, τg, βg
2     %     Two components :     ncomp=2
0 0.70     %     First component:     ptype=0 (log-normal distribution), wcomp=0.70
50 1131000 1.05     %     npoly=50, MW, PDI
0 0.30     %     Second component:     ptype=0 (log-normal distribution), wcomp=0.30
50 225900 1.03     %     npoly=50, MW, PDI

Some more examples of input files can be found in the examples subdirectory in the code distribution.

Some pointers about the input:

•  A strictly monodisperse polymer can be specified by choosing a log-normal distribution (ptype=0) and PDI=1, or npoly=1 in the specification of the distribution.

•  If the glassy parameters are not be available for the chemistry of interest, a good starting point may be G=1.0e9, τg=1.0e5 × τe, and βg=0.35.

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Resource file

The code searches for a file named LP2R.rc in the current directory to input additional parameters besides the material parameters. A different file can be specified with command line option -r filename . In the absence of this file, the code will continue with default parameters and options detailed below. Similarly any entry in the file that is not understood by the code is silenty ignored. If you use the command line option -L to generate a log file, such unresolved entries will be written in the log file as warning messages. Each entry in the resource file is a property-value pair separated by a equal (=) sign. Each line can contain only one such property-value pair. Unlike the material input file, the ordering of the different entries in the file does not have any consequence.

A sample file with all options set to default values is available in the examples/01rcdefault subdirectory.

% Model parameters

Alpha=1.0       %     Dilution exponent α
t_CR_START=1.0       %     Constraint release starts after this time (in units of τe)
deltaCR=0.30       %     Fractional drop in φST for τCR » τe CR)
B_zeta=2.0       %     Proportionality constant relating friction coefficient to supertube fraction (Bζ)
A_eq=2.0       %     Proportionality constant connecting "effective equilibrium time" and time to locally equiilbiate in a certain supertube (Aeq)
B_eq=10.0       %     Constant delaying equilibrium for fast CR events (Beq)
ret_pref=0.189       %     Constant in arm retraction formula (Ca,∞)
ret_pref_0=0.020       %     Short-time prefactor for CLF (Ca,0)
ret_switch_exponent=0.42       %     Exponent εa determining how steeply CLF switches to long-time strength
Rept_Switch_Factor=1.664       %     Constant deciding transition from CLF to reptation (KR)
Rouse_Switch_Factor=1.5       %     Minimum number of bare entanglements to be considered entangled (ZU)
Disentanglement_Switch=1.0       %     Number of surviving entanglements in the supertube below which chains relax by "disentanglement"

% Time discretization

Start_time=1.0e-3       %     Start of integration (in units of τe)
Time_ratio=1.02       %     Ratio of successive discrete times

% Options for results

CalcDielectric=no       %     "yes" asks for dielectric relaxation spectra.
OutTermRelaxPathways=no       %     "yes" outputs individual chain relaxation modes.
OutPhiPhiST=no       %     "yes" outputs evolution of different tube diameters
Output_G_of_t=no       %     "yes" asks for time relaxation of modulus

% Control of output

OutputFormat=Default       %     Other options are "Text", "CSV" and "RepTate"
CSVdelimiter=,       %     For OutputFormat=CSV you can specify a different delimiter than usual comma (,)
Add_header=yes       %     "no" does not add header line in the output files
label=      %     You can specify a string as a label (default is an empty string). The label will be used in output file names.
chem=      %     You can specify a string as chemistry (default is an empty string). If specifed and OutputFormat=RepTate , this will be added in the output headers.
origin=      %     You can specify a string as origin (default is an empty string). If specifed and OutputFormat=RepTate , this will be added in the output headers.
Temp=0.0      %     You can specify the temperature (in degree centigrades). If OutputFormat=RepTate , this will be added in the output headers.
Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Output files

By default the code only outputs the mechanical relaxation spectra G′(ω) and G″ (ω). In addition, you can ask it to output the dielectric relaxation spectra ε′(ω) and ε″(ω) (assuming that the dipoles are aligned along the chain backbone), time domain mechanical relaxation G(t), evolution of different relevant tube constraints after an instantaneous small shear deformation, and assignment of the terminal relaxation pathway for each chain in the ensemble. These additional outputs are initiated by setting the appropriate flags in the resource file to yes . The different outputs are directed to different files with the contents somewhat dependent on the OutputFormat variable set from the resource file. If the label option is set in the resource file, the files include the label as part of their names.

If OutputFormat=Default, the output file names have .dat extensions. Unless the option Add_header is not set to no in the resource file (the default behaviour is Add_header=yes ), the first line will be a header line starting with a hash (#) character (default comment option for many UNIX plotting softwares). The choice OutputFormat=Text behaves similarly as the OutputFormat=Default option, except that the filenames end with .txt extensions and the header line, if not switched off with Add_header=no in the resource file, start without a # character. OutputFormat=CSV behaves like OutputFormat=Text except the entries are separated by a comma (,) (or, any other character chosen via CSVdelimiter in the resource file) and the file names end with .csv extensions. OutputFormat=RepTate uses RepTate specific extensions and data formats for the relaxation spectra and the time relaxation function. For other outputs, it uses the same outputs as the OutputFormat=Text choice. The headers for the relaxation spectra and the time relaxation function in this case contain temperature that can be set via the variable Temp in the resource file. In absence of a supplied value, a default temperature of 0°C will be added to the headers. Additional options chem, label, and origin can be set via the resource file and they will be added in the RepTate format output headers.

The subsections below document the different outputs separately.

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Relaxation spectra outputs

By default, the code always outputs G′(ω) and G″(ω) in an range of angular frequencies ωmin and ω max with the ratio of subsequent frequencies being ω ratio. These frequency information is set in the first line of the material input file. In addition, dielectric relaxation output is given if either -d option is used at the command line or there is an entry CalcDielectric=yes in the resource file.

Except for OutputFormat=RepTate, if the varialbe label is not set, the releaxation spectra output is written in a file RelSpec.extn with extn is either dat , txt, or csv depending on the setting for the OutputFormat. If the label variable is set, for example label=PS112k , the file name instead will be set to RS_PS112k.extn with appropriate choices of extn. The entries in the file are 1. frequency ω, 2. dynamic storage modulus G′(ω), 3. dynamic loss modulus G″(ω), 4. dynamic viscosity η″ (ω), 5. dielectric storage modulus ε′(ω), 6. dielectric loss modulus ε″(ω). The dielectric information (columns 5 and 6) are only present if appropriate instruction is given either via the command line flag or via the resource file.

If OutputFormat=RepTate is chosen, the mechanical output is written in MechSpec.tts in the absence of label variable in the resource file, and, if asked for, dielectric response in file DiSpec.dls . If label is set, for example as PS112k , the file names will be PS112k.tts and PS112k.dls respectively. The contents of the mechanical relaxation file are the 1. frequency ω, 2. dynamic storage modulus G′(ω), 3. dynamic loss modulus G″(ω) and those of the dielectric file are the 1. frequency ω, 2. dielectric storage modulus ε′(ω), 3. dielectric loss modulus ε″(ω).

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Time relaxation

Time domain decay of modulus after a step strain is calculated if Output_G_of_t=yes option is set via the resource file (the default is Output_G_of_t=no). As with relaxation spectra, file name extensions for OutputFormat=Default, Text and CSV are respectively .dat, .txt, and .csv. In the absence of label in the resource file , the data is written in a file named MechRel with appropriate file extension. The data are set of time t, modulus G(t), tube survival probability μ(t), and the constraint release contribution R(t). With OutputFormat=RepTate, time t and modulus G(t) is written in file MechRel.gt. With the label variable set, for example as label=PS100k, the file name for OutputFormat=RepTate choice will be PS100k.gt. With the same label, OutputFormat=Default will use a file MR_PS100k.dat . Other choices will change the file extension appropriately.

The range of time for the time relaxation output is chosen to be between 10-4 τe and 104 τd, with τd being the longest relaxation time. These times can only be changed by editing src/Rheology/Calc_goft.cpp in the source code.

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Tube diameters

If OutPhiPhiST=yes option is set via the resource file (the default is OutPhiPhiST=no), different dynamic tube diameters ( aX) are output in terms of associated fractions of unrelaxed tube constraints ( φX ): aX = a0 φX-α/2 with a0 being the equilibrium tube diameter or the bare tube diameter. The output is written in a file named STube with appropriate extension in the absence of the label string. If the label variable is set, for example as label=PI645k, the file name will be STube_PI645k with appropriate extension. The output contains 1. time after step deformation t, 2. fraction of unrelaxed tube contraints φ(t), 3. supertube fraction φST(t), 4. equilibriated constraint fraction φeq(t), 5. constraint fraction allowing reptation φrept(t), and 6. enhancement of reptation due to contour length fluctuation along fat tube Ψmin(t).

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Terminal relaxation pathways

If the variable OutTermRelaxPathways is set to yes via the resource file, information about terminal relaxation pathways of each chain is written in an output file named TermRelax.dat (or .txt, or .csv) in the absence of the label variable. With label set to some string, that string is appended to TermR_ along with an appropriate extension.

The output contains 1. Index i (index of the polymer in the ensemble), 2. Weight fraction wi, 3. Molar mass Mi, 4. Relaxation time τrelax , 5. Integer code for relaxation pathway, 6. Relevant constraint fraction, 7. Speed up factor from fat tube CLF.

The integer code in the fifth column is set to 0 for unentangled chains. For those chains, τrelax is set to the Rouse time of the chains τR . The entries in both the sixth and seventh columns in this case are 1 signifying irrelevance of tube dilation for the relaxation of these chains.

When the chain of concern relaxes by reptation, the fifth column is set to 1 and the  τrelax is set to the reptation time τd . The sixth column in this case gives $φT$ associated with the optimal tube diameter for reptation at the time the chain switches from relaxing by contour length fluctuation to reptation. The seventh column in this case is the speed up due to fat tube CLF Ψmin, evaluated at the time the chain commits to relax remaining stress via reptation.

When a chain effectively becomes unentangled in the supertube, the remaining stress associated with the chain relaxes with this time scale via disentanglement. In such cases, the fifth column is set to 2 and the  τrelax is set to the time at which the chain first becomes disentangled. The sixth column in this case report φST and the seventh column reports the speed up factor Ψmin evaluated at the time of disentanglement.

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file  

Log file

Command line argument -L directs the code to write information in a file named LP2Rlog.txt . If something goes wrong during processing the input files, the log file can be helpful in resolving the place where the code failed. The log file also reports molar mass moments (MN, MW, and MZ) and the zero-shear viscosity.

Go to Table of Contents
Introduction     ⇒ Usage     ⇒ Input files   • Material input file   Resource file     ⇒ Output files   • Relaxation spectra   • Time relaxation   • Tube diameters   • Relaxation pathways   • Relaxation pathways   • Log file