Theories

TheoryArrhenius

Module TheoryArrhenius

class RepTate.theories.TheoryArrhenius.BaseTheoryArrhenius(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

Arrhenius function

citations = []
single_file = True
thname = 'ArrheniusTheory'
class RepTate.theories.TheoryArrhenius.CLTheoryArrhenius(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryArrhenius.BaseTheoryArrhenius, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryArrhenius.GUITheoryArrhenius(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryArrhenius.BaseTheoryArrhenius, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryArrhenius.TheoryArrhenius(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Arrhenius Equation

  • Function
    \[a_T = \exp\left(\frac{E_a}{R} \left(\frac{1}{T} - \frac{1}{T_{ref}}\right) \right)\]
  • Parameters
    • \(E_a\): Activation Energy

    • \(T_{ref}\): Reference Temperature for the shift factors

    • \(R\): Gas Constant

citations = []
description = 'Arrhenius Theory'
thname = 'ArrheniusTheory'

TheoryBasic

Module TheoryBasic

Module that defines the basic theories that should be available for all Applications.

class RepTate.theories.TheoryBasic.BaseTheoryAlgebraicExpression(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

algebraicexpression(f=None)[source]

Actual function.

  • Function
    \[y(x) = f({A_i}, x)\]
do_error(line)[source]
html_help_file = 'http://reptate.readthedocs.io/manual/All_Theories/basic_theories.html#algebraic-expression'
set_param_value(name, value)[source]

Change a parameter value, in particular n

single_file = False
thname = 'Algebraic Expression'
class RepTate.theories.TheoryBasic.BaseTheoryExponential(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

exponential(f=None)[source]

Function \(y(x) = a \exp(-x/T)\)

html_help_file = 'http://reptate.readthedocs.io/manual/All_Theories/basic_theories.html#exponential'
single_file = True
thname = 'Exponential'
class RepTate.theories.TheoryBasic.BaseTheoryPolynomial(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

html_help_file = 'http://reptate.readthedocs.io/manual/All_Theories/basic_theories.html#polynomial'
polynomial(f=None)[source]

Actual polynomial function.

\[y(x) = \sum_{i=0}^n A_i x^i\]
set_param_value(name, value)[source]

Change a parameter value, in particular n

single_file = True
thname = 'Polynomial'
class RepTate.theories.TheoryBasic.BaseTheoryPowerLaw(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

html_help_file = 'http://reptate.readthedocs.io/manual/All_Theories/basic_theories.html#power-law'
powerlaw(f=None)[source]

Actual function

  • Function
    \[y(x) = a x^b\]
single_file = True
thname = 'Power Law'
class RepTate.theories.TheoryBasic.BaseTheoryTwoExponentials(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

html_help_file = 'http://reptate.readthedocs.io/manual/All_Theories/basic_theories.html#double-exponential'
single_file = True
thname = 'Two Exponentials'
two_exponentials(f=None)[source]

Actual function

  • Function
    \[y(x) = a_1 \exp(x/T_1) + a_2 \exp(-x/T_2)\]
class RepTate.theories.TheoryBasic.CLTheoryAlgebraicExpression(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryAlgebraicExpression, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryBasic.CLTheoryExponential(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryExponential, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryBasic.CLTheoryPolynomial(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryPolynomial, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryBasic.CLTheoryPowerLaw(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryPowerLaw, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryBasic.CLTheoryTwoExponentials(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryTwoExponentials, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryBasic.GUITheoryAlgebraicExpression(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryAlgebraicExpression, RepTate.gui.QTheory.QTheory

GUI Version

handle_expressionChanged(item)[source]

Handle a change in the algebraic expression

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘n’

class RepTate.theories.TheoryBasic.GUITheoryExponential(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryExponential, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryBasic.GUITheoryPolynomial(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryPolynomial, RepTate.gui.QTheory.QTheory

GUI Version

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmode’

class RepTate.theories.TheoryBasic.GUITheoryPowerLaw(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryPowerLaw, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryBasic.GUITheoryTwoExponentials(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryBasic.BaseTheoryTwoExponentials, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryBasic.TheoryAlgebraicExpression(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a user algebraic expression with \(n\) parameters.

The expression can contain any of the following mathematical functions: sin, cos, tan, arccos, arcsin, arctan, arctan2, deg2rad, rad2deg, sinh, cosh, tanh, arcsinh, arccosh, arctanh, around, round, rint, floor, ceil,trunc, exp, log, log10, fabs, mod, e, pi, power, sqrt

It is the responsability of the user to input functions that make mathematical sense.

  • Function
    \[y(x) = f({A_i}, x, F_{params})\]
  • Parameters
    • \(n\): number of parameters.

    • \(A_i\): coefficeints of the algebraic expression

description = 'Fit an algebraic expression with n parameters'
thname = 'Algebraic Expression'
class RepTate.theories.TheoryBasic.TheoryExponential(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a single exponential decay to the data

  • Function
    \[y(x) = a \exp(-x/T)\]
  • Parameters
    • \(a\): prefactor.

    • \(T\): exponential “time” constant.

description = 'Fit Exponential'
thname = 'Exponential'
class RepTate.theories.TheoryBasic.TheoryPolynomial(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a polynomial of degree \(n\) to the data

  • Function
    \[y(x) = \sum_{i=0}^n A_i x^i\]
  • Parameters
    • \(n\): degree of the polynomial function.

    • \(A_i\): polynomial coefficeints.

description = 'Fit a polynomial of degree n'
thname = 'Polynomial'
class RepTate.theories.TheoryBasic.TheoryPowerLaw(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a power law to the data

  • Function
    \[y(x) = a x^b\]
  • Parameters
    • \(a\): prefactor.

    • \(b\): exponent.

description = 'Fit Power Law'
thname = 'Power Law'
class RepTate.theories.TheoryBasic.TheoryTwoExponentials(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit two single exponential decay to the data

  • Function
    \[y(x) = a_1 \exp(x/T_1) + a_2 \exp(-x/T_2)\]
  • Parameters
    • \(a_1\), \(a_2\): prefactors.

    • \(T_1\), \(T_2\): exponential “time” constants.

description = 'Fit two exponentials'
thname = 'Two Exponentials'

TheoryBobLVE

Module TheoryBobLVE

BobLVE file calculates the LVE of a given polymer configuration by Chinmay Das et al.

class RepTate.theories.TheoryBobLVE.BaseTheoryBobLVE(name='ThBobLVE', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

Create polymer configuration file and calculate distribution characteristics

citations = ['Das C. et al., J. Rheol. 2006, 50, 207-234']
do_error(line='')[source]

This theory calculate the error by interpolating the theory solution

do_fit(line='')[source]
doi = ['http://dx.doi.org/10.1122/1.2167487']
html_help_file = 'https://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#bob-lve'
request_stop_computations()[source]

Called when user wants to terminate the current computation

signal_param_dialog
single_file = True
thname = 'BOB'
class RepTate.theories.TheoryBobLVE.CLTheoryBobLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryBobLVE.BaseTheoryBobLVE, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryBobLVE.GUITheoryBobLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryBobLVE.BaseTheoryBobLVE, RepTate.gui.QTheory.QTheory

GUI Version

create_bob_input_file(nlines, inpf)[source]

Create a file containing the input BoB parameters from the form dialog

get_file_name()[source]

Open a dialog to choose a file containing the polymer configuration for BoB

handle_btn_prio_senio(checked)[source]

Change do_priority_seniority

handle_help_button()[source]

When Help button of dialog box is clicked, show BoB manual (pdf)

handle_pb_ok()[source]

Define the OK button role. If something is wrong, keep the dialog open

is_ascii(s)[source]

Check if s contains non ASCII characters

launch_param_dialog()[source]

Show a dialog to get the filename of the polymer configuration. This function is called via a pyqtSignal for multithread compatibility

num_file_lines(fname)[source]

Return the number of lines in the file fname

setup_dialog()[source]

Load the form dialog from bob_LVE.py

class RepTate.theories.TheoryBobLVE.TheoryBobLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Analyse the relaxation of polymers read from a polymer configuration file using BoB v2.5 (Chinmay Das and Daniel Read). These files can be generated from the React application in RepTate.

The original documentation of BoB can be found here: https://sourceforge.net/projects/bob-rheology/files/bob-rheology/bob2.3/bob2.3.pdf/download.

citations = ['Das C. et al., J. Rheol. 2006, 50, 207-234']
description = 'Branch-On-Branch rheology'
doi = ['http://dx.doi.org/10.1122/1.2167487']
thname = 'BOB'

TheoryBobNLVE

Module TheoryBobNLVE

BobLVE file calculates the LVE of a given polymer configuration by Chinmay Das et al.

class RepTate.theories.TheoryBobNLVE.BaseTheoryBobNLVE(name='ThBobLVE', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

Create polymer configuration file and calculate distribution characteristics

citations = ['Das C. et al., J. Rheol. 2006, 50, 207-234']
do_error(line='')[source]

This theory does not calculate the error

do_fit(line='')[source]
doi = ['http://dx.doi.org/10.1122/1.2167487']
html_help_file = 'https://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#bob-nlve'
init_flow_mode()[source]

Find if data files are shear or extension

request_stop_computations()[source]

Called when user wants to terminate the current computation

signal_param_dialog
single_file = False
thname = 'BOB'
class RepTate.theories.TheoryBobNLVE.CLTheoryBobNLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryBobNLVE.BaseTheoryBobNLVE, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryBobNLVE.GUITheoryBobNLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryBobNLVE.BaseTheoryBobNLVE, RepTate.gui.QTheory.QTheory

GUI Version

create_bob_input_file(nlines, inpf)[source]

Create a file containing the input BoB parameters from the form dialog

get_file_name()[source]

Open a dialog to choose a file containing the polymer configuration for BoB

handle_help_button()[source]

When Help button of dialog box is clicked, show BoB manual (pdf)

handle_pb_ok()[source]

Define the OK button role. If something is wrong, keep the dialog open

is_ascii(s)[source]

Check if s contains non ASCII characters

launch_param_dialog()[source]

Show a dialog to get the filename of the polymer configuration. This function is called via a pyqtSignal for multithread compatibility

num_file_lines(fname)[source]

Return the number of lines in the file fname

select_extensional_flow()[source]
select_shear_flow()[source]
setup_dialog()[source]

Load the form dialog from bob_LVE.py

class RepTate.theories.TheoryBobNLVE.TheoryBobNLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Predict the nonlinear rheology of “branch-on-branch” polymers, read from a polymer configuration file, using BoB v2.5 (Chinmay Das and Daniel Read). Polymer configuration files can be generated from the React application in RepTate.

The original documentation of BoB can be found here: https://sourceforge.net/projects/bob-rheology/files/bob-rheology/bob2.3/bob2.3.pdf/download.

citations = ['Das C. et al., J. Rheol. 2006, 50, 207-234']
description = 'Branch-On-Branch rheology'
doi = ['http://dx.doi.org/10.1122/1.2167487']
thname = 'BOB'

TheoryCarreauYasuda

Module TheoryCarreauYasuda

Carreau-Yasuda equation for the complex viscosity

class RepTate.theories.TheoryCarreauYasuda.BaseTheoryCarreauYasuda(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

citations = []
doi = []
function_CarreauYasuda(f=None)[source]

Carreau-Yasuda equation for the complex viscosity

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#carreau-yasuda-equation'
single_file = False
thname = 'Carreau-Yasuda'
class RepTate.theories.TheoryCarreauYasuda.CLTheoryCarreauYasuda(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryCarreauYasuda.BaseTheoryCarreauYasuda, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryCarreauYasuda.GUITheoryCarreauYasuda(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryCarreauYasuda.BaseTheoryCarreauYasuda, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryCarreauYasuda.TheoryCarreauYasuda(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit the complex viscosity with the Carreau-Yasuda equation.

  • Function
    \[\eta^*(\omega) = \eta_\infty + (\eta_0-\eta_\infty)\left( 1 + (\lambda\omega)^a \right)^{(n-1)/a}\]
  • Parameters
    • \(\eta_0\): Viscosity at zero shear rate.

    • \(\eta_\infty\): Viscosity at infinite shear rate.

    • \(\lambda\): Relaxation time.

    • \(n\): Power law index.

    • \(a\): Dimensionless parameter (2 in most cases)

citations = []
description = 'Carreau-Yasuda equation'
doi = []
thname = 'Carreau-Yasuda'

TheoryCreatePolyconf

Module TheoryCreatePolyconf

CreatePolyconf file for creating a polymer configuration file using BoB version 2.5 by Chinmay Das et al.

class RepTate.theories.TheoryCreatePolyconf.ArchitectureType(value)[source]

Bases: enum.Enum

Type of polymer architecture and expected parameters as input for BoB

AsymStar = {'def': [2, 'Distr. long', 'Mw long (g/mol)', 'PDI long', '', 'Distr. short', 'Mw short', 'PDI short'], 'descr': 'Star with two arms of equal length and the third arm having a different length. Only 3 arm stars are created', 'name': 'Asymetric Star'}
Cayley3Arm = {'def': [10, 'Num. generation', '', 'Distr. gen0', 'Mw gen0 (g/mol)', 'PDI gen0'], 'descr': 'Cayley trees with 3 arm star inner core', 'name': 'Cayley 3-arm Core'}
Cayley4Arm = {'def': [12, 'Num. generation', '', 'Distr. gen0', 'Mw gen0 (g/mol)', 'PDI gen0'], 'descr': 'Cayley trees with 4 arm star inner core', 'name': 'Cayley 4-arm Core'}
CayleyLin = {'def': [11, 'Num. generation', '', 'Distr. gen0', 'Mw gen0 (g/mol)', 'PDI gen0'], 'descr': 'Cayley trees with linear inner core', 'name': 'Cayley Linear Core'}
CouplComb = {'def': [6, 'Distr. backbone', 'Mw backbone (g/mol)', 'PDI backbone', '', 'Distr. side', 'Mw side (g/mol)', 'PDI side', '', 'Num. arm'], 'descr': 'Attach two "Poisson combs" at some random point along the two backbones', 'name': 'Coupled Comb'}
FixComb = {'def': [5, 'Distr. backbone', 'Mw backbone (g/mol)', 'PDI backbone', '', 'Distr. side', 'Mw side (g/mol)', 'PDI side', '', 'Num. arm'], 'descr': 'Comb having fixed number of side arms connected at random places on the backbone', 'name': 'Fixed Comb'}
FromFile = {'def': [60, 'From file'], 'descr': 'User supplied pre-generated polymers file', 'name': 'From File'}
Gel = {'def': [25, 'Mn (g/mol)', 'Up Branch. proba.'], 'descr': 'Gelation ensemble', 'name': 'Gel'}
H = {'def': [3, 'Distr. side', 'Mw side (g/mol)', 'PDI side', '', 'Distr. cross', 'Mw cross', 'PDI cross'], 'descr': 'H polymers have one cross-bar and four segments attached to the crossbar', 'name': 'H Polymer'}
Linear = {'def': [0, 'Distr.', 'Mw (g/mol)', 'PDI'], 'descr': 'Linear polymer', 'name': 'Linear Polymer'}
MpeNum = {'def': [20, 'Mw (g/mol)', 'Branch/molecule'], 'descr': 'Metallocene catalyzed polyethylene with number-based sampling', 'name': 'MPE num-average'}
MpeWt = {'def': [21, 'Mw (g/mol)', 'Branch/molecule'], 'descr': 'Metallocene catalyzed polyethylene with weight-based sampling', 'name': 'MPE weight-average'}
PoissComb = {'def': [4, 'Distr. backbone', 'Mw backbone (g/mol)', 'PDI backbone', '', 'Distr. side', 'Mw side (g/mol)', 'PDI side', '', 'Num. arm'], 'descr': 'Comb having Poisson distr.ributed number of side arms connected at random places on the backbone', 'name': 'Poisson Comb'}
Proto = {'def': [40, 'Go to "Result" tab'], 'descr': 'Polymer prototype from file (user defined)', 'name': 'Prototype'}
Star = {'def': [1, 'Distr.', 'Mw (g/mol)', 'PDI', '', 'Num. arm'], 'descr': 'Star polymer', 'name': 'Star Polymer'}
class RepTate.theories.TheoryCreatePolyconf.BaseTheoryCreatePolyconf(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

Create polymer configuration file and calculate distribution characteristics

citations = ['Das C. et al, J. Rheol. 2006, 50, 207-234']
do_error(line='')[source]

This theory does not calculate the error

doi = ['http://dx.doi.org/10.1122/1.2167487']
html_help_file = 'https://reptate.readthedocs.io/manual/Applications/React/Theory/BoB_polyconf.html'
request_stop_computations()[source]

Called when user wants to terminate the current computation

signal_param_dialog
single_file = True
thname = 'BOB Architecture'
class RepTate.theories.TheoryCreatePolyconf.CLTheoryCreatePolyconf(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryCreatePolyconf.BaseTheoryCreatePolyconf, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryCreatePolyconf.DistributionType(value)[source]

Bases: enum.Enum

Type of molecular weight distribution

Flory = 4
Gaussian = 1
LogNormal = 2
Monodisperse = 0
Poisson = 3
class RepTate.theories.TheoryCreatePolyconf.GUITheoryCreatePolyconf(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryCreatePolyconf.BaseTheoryCreatePolyconf, RepTate.gui.QTheory.QTheory

GUI Version

add_cb_distribution(name, layout, pol_dict, tip='')[source]

Add a new line to the form layout containing a QLabel widget for the parameter name and a QComboBox to change the parameter value

add_new_qline(name, default_val, layout, pol_dict, validator=<PyQt5.QtGui.QDoubleValidator object>, tip='', editable=True)[source]

Add a new line to the form layout containing a QLabel widget for the parameter name and a QLineEdit to change the parameter value

create_new_tab(pol_id, pol_type)[source]

Return a new widget containing a form with all the parameters specific to the polymer type pol_type

dump_text_to_file(temp_file, text_widget)[source]

NOT USED ANYMORE. Use virtual files only. Dump the content of the “result” tab of the dialog box into a file temp_file

get_file_name()[source]

Launch a dialog for selecting a file where to save the result of the polymer configuration created by BoB. Return a string with a filename

get_file_path()[source]

Select a polyconf file for BoB to read

handle_add_component()[source]

Add a tab with new polymer component in the dialog box

handle_apply_button()[source]

When Apply button of dialog box is clicked, fill the “Result” widget with the data expected by BoB

handle_architecture_type_changed(current_name)[source]

Activate/Desactivate the ‘ngeneration’ widgets specific to the Cayley types. Called when the combobox ‘Architecture’ is changed

handle_btn_prio_senio(checked)[source]

Change do_priority_seniority

handle_close_polymer_tab(index)[source]

Close a tab and delete dictionary entry Called when the close-tab button is clicked

handle_help_button()[source]

When Help button of dialog box is clicked, show BoB manual (pdf)

handle_pb_ok()[source]

Define the OK button role. If something is wrong, keep the dialog open

is_ascii(s)[source]

Check if s contains non ASCII characters

launch_param_dialog()[source]

Show the dialog to set-up number of the polymer components in the mix and all the relevant parameters for each component. This function is called via a pyqtSignal for multithread compatibility

poly_param_text(pol_dict, attr)[source]

Return a string containing the value of the parameter attr or a new line if attr is an empty string

set_extra_lines(pol_type, layout, pol_dict)[source]

Add extra parameter lines related to the polymer architecture pol_type to the form layout

setup_dialog()[source]

Create the dialog to setup the polymer configuration

sum_ratios()[source]

Return the (float) sum of the ratio of all polymer components or 1 if there are none

class RepTate.theories.TheoryCreatePolyconf.TheoryCreatePolyconf(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Create polymer configuration files using BoB v2.5 (Chinmay Das and Daniel Read). The configuration file created with this theory can then be analysed in the BoB LVE theory, in the LVE application of RepTate.

The original documentation of BoB can be found here: https://sourceforge.net/projects/bob-rheology/files/bob-rheology/bob2.3/bob2.3.pdf/download.

  • Parameters
    • M0 : Mass of a Monomer

    • Ne : Number of monomers in an entanglement length

    • Ratio : Ratio weight fraction occupied by component

    • Architecture : Polymer architecture type (e.g. Linear, Star, Comb, etc.)

    • Num. of polymer : Number of polymers to generate of the above architecture type

    • Num. generations : Number of generations (for Cayley architecture type only)

    • Distr. : Molecular weight distribution (e.g. Monodisperse, LogNormal, etc.)

    • Mw : Weight-average molecular weight

    • PDI : Polydispersity index (PDI \(=M_w/M_n\))

citations = ['Das C. et al, J. Rheol. 2006, 50, 207-234']
description = 'Create and Save Polymer Configuration with BOB'
doi = ['http://dx.doi.org/10.1122/1.2167487']
thname = 'BOB Architecture'

TheoryDSMLinear

Module TheoryDSMLinear

class RepTate.theories.TheoryDSMLinear.BaseTheoryDSMLinear(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

Gslfx(crossover_limits, data)[source]

Function to find crossover frequency from limits

Gstar(omega, params, Rouse=False)[source]

Calculates G* using DSM or Rouse parameters

calculate(f=None)[source]

CLUSTERED FIXED SLIP-LINK (CFSM) + ROUSE MODEL FOR LINEAR VISCOELASTICITY

PARAMETERS: > Mc - molecular weight of cluster > Nc - number of clusters > tau_c - time constant to compare CFSM results to experimental data > beta - entanglement activity parameter for input to DSM simulations > NK - number of Kuhn steps for input into DSM simulation > tau_K - time constant to compare DSM results to experimental data

citations = ['Katzarova, M. et al, Rheol Acta 2015, 54(3), 169-183.', 'Andreev, M. et al., J. Rheol. 2014, 58(3), 723-736']
do_error(line)[source]

Report the error of the current theory

Report the error of the current theory on all the files, taking into account the current selected xrange and yrange.

File error is calculated as the mean square of the residual, averaged over all points in the file. Total error is the mean square of the residual, averaged over all points in all files.

doi = ['https://doi.org/10.1007/s00397-015-0836-0', 'https://doi.org/10.1122%2F1.4869252']
find_crossover_limits(data)[source]

Find the lower and upper limits of the crossover frequency

print_DSM_params()[source]

Print out parameters for DSM simulations

set_linear_params(Nc)[source]

Returns fixed parameters for calculating linear chain G* data

single_file = False
solveNc(x, Gx, Mw, rho, R, T)[source]

Function to solve for Nc from frequency crossover data (linear chains only)

supp_prod(tau, alpha, i)[source]

Returns the product operator used in the G* calculation

tandelta(omega, data)[source]

Calculate the interpolated tan(delta)

thname = 'CFSM+Rouse'
class RepTate.theories.TheoryDSMLinear.CLTheoryDSMLinear(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDSMLinear.BaseTheoryDSMLinear, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryDSMLinear.GUITheoryDSMLinear(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDSMLinear.BaseTheoryDSMLinear, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryDSMLinear.TheoryDSMLinear(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Calculate the Discrete Slip Link theory for the linear rheology of linear entangled polymers.

  • Parameters

citations = ['Katzarova, M. et al, Rheol Acta 2015, 54(3), 169-183.', 'Andreev, M. et al., J. Rheol. 2014, 58(3), 723-736']
description = 'Clustered Fixed Slip Link theory for linear entangled polymers'
doi = ['https://doi.org/10.1007/s00397-015-0836-0', 'https://doi.org/10.1122%2F1.4869252']
thname = 'CFSM+Rouse'

TheoryDTDStars

Module TheoryDTDStars

Dynamics Tube Dilution for Stars

class RepTate.theories.TheoryDTDStars.BaseTheoryDTDStarsFreq(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

DTDStarsFreq function

citations = ['Milner S.T. and McLeish T.C.B., Macromolecules 1997, 30, 2159-2166']
doi = ['http://dx.doi.org/10.1021/ma961559f']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#dynamic-dilution-equation-for-stars'
single_file = False
thname = 'DTD Stars'
class RepTate.theories.TheoryDTDStars.BaseTheoryDTDStarsTime(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

DTDStarsTime function

citations = ['Milner S.T. and McLeish T.C.B., Macromolecules 1997, 30, 2159-2166']
doi = ['http://dx.doi.org/10.1021/ma961559f']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Gt/Theory/theory.html#dtd-stars-time'
single_file = False
thname = 'DTD Stars'
class RepTate.theories.TheoryDTDStars.CLTheoryDTDStarsFreq(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDTDStars.BaseTheoryDTDStarsFreq, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryDTDStars.CLTheoryDTDStarsTime(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDTDStars.BaseTheoryDTDStarsTime, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryDTDStars.GUITheoryDTDStarsFreq(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDTDStars.BaseTheoryDTDStarsFreq, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryDTDStars.GUITheoryDTDStarsTime(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDTDStars.BaseTheoryDTDStarsTime, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryDTDStars.TheoryDTDStarsFreq(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit DTD Theory for stars. Theory of stress relaxation in star polymer melts with no adjustable parameters beyond those measurable in linear melts

  • Function

    See Milner-McLeish (1997) and Larson et al. (2003) for details.

  • Parameters
    • G0 \(\equiv G_N^0\): Plateau modulus

    • tau_e \(\equiv \tau_\mathrm e = \left(\dfrac{M_\mathrm e^\mathrm G}{M_0}\right)^2 \dfrac{\zeta b^2}{3\pi^2k_\mathrm B T}\): Entanglement equilibration time

    • Me \(\equiv M_\mathrm e^\mathrm G = \dfrac 4 5 \dfrac{\rho R T} {G_N^0}\): Entanglement molecular weight

    • alpha: Dilution exponent

    where:
    • \(\rho\): polymer density

    • \(\zeta\): monomeric friction coefficient

    • \(b\): monomer-based segment length

    • \(k_\mathrm B T\): thermal energy

    • \(M_0\): molar mass of an elementary segment

citations = ['Milner S.T. and McLeish T.C.B., Macromolecules 1997, 30, 2159-2166']
description = 'Dynamic Tube Dilution for stars, frequency domain'
doi = ['http://dx.doi.org/10.1021/ma961559f']
thname = 'DTD Stars'
class RepTate.theories.TheoryDTDStars.TheoryDTDStarsTime(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit DTD Theory for stars

  • Function

    See Milner-McLeish (1997) and Larson et al. (2003) for details.

  • Parameters
    • G0 \(\equiv G_N^0\): Plateau modulus

    • tau_e \(\equiv \tau_\mathrm e = \left(\dfrac{M_\mathrm e^\mathrm G}{M_0}\right)^2 \dfrac{\zeta b^2}{3\pi^2k_\mathrm B T}\): Entanglement equilibration time

    • Me \(\equiv M_\mathrm e^\mathrm G = \dfrac 4 5 \dfrac{\rho R T} {G_N^0}\): Entanglement molecular weight

    • alpha: Dilution exponent

    where:
    • \(\rho\): polymer density

    • \(\zeta\): monomeric friction coefficient

    • \(b\): monomer-based segment length

    • \(k_\mathrm B T\): thermal energy

    • \(M_0\): molar mass of an elementary segment

citations = ['Milner S.T. and McLeish T.C.B., Macromolecules 1997, 30, 2159-2166']
description = 'Dynamic Tube Dilution for stars, time domain'
doi = ['http://dx.doi.org/10.1021/ma961559f']
thname = 'DTD Stars'

TheoryDebye

Module TheoryDebye

Debye theory for neutron scattering from ideal polymer chains

class RepTate.theories.TheoryDebye.BaseTheoryDebye(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculateDebye(f=None)[source]

Debye function

citations = ['Debye P., J. Phys. Chem. 1947, 51, 18-32']
do_error(line)[source]

Report the error of the current theory

Report the error of the current theory on all the files, taking into account the current selected xrange and yrange.

File error is calculated as the mean square of the residual, averaged over all points in the file. Total error is the mean square of the residual, averaged over all points in all files.

doi = ['http://dx.doi.org/10.1021/j150451a002']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/SANS/Theory/theory.html#debye-function'
single_file = False
thname = 'Debye'
class RepTate.theories.TheoryDebye.CLTheoryDebye(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDebye.BaseTheoryDebye, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryDebye.GUITheoryDebye(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryDebye.BaseTheoryDebye, RepTate.gui.QTheory.QTheory

GUI Version

handle_tbutnonideal_triggered(checked)[source]

Handle Non-ideal

handle_tbutstretched_triggered(checked)[source]

Check Streched

class RepTate.theories.TheoryDebye.TheoryDebye(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a Debye function to the small angle neutron scattering data of ideal polymer chains.

  • Function
    \[I(q) = \frac {(b_H-b_D)^2}{V} N \phi(1-\phi) g_D(R_g,q) + \mathrm{Bckgrnd}\]
    where:
    • \(N=M_w/M_\mathrm{mono}\) is the degree of polymerization of the chain (\(M_w\) is a parameter of the experimental data)

    • \(\phi\) is the volume fraction of deuterated chains (read from the file)

    • \(g_D(R_g,q)\) is the Debye function, given by

    \[g_D(R_g,q) = \frac{2}{(q^2R_g^2)^2}\left( q^2R_g^2 + exp(-q^2R_g^2) -1 \right)\]
  • Parameters
    • Contrast: This sets the magnitude of the scattering and is equal to \((b_H-b_D)^2/V\) where \(b_{H/D}\) is the scattering cross-section of the hydrogenous/deuterated monomer and \(V\) is the monomer volume.

    • \(C_{gyr}\): This sets the scale of the radius of gyration of the chain. For a given molecular weight, the radius of gyration is \(R_g^2=C_{gyr}M_w\). For many polymers, this value is available in the literature, but small adjustments may still be necessary to optimize the agreement with the experimental data.

    • \(M_\mathrm{mono}\): The molecular weight of a single monomer (should be known from the chain chemistry).

    • Bckgrnd: This sets the level of the background scattering. It can, in principle, be computed from known incoherent scattering cross sections but, in practice, there are often many other unknown contributions and therefore fitting is necessary.

    • \(\lambda\): It applies a simple strain measure by shifting the radius of gyration by a constant factor for all \(q\) values, \(R_g\to \lambda R_g\) (the Stretched button must be checked). This can be used to compare the microscopic deformation with the effect of a fully affine bulk deformation or to fit to the low \(q\) data to produce an effective radius of gyration under flow. Compression perpendicular to the flow direction can be modelled by setting \(\lambda<1\).

    • \(\chi\): Parameter to model the effect of a weak interaction between the hydrogenous and the deuterated monomers on the scattering, modelled within the random phase approximation [3] (the Non-Ideal Mix button must be checked). The scattered intensity is calculated according to the function below, in which \(\chi\) is independent of \(M_w\) and \(\phi\) but is expected to change with temperature. Typically, the effect of \(\chi\) is small, but this depends upon the temperature, degree of polymerization and deuterated fraction. For deuterated/hydrogenated polystyrene \(\chi\approx 1.7\cdot 10^{-4}\) at 160 degrees C, and it is expected to be smaller with increasing temperature.

      \[I(q) = \frac {(b_H-b_D)^2}{V} \left( \frac{1}{N \phi(1-\phi) g_D(R_g,q)}-2\chi \right)^{-1} + \mathrm{Bckgrnd} \]
citations = ['Debye P., J. Phys. Chem. 1947, 51, 18-32']
description = 'Debye theory for neutron scattering from ideal polymer chains'
doi = ['http://dx.doi.org/10.1021/j150451a002']
thname = 'Debye'

TheoryDebyeModes

Module TheoryDebyeModes

Module that defines theories related to Debye modes, in the frequency and time domains.

class RepTate.theories.TheoryDebyeModes.BaseTheoryDebyeModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

DebyeModesFrequency(f=None)[source]

Actual function that calculates the thoery

citations = []
destructor()[source]

Called when the theory tab is closed

doi = []
drag_mode(dx, dy)[source]

Move around modes

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Set visibility of graphic modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Dielectric/Theory/theory.html#debye-modes'
plot_theory_stuff()[source]

Plot theory graphic modes

setup_graphic_modes()[source]

Setup graphic representation of modes

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'Debye modes'
update_modes()[source]

Do nothing

class RepTate.theories.TheoryDebyeModes.CLTheoryDebyeModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryDebyeModes.BaseTheoryDebyeModesFrequency, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryDebyeModes.GUITheoryDebyeModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryDebyeModes.BaseTheoryDebyeModesFrequency, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmode’

modesaction_change(checked)[source]

Change visibility of modes

class RepTate.theories.TheoryDebyeModes.TheoryDebyeModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a generalized Debye model to a frequency dependent relaxation function.

  • Function
    \[\begin{split}\begin{eqnarray} \epsilon'(\omega) & = & \epsilon_\infty + \sum_{1}^{n_{modes}} \Delta\epsilon_i \frac{1}{1+(\omega\tau_i)^2} \\ \epsilon''(\omega) & = & \sum_{1}^{n_{modes}} \Delta\epsilon_i \frac{\omega\tau_i}{1+(\omega\tau_i)^2} \end{eqnarray}\end{split}\]
  • Parameters
    • einf = \(\epsilon_{\infty}\): Unrelaxed permitivity

    • \(n_{modes}\): number of Debye modes equally distributed in logarithmic scale between \(\omega_{min}\) and \(\omega_{max}\).

    • logwmin = \(\log(\omega_{min})\): decimal logarithm of the minimum frequency.

    • logwmax = \(\log(\omega_{max})\): decimal logarithm of the maximum frequency.

    • logDei = \(\log(\Delta\epsilon_{i})\), where \(\Delta\epsilon_{i}=\epsilon_{s,i}-\epsilon_\infty\): decimal logarithm of the relaxation strength of Debye mode \(i\), where \(\epsilon_{s,i}\) is the static permitivity of mode \(i\).

citations = []
description = 'Fit Debye modes'
doi = []
thname = 'Debye modes'

TheoryDieneCSTR

Module TheoryDieneCSTR

class RepTate.theories.TheoryDieneCSTR.BaseTheoryDieneCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

Calc(f=None)[source]

Calculate the theory

citations = ['Das C. et al., Macromol. Theory Simul., 26, 1700006 (2017)']
destructor()[source]

Return arms to pool

do_error(line)[source]

This theory does not calculate the error

do_fit(line='')[source]

No fitting allowed in this theory

doi = ['https://doi.org/10.1002/mats.201700006']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/React/Theory/dieneCSTR.html'
request_stop_computations()[source]

Called when user wants to terminate the current computation

show_theory_extras(checked)[source]
signal_request_arm
signal_request_dist
signal_request_polymer
single_file = True
thname = 'Diene CSTR'
class RepTate.theories.TheoryDieneCSTR.CLTheoryDieneCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryDieneCSTR.BaseTheoryDieneCSTR, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryDieneCSTR.GUITheoryDieneCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryDieneCSTR.BaseTheoryDieneCSTR, RepTate.gui.QTheory.QTheory

GUI Version

get_extra_data()[source]

set extra data

handle_btn_prio_senio(checked)[source]

Change do_priority_seniority

handle_edit_bob_settings()[source]

Open the BoB binnig settings dialog

handle_save_bob_configuration()[source]

Save polymer configuraions to a file

set_extra_data(extra_data)[source]

set extra data

theory_buttons_disabled(state)[source]

Disable/Enable some theory buttons before/after calculation start.

class RepTate.theories.TheoryDieneCSTR.TheoryDieneCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

DieneCSTR reaction theory

citations = ['Das C. et al., Macromol. Theory Simul., 26, 1700006 (2017)']
description = 'The Diene CSTR reaction theory'
doi = ['https://doi.org/10.1002/mats.201700006']
thname = 'Diene CSTR'

TheoryDiscrMWD

Module TheoryDiscrMWD

Module that defines the theory to discretize a molecular weight distribution.

class RepTate.theories.TheoryDiscrMWD.BaseTheoryDiscrMWD(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

calculate_moments(f, line='')[source]

Calculate the moments Mn, Mw, and Mz of a molecular mass distribution

citations = []
destructor()[source]

Called when the theory tab is closed

discretise_mwd(f=None)[source]

Discretize a molecular weight distribution

do_error(line)[source]

This theory does not calculate the error

do_fit(line='')[source]

Fit not allowed in this theory

doi = []
drag_bin(newx, newy)[source]

Move edges of the bins

get_mwd()[source]
graphic_bins_visible(state)[source]

Set visibility of graphic helpers

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/MWD/Theory/theory.html#mwd-discretization'
plot_theory_stuff()[source]

Plot theory graphic helpers

set_bar_plot(visible=True)[source]

Hide/Show the bar plot

set_equally_spaced_bins()[source]

Find the first active file in the dataset and setup the bins

set_extra_data(extra_data)[source]

Define the extra_data dict and set the bin number Redefinition of the QTheory function

set_param_value(name, new_value)[source]

Set value of theory parameter

setup_graphic_bins()[source]

Setup graphic helpers for the theory

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'Discretize MWD'
class RepTate.theories.TheoryDiscrMWD.CLTheoryDiscrMWD(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryDiscrMWD.BaseTheoryDiscrMWD, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryDiscrMWD.GUITheoryDiscrMWD(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryDiscrMWD.BaseTheoryDiscrMWD, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the view_bins_button button and change button activation state. Called when curent theory is changed

do_save(dir, extra_txt='')[source]

Save discrete MWD

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nbin’

handle_view_bins_button_triggered(checked)[source]

Set visibility of bins

class RepTate.theories.TheoryDiscrMWD.TheoryDiscrMWD(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Discretize a Molecular Weight Distribution

citations = []
description = 'Discretize a Molecular Weight Distribution'
doi = []
thname = 'Discretize MWD'

TheoryGEX

Module TheoryGEX

GEX file for creating a new theory

class RepTate.theories.TheoryGEX.BaseTheoryGEX(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

GEX(f=None)[source]

GEX function

citations = []
do_error(line)[source]

Report the error of the current theory

Report the error of the current theory on all the files, taking into account the current selected xrange and yrange.

File error is calculated as the mean square of the residual, averaged over all points in the file. Total error is the mean square of the residual, averaged over all points in all files.

doi = []
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/MWD/Theory/theory.html#generalized-exponential-function'
single_file = False
thname = 'GEX'
class RepTate.theories.TheoryGEX.CLTheoryGEX(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryGEX.BaseTheoryGEX, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryGEX.GUITheoryGEX(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryGEX.BaseTheoryGEX, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryGEX.TheoryGEX(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Generalized Exponential Function (GEX) for experimental molecular weight distributions.

  • Function
    \[W(M) = W_0 \frac{b}{M_0 \Gamma\left(\frac{a+1}{b}\right)} \left(\frac{M}{M_0}\right)^{a} \exp\left[ -\left(\frac{M}{M_0}\right)^b \right]\]
  • Parameters
    • logW0 \(\equiv\log_{10}(W_0)\): Normalization constant.

    • logM0 \(\equiv\log_{10}(M_0)\): Proportional to \(M_n\) and \(M_w\).

    • a : Parameter related to polydispersity and skewness

    • b : Parameter related to polydispersity and skewness

citations = []
description = 'Generalized Exponential Function distribution'
doi = []
thname = 'GEX'

TheoryGiesekus

Module TheoryGiesekus

Module for the Giesekus model for the non-linear flow of entangled polymers.

class RepTate.theories.TheoryGiesekus.BaseTheoryGiesekus(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate_giesekus(f=None)[source]

Calculate Giesekus

calculate_giesekusLAOS(f=None)[source]

Calculate Giesekus for LAOS

citations = ['Giesekus H., Rheol. Acta 1966, 5, 29']
doi = ['http://dx.doi.org/10.1007/BF01973575']
get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#multi-mode-giesekus-model'
init_flow_mode()[source]

Find if data files are shear or extension

n1_uext(p, times)[source]

Upper Convected Maxwell model in uniaxial extension. Returns N1 = (XX -YY) component of stress tensor

set_modes(tau, G)[source]

Set the values of Maxwell Modes from another theory

set_param_value(name, value)[source]

Set value of a theory parameter

sigma_xy_shear(p, times)[source]

Upper Convected Maxwell model in shear. Returns XY component of stress tensor

sigma_xy_shearLAOS(p, times)[source]

Giesekus model in LAOS

sigmadot_shear(sigma, times, p)[source]

Giesekus model in shear

sigmadot_shearLAOS(sigma, times, p)[source]

Giesekus model in shear

sigmadot_uext(sigma, times, p)[source]

Giesekus model in uniaxial extension

single_file = False
thname = 'Giesekus'
class RepTate.theories.TheoryGiesekus.CLTheoryGiesekus(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryGiesekus.BaseTheoryGiesekus, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryGiesekus.GUITheoryGiesekus(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryGiesekus.BaseTheoryGiesekus, RepTate.gui.QTheory.QTheory

GUI Version

edit_modes_window()[source]
get_modes_reptate()[source]
handle_spinboxValueChanged(value)[source]
plot_modes_graph()[source]
select_extensional_flow()[source]
select_shear_flow()[source]
class RepTate.theories.TheoryGiesekus.TheoryGiesekus(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Multi-mode Giesekus Model (see Chapter 6 of [2]):

\[\begin{split}\boldsymbol \sigma &= \sum_{i=1}^n G_i \boldsymbol {A_i},\\ \dfrac {\mathrm D \boldsymbol A_i} {\mathrm D t} &= \boldsymbol \kappa \cdot \boldsymbol A_i + \boldsymbol A_i\cdot \boldsymbol \kappa ^T - \dfrac {1} {\tau_i} (\boldsymbol A_i - \boldsymbol I) - \dfrac {\alpha_i} {\tau_i} (\boldsymbol A_i - \boldsymbol I)^2,\end{split}\]
where for each mode \(i\):
  • \(G_i\): weight of mode \(i\)

  • \(\tau_i\): relaxation time of mode \(i\)

  • \(\alpha_i\): constant of proportionality mode \(i\)

  • Parameters
    • alpha_i \(\equiv \alpha_i\)

citations = ['Giesekus H., Rheol. Acta 1966, 5, 29']
description = 'Giesekus constitutive equation'
doi = ['http://dx.doi.org/10.1007/BF01973575']
thname = 'Giesekus'

TheoryGoPolyStrand

TheoryHavriliakNegamiModes

Module TheoryHavriliakNegamiModes

Module that defines theories related to Havriliak-Negami modes, in the frequency and time domains.

class RepTate.theories.TheoryHavriliakNegamiModes.BaseTheoryHavriliakNegamiModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

HavriliakNegamiModesFrequency(f=None)[source]

Calculate the theory

citations = ['Havriliak S. and Negami S., Polymer 1967, 8, 161-210']
destructor()[source]

Called when the theory tab is closed

doi = ['http://dx.doi.org/10.1016/0032-3861(67)90021-3']
drag_mode(dx, dy)[source]

Drag graphical modes

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Change visibility of modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Dielectric/Theory/theory.html#havriliak-negami-modes'
plot_theory_stuff()[source]

Plot graphical helpers

setup_graphic_modes()[source]

Setup graphical helpers

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'Havriliak-Negami modes'
update_modes()[source]

Do nothing

class RepTate.theories.TheoryHavriliakNegamiModes.CLTheoryHavriliakNegamiModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryHavriliakNegamiModes.BaseTheoryHavriliakNegamiModesFrequency, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryHavriliakNegamiModes.GUITheoryHavriliakNegamiModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryHavriliakNegamiModes.BaseTheoryHavriliakNegamiModesFrequency, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmode’

modesaction_change(checked)[source]

Change visibility of modes

class RepTate.theories.TheoryHavriliakNegamiModes.TheoryHavriliakNegamiModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a generalized Havriliak-Negami model to a frequency dependent relaxation function.

  • Function
    \[\epsilon^* (\omega) = \epsilon_\infty + \frac{\Delta\epsilon}{\left[ 1 + \left( i\omega\tau\right)^\alpha\right]^\gamma}\]
  • Parameters
    • einf = \(\epsilon_{\infty}\): Unrelaxed permitivity

    • \(n_{modes}\): number of Havriliak-Negami modes equally distributed in logarithmic scale between \(\omega_{min}\) and \(\omega_{max}\).

    • logwmin = \(\log(\omega_{min})\): decimal logarithm of the minimum frequency.

    • logwmax = \(\log(\omega_{max})\): decimal logarithm of the maximum frequency.

    • logDei = \(\log(\Delta\epsilon_{i})\), where \(\Delta\epsilon_{i}=\epsilon_{s,i}-\epsilon_\infty\): decimal logarithm of the relaxation strength of Debye mode \(i\), where \(\epsilon_{s,i}\) is the static permitivity of mode \(i\).

    • \(\alpha\): Asymmetry parameter

    • \(\gamma\): Broadness parameter

citations = ['Havriliak S. and Negami S., Polymer 1967, 8, 161-210']
description = 'Fit Havriliak-Negami modes'
doi = ['http://dx.doi.org/10.1016/0032-3861(67)90021-3']
thname = 'Havriliak-Negami modes'

TheoryKWWModes

Module TheoryKWWModes

Module that defines theories related to Havriliak-Negami modes, in the frequency and time domains.

class RepTate.theories.TheoryKWWModes.BaseTheoryKWWModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

KWWModesFrequency(f=None)[source]

Calculate theory

citations = ['Kohlrausch, R. Annalen der Physik und Chemie 1854, 91, 56-82', 'Williams G. and Watts D.C., Trans. Faraday Soc. 1970, 66, 80-85']
destructor()[source]

Called when the theory tab is closed

doi = ['http://dx.doi.org/10.1002/andp.18541670203', 'http://dx.doi.org/10.1039/TF9706600080']
drag_mode(dx, dy)[source]

Drag modes

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Change visibility of modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Dielectric/Theory/theory.html#kolhrauch-williams-watts-kww-modes'
plot_theory_stuff()[source]

Plot theory helpers

setup_graphic_modes()[source]

Setup graphical helpers

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'KWW modes'
update_modes()[source]

Do nothing

class RepTate.theories.TheoryKWWModes.CLTheoryKWWModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryKWWModes.BaseTheoryKWWModesFrequency, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryKWWModes.GUITheoryKWWModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryKWWModes.BaseTheoryKWWModesFrequency, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmode’

modesaction_change(checked)[source]

Change mode visibility

class RepTate.theories.TheoryKWWModes.TheoryKWWModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a Kohlrausch-Williams-Watts (KWW, stretched exponential) model to a frequency dependent relaxation function.

  • Function
    \[\epsilon (t) - \epsilon_\infty = \Delta\epsilon \left[ 1 - \exp \left( - \frac{t}{\tau} \right)^\beta\right]\]
  • Parameters
    • einf = \(\epsilon_{\infty}\): Unrelaxed permitivity

    • \(n_{modes}\): number of Havriliak-Negami modes equally distributed in logarithmic scale between \(\omega_{min}\) and \(\omega_{max}\).

    • logwmin = \(\log(\omega_{min})\): decimal logarithm of the minimum frequency.

    • logwmax = \(\log(\omega_{max})\): decimal logarithm of the maximum frequency.

    • logDei = \(\log(\Delta\epsilon_{i})\), where \(\Delta\epsilon_{i}=\epsilon_{s,i}-\epsilon_\infty\): decimal logarithm of the relaxation strength of Debye mode \(i\), where \(\epsilon_{s,i}\) is the static permitivity of mode \(i\).

    • \(\beta\): stretched exponential parameter

Note

It makes use of the libkww code, by Joachim Wuttke, CITE: doi:10.3390/a5040604

citations = ['Kohlrausch, R. Annalen der Physik und Chemie 1854, 91, 56-82', 'Williams G. and Watts D.C., Trans. Faraday Soc. 1970, 66, 80-85']
description = 'Fit Kohlrausch-Williams-Watts modes'
doi = ['http://dx.doi.org/10.1002/andp.18541670203', 'http://dx.doi.org/10.1039/TF9706600080']
thname = 'KWW modes'

TheoryLDPEBatch

Module TheoryTobitaBatch

TobitaBatch file for creating a new theory

class RepTate.theories.TheoryLDPEBatch.BaseTheoryTobitaBatch(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

Calc(f=None)[source]
citations = ['Tobita H., J. Pol. Sci. Part B 2001, 39, 391-403']
destructor()[source]

Return arms to pool

do_error(line)[source]

This theory does not calculate the error

do_fit(line='')[source]

No fitting allowed in this theory

doi = ['http://dx.doi.org/10.1002/1099-0488(20010115)39:4<391::AID-POLB1011>3.0.CO;2-3']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/React/Theory/tobitaLDPE.html'
request_stop_computations()[source]

Called when user wants to terminate the current computation

show_theory_extras(checked)[source]
signal_request_arm
signal_request_dist
signal_request_polymer
single_file = True
thname = 'Tobita Batch'
class RepTate.theories.TheoryLDPEBatch.CLTheoryTobitaBatch(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryLDPEBatch.BaseTheoryTobitaBatch, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryLDPEBatch.GUITheoryTobitaBatch(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryLDPEBatch.BaseTheoryTobitaBatch, RepTate.gui.QTheory.QTheory

GUI Version

get_extra_data()[source]

set extra data

handle_btn_prio_senio(checked)[source]

Change do_priority_seniority

handle_edit_bob_settings()[source]

Open the BoB binnig settings dialog

handle_save_bob_configuration()[source]

Save polymer configuraions to a file

set_extra_data(extra_data)[source]

set extra data

theory_buttons_disabled(state)[source]

Disable/Enable some theory buttons before/after calculation start.

class RepTate.theories.TheoryLDPEBatch.TheoryTobitaBatch(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

LDPE batch reaction theory

The LDPE batch reaction theory uses an algorithm described in the paper by H. Tobita (J. Pol. Sci. Part B, 39, 391-403 (2001)). It is designed for a batch reaction - in which the reagents are well mixed at the beginning and monomer is consumed as the reaction proceeds. It is equivalent to the “plug-flow” approximation for a tubular reactor. One possibility when modelling a real tubular reactor is to mix several batch reactions with different conversions.

citations = ['Tobita H., J. Pol. Sci. Part B 2001, 39, 391-403']
description = 'The LDPE batch reaction theory'
doi = ['http://dx.doi.org/10.1002/1099-0488(20010115)39:4<391::AID-POLB1011>3.0.CO;2-3']
thname = 'Tobita Batch'

TheoryLikhtmanMcLeish2002

Module TheoryLikhtmanMcLeish2002

Module that defines the Likhtman-McLeish theory for melts of linear monodisperse entangled polymers.

class RepTate.theories.TheoryLikhtmanMcLeish2002.BaseTheoryLikhtmanMcLeish2002(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

LikhtmanMcLeish2002(f=None)[source]

Get the theory results from precalculated data

citations = ['Likhtman A.E. and McLeish T.C.B., Macromolecules 2002, 35, 6332-6343']
do_error(line)[source]

Report the error of the current theory

Report the error of the current theory on all the files, taking into account the current selected xrange and yrange.

File error is calculated as the mean square of the residual, averaged over all points in the file. Total error is the mean square of the residual, averaged over all points in all files.

doi = ['http://dx.doi.org/10.1021/ma0200219']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#likhtman-mcleish-theory'
single_file = False
thname = 'Likhtman-McLeish'
class RepTate.theories.TheoryLikhtmanMcLeish2002.CLTheoryLikhtmanMcLeish2002(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryLikhtmanMcLeish2002.BaseTheoryLikhtmanMcLeish2002, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryLikhtmanMcLeish2002.GUITheoryLikhtmanMcLeish2002(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryLikhtmanMcLeish2002.BaseTheoryLikhtmanMcLeish2002, RepTate.gui.QTheory.QTheory

GUI Version

handle_txtrho_edited(new_text)[source]
linkMeGeaction_change(checked)[source]
set_extra_data(_)[source]

Restore the check state of button and text value

class RepTate.theories.TheoryLikhtmanMcLeish2002.TheoryLikhtmanMcLeish2002(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit Likhtman-McLeish theory for linear rheology of linear entangled polymers

  • Parameters
    • tau_e : Rouse time of one entanglement segment (of length \(M_e\)).

    • Ge : Entanglement modulus.

    • Me : Entanglement molecular weight.

    • c_nu : Constraint release parameter.

citations = ['Likhtman A.E. and McLeish T.C.B., Macromolecules 2002, 35, 6332-6343']
description = 'Likhtman-McLeish theory for linear entangled polymers'
doi = ['http://dx.doi.org/10.1021/ma0200219']
thname = 'Likhtman-McLeish'

TheoryLogNormal

Module TheoryLogNormal

class RepTate.theories.TheoryLogNormal.BaseTheoryLogNormal(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

LogNormal(f=None)[source]

LogNormal function

citations = []
do_error(line)[source]

Report the error of the current theory

Report the error of the current theory on all the files, taking into account the current selected xrange and yrange.

File error is calculated as the mean square of the residual, averaged over all points in the file. Total error is the mean square of the residual, averaged over all points in all files.

doi = []
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/MWD/Theory/theory.html#log-normal-distribution'
single_file = False
thname = 'LogNormal'
class RepTate.theories.TheoryLogNormal.CLTheoryLogNormal(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryLogNormal.BaseTheoryLogNormal, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryLogNormal.GUITheoryLogNormal(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryLogNormal.BaseTheoryLogNormal, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryLogNormal.TheoryLogNormal(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Log-Normal distribution: the logarithm of the molecular weight is normally distributed

  • Function
    \[W(M) = W_0 \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left[ - \frac{\left(\ln{M}-(\ln{M_0} + \sigma^2)\right)^2}{2\sigma^2} \right]\]
  • Parameters
    • logW0 \(\equiv\log_{10}(W_0)\): Normalization constant.

    • logM0 \(\equiv\log_{10}(M_0)\)

    • sigma \(\equiv\sigma\)

citations = []
description = 'LogNormal distribution'
doi = []
thname = 'LogNormal'

TheoryMaxwellModes

Module TheoryMaxwellModes

Module that defines theories related to Maxwell modes, in the frequency and time domains.

class RepTate.theories.TheoryMaxwellModes.BaseTheoryMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

MaxwellModesFrequency(f=None)[source]

Calculate the theory

citations = []
destructor()[source]

Called when the theory tab is closed

doi = []
drag_mode(dx, dy)[source]

Drag modes around

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Change visibility of modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#maxwell-modes'
plot_theory_stuff()[source]

Plot theory helpers

set_param_value(name, value)[source]

Change other parameters when nmodes is changed, else call parent function

setup_graphic_modes()[source]

Setup graphic helpers

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'Maxwell Modes'
update_modes()[source]

Do nothing

class RepTate.theories.TheoryMaxwellModes.BaseTheoryMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

MaxwellModesTime(f=None)[source]

Calculate the theory

citations = []
destructor()[source]

Called when the theory tab is closed

drag_mode(dx, dy)[source]

Drag modes around

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Change visibility of modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Gt/Theory/theory.html#maxwell-modes'
plot_theory_stuff()[source]

Plot theory helpers

set_param_value(name, value)[source]

Change other parameters when nmodes is changed, else call parent function

setup_graphic_modes()[source]

setup graphic helpers

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'Maxwell Modes'
update_modes()[source]

Do nothing

class RepTate.theories.TheoryMaxwellModes.CLTheoryMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryMaxwellModes.BaseTheoryMaxwellModesFrequency, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryMaxwellModes.CLTheoryMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryMaxwellModes.BaseTheoryMaxwellModesTime, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryMaxwellModes.GUITheoryMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryMaxwellModes.BaseTheoryMaxwellModesFrequency, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmodes’

modesaction_change(checked)[source]

Change visibility of modes

class RepTate.theories.TheoryMaxwellModes.GUITheoryMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryMaxwellModes.BaseTheoryMaxwellModesTime, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmodes’

modesaction_change(checked)[source]

Change visibility of modes

class RepTate.theories.TheoryMaxwellModes.TheoryMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a generalized Maxwell model to a frequency dependent relaxation function.

  • Function
    \[\begin{split}\begin{eqnarray} G'(\omega) & = & \sum_{1}^{n_{modes}} G_i \frac{(\omega\tau_i)^2}{1+(\omega\tau_i)^2} \\ G''(\omega) & = & \sum_{1}^{n_{modes}} G_i \frac{\omega\tau_i}{1+(\omega\tau_i)^2} \end{eqnarray}\end{split}\]
  • Parameters
    • \(n_{modes}\): number of Maxwell modes equally distributed in logarithmic scale between \(\omega_{min}\) and \(\omega_{max}\).

    • logwmin = \(\log(\omega_{min})\): decimal logarithm of the minimum frequency.

    • logwmax = \(\log(\omega_{max})\): decimal logarithm of the maximum frequency.

    • logGi = \(\log(G_{i})\): decimal logarithm of the amplitude of Maxwell mode \(i\).

citations = []
description = 'Maxwell modes, frequency dependent'
doi = []
thname = 'Maxwell Modes'
class RepTate.theories.TheoryMaxwellModes.TheoryMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a generalized Maxwell model to a time dependent relaxation function.

  • Function
    \[\begin{eqnarray} G(t) & = & \sum_{i=1}^{n_{modes}} G_i \exp (-t/\tau_i) \end{eqnarray}\]
  • Parameters
    • \(n_{modes}\): number of Maxwell modes equally distributed in logarithmic scale between \(\omega_{min}\) and \(\omega_{max}\).

    • logtmin = \(\log(t_{min})\): decimal logarithm of the minimum time.

    • logtmax = \(\log(t_{max})\): decimal logarithm of the maximum time.

    • logGi = \(\log(G_{i})\): decimal logarithm of the amplitude of Maxwell mode \(i\).

citations = []
description = 'Maxwell modes, time dependent'
thname = 'Maxwell Modes'

TheoryMultiMetCSTR

Module TheoryMultiMetCSTR

class RepTate.theories.TheoryMultiMetCSTR.BaseTheoryMultiMetCSTR(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

Calc(f=None)[source]

MultiMetCSTR function that returns the square of y

citations = ['Read D.J. and Soares J.B.P., Macromolecules 2003, 36, 10037–10051']
destructor()[source]

Return arms to pool

do_error(line)[source]

This theory does not calculate the error

do_fit(line='')[source]

No fitting allowed in this theory

doi = ['http://dx.doi.org/10.1021/ma030354l']
get_extra_data()[source]

Called when saving project. Save parameters in extra_data dict

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/React/Theory/MetalloceneCSTR.html'
init_param_values()[source]

Initialise parameters with default values

request_stop_computations()[source]

Called when user wants to terminate the current computation

set_extra_data(extra_data)[source]

Called when loading a project, set saved parameter values

show_theory_extras(checked)[source]
signal_mulmet_dialog
signal_request_arm
signal_request_dist
signal_request_polymer
single_file = True
thname = 'Multi-Met CSTR'
class RepTate.theories.TheoryMultiMetCSTR.CLTheoryMultiMetCSTR(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryMultiMetCSTR.BaseTheoryMultiMetCSTR, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryMultiMetCSTR.GUITheoryMultiMetCSTR(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryMultiMetCSTR.BaseTheoryMultiMetCSTR, RepTate.gui.QTheory.QTheory

GUI Version

handle_btn_prio_senio(checked)[source]

Change do_priority_seniority

handle_edit_bob_settings()[source]

Open the BoB binnig settings dialog

handle_save_bob_configuration()[source]

Save polymer configuraions to a file

theory_buttons_disabled(state)[source]

Disable/Enable some theory buttons before/after calculation start.

class RepTate.theories.TheoryMultiMetCSTR.TheoryMultiMetCSTR(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

THEORY DOCUMENTATION IS MISSING

citations = ['Read D.J. and Soares J.B.P., Macromolecules 2003, 36, 10037–10051']
description = 'Multiple Metallocene CSTR Reaction Theory'
doi = ['http://dx.doi.org/10.1021/ma030354l']
thname = 'Multi-Met CSTR'

TheoryPETS

Module TheoryPETS

Module for the PETS theory for the non-linear flow of entangled polymers.

class RepTate.theories.TheoryPETS.BaseTheoryPETS(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

PETS(f=None)[source]

Calculates the theory

citations = ['Boudara, V.A.H, and D.J. Read, J. Rheol., 61, 339-362 (2017)']
destructor()[source]

Called when the theory tab is closed

doi = ['http://dx.doi.org/10.1122/1.4974908']
extra_graphic_visible(state)[source]

Change visibility of graphic helpers

get_extra_data()[source]

Set extra_data when saving project

get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#PETS-equation'
init_flow_mode()[source]

Find if data files are shear or extension

set_extra_data(extra_data)[source]

Set extra data when loading project

show_theory_extras(show=False)[source]

Called when the active theory is changed

sigmadot_shear(vec, t, p)[source]

PETS differential equation under shear flow with stretching and finite extensibility if selected

sigmadot_uext(vec, t, p)[source]

PETS differential equation under uext flow with stretching and finite extensibility if selected

single_file = False
thname = 'PETS'
class RepTate.theories.TheoryPETS.CLTheoryPETS(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryPETS.BaseTheoryPETS, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryPETS.GUITheoryPETS(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryPETS.BaseTheoryPETS, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(show)[source]

Uncheck the LVE button. Called when curent theory is changed

plot_theory_stuff()[source]

Plot theory helpers

select_extensional_flow()[source]
select_shear_flow()[source]
show_linear_envelope(state)[source]
class RepTate.theories.TheoryPETS.TheoryPETS(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Preaveraged model for Entangled Telechelic Star polymers: This theory is intended for the prediction of non-linear transient flows of entangled telechelic (with sticky functional groups at the chain-ends) star polymers.

  • Parameters
    • G : Plateau Modulus

    • tauD : Orientation relaxation time

    • tauS : Stretch Relxation time

    • tau_as : Typical time the sticker spends associated

    • tau_free : Typical time the sticker spends free

    • lmax : Maximum extensibility

    • beta : CCR coefficient

    • delta : CCR exponent

    • Z : Entanglement number

    • r_a : Ratio of sticker size to tube diameter

citations = ['Boudara, V.A.H, and D.J. Read, J. Rheol., 61, 339-362 (2017)']
description = 'Preaveraged model for entangled telechelic star polymers'
doi = ['http://dx.doi.org/10.1122/1.4974908']
thname = 'PETS'

TheoryPomPom

Module TheoryPomPom

Module for the Pom-Pom model for the non-linear flow of entangled polymers.

class RepTate.theories.TheoryPomPom.BaseTheoryPomPom(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate_PomPom(f=None)[source]

Calculate the theory

calculate_PomPomLAOS(f=None)[source]

Calculate the theory in LAOS

citations = ['McLeish T.C.B. and Larson R.G., J. Rheol. 1998, 42, 81-110']
doi = ['http://dx.doi.org/10.1122/1.550933']
get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#multi-mode-pom-pom-model'
init_flow_mode()[source]

Find if data files are shear or extension

set_modes(tau, G)[source]

Set the values of Maxwell Modes from another theory

set_param_value(name, value)[source]

Set the value of theory parameters

sigmadot_shear(l, t, p)[source]

PomPom model in shear

sigmadot_shearLAOS(l, t, p)[source]

PomPom model in shear LAOS

sigmadot_uext(l, t, p)[source]

PomPom model in uniaxial extension

single_file = False
thname = 'Pom-Pom'
class RepTate.theories.TheoryPomPom.CLTheoryPomPom(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryPomPom.BaseTheoryPomPom, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryPomPom.GUITheoryPomPom(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryPomPom.BaseTheoryPomPom, RepTate.gui.QTheory.QTheory

GUI Version

edit_modes_window()[source]
get_modes_reptate()[source]
handle_flowsolve_btn()[source]

Save theory parameters in FlowSolve format

plot_modes_graph()[source]
select_extensional_flow()[source]
select_shear_flow()[source]
class RepTate.theories.TheoryPomPom.TheoryPomPom(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Multi-mode PomPom Model based on [3]:

\[\begin{split}\boldsymbol \sigma &= 3 \sum_{i=1}^n G_i \lambda_i^2(t) \boldsymbol S_i (t),\\ \boldsymbol S_i &= \dfrac{\boldsymbol A_i } {\mathrm{Tr} \boldsymbol A_i}\\ \dfrac {\mathrm D \boldsymbol A_i} {\mathrm D t} &= \boldsymbol \kappa \cdot \boldsymbol A_i + \boldsymbol A_i\cdot \boldsymbol \kappa ^T - \dfrac {1} {\tau_{\mathrm b, i}} (\boldsymbol A_i - \boldsymbol I), \\ \dfrac {\mathrm D \lambda_i} {\mathrm D t} &= \lambda_i (\boldsymbol \kappa : \boldsymbol S_i) - \dfrac {1} {\tau_{\mathrm s, i}} (\lambda_i - 1) \exp\left( \nu^* (\lambda_i - 1) \right),\end{split}\]
where, for each mode \(i\):
  • \(G_i\): weight of mode \(i\)

  • \(\tau_{\mathrm b, i}\): backbone orientation relaxation time of mode \(i\)

  • \(\tau_{\mathrm s, i}\): backbone stretch relaxation time of mode \(i\)

  • \(\nu_i^* = \dfrac{2}{q_i - 1}\)

  • \(q_i\): the number of dangling arms of each mode

  • Parameters
    • q_i \(\equiv q_i\): the number of dangling arms of each mode

    • ratio_i \(\equiv \dfrac{\tau_{\mathrm b, i}}{\tau_{\mathrm s, i}}\):

    the ratio of orientation to stretch relaxation times of each mode

citations = ['McLeish T.C.B. and Larson R.G., J. Rheol. 1998, 42, 81-110']
description = 'Pom-Pom constitutive equation'
doi = ['http://dx.doi.org/10.1122/1.550933']
thname = 'Pom-Pom'

TheoryRDPLVE

Module TheoryRDPLVE

Template file for creating a new theory

class RepTate.theories.TheoryRDPLVE.BaseTheoryRDPLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

Calculate the theory

citations = []
fZ(z)[source]

CLF correction function Likthman-McLeish (2002)

gZ(z)[source]

CLF correction function for modulus Likthman-McLeish (2002)

get_extra_data()[source]

Set extra_data when saving project

get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#rolie-double-poly-lve'
set_extra_data(extra_data)[source]

Set extra data when loading project

set_modes_from_mwd(m, phi)[source]

Set modes from MWD

set_param_value(name, value)[source]

Set the value of a theory parameter

single_file = True
thname = 'RDP LVE'
class RepTate.theories.TheoryRDPLVE.CLTheoryRDPLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryRDPLVE.BaseTheoryRDPLVE, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryRDPLVE.GUITheoryRDPLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryRDPLVE.BaseTheoryRDPLVE, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(show)[source]

Called when current theory is changed

edit_modes_window()[source]
edit_mwd_modes()[source]
get_modes_reptate()[source]
handle_with_gcorr_button(checked)[source]
class RepTate.theories.TheoryRDPLVE.TheoryRDPLVE(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Rolie-Double-Poly equation for the linear predictions of polydispere entangled linear polymers

  • Function
    \[\begin{split}\begin{eqnarray} G'(\omega) & = & \sum_{i=1}^{n_{modes}}\sum_{j=1}^{n_{modes}} G \phi_i \phi_j \frac{(\omega\tau)^2}{1+(\omega\tau)^2} \\ G''(\omega) & = & \sum_{i=1}^{n_{modes}}\sum_{j=1}^{n_{modes}} G \phi_i \phi_j \frac{\omega\tau}{1+(\omega\tau)^2} \end{eqnarray}\end{split}\]

    where, \(\tau = (\tau_{\text D,i}^{-1} + \tau_{\text D, j}^{-1})^{-1}\), and, if the “modulus correction” button is clicked, \(G=G_N^0 \times g(Z_\text{eff})\), with \(g\) the Likthman-McLeish CLF correction function, otherwise \(G=G_N^0\)

  • Parameters
    • nmodes : number of molecular mass components.

    • G_N^0 : Plateau modulus

    • phi0i : Volume fraction of component \(i\)

    • tauD0i : Reptation time of component \(i\)

citations = []
description = 'Linear ViscoElastic predictions of the Rolie-Double-Poly model'
thname = 'RDP LVE'

TheoryReactMix

Module TheoryReactMix

class RepTate.theories.TheoryReactMix.BaseTheoryReactMix(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

Calc(f=None)[source]

ReactMix function

citations = []
do_error(line)[source]

This theory does not calculate the error

doi = []
get_extra_data()[source]

Called when saving project. Save parameters in extra_data dict

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/React/Theory/mixture.html'
set_extra_data(extra_data)[source]

Called when loading a project, set saved parameter values

signal_mix_dialog
single_file = True
thname = 'React Mix'
class RepTate.theories.TheoryReactMix.CLTheoryReactMix(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryReactMix.BaseTheoryReactMix, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryReactMix.GUITheoryReactMix(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryReactMix.BaseTheoryReactMix, RepTate.gui.QTheory.QTheory

GUI Version

handle_btn_prio_senio(checked)[source]

Change do_priority_seniority

handle_edit_bob_settings()[source]

Open the BoB binnig settings dialog

handle_save_bob_configuration()[source]

Save polymer configuraions to a file

theory_buttons_disabled(state)[source]

Enable/Disable theory buttons, typically called at the start and stop of a calculation. This is relevant in multithread mode only.

class RepTate.theories.TheoryReactMix.TheoryReactMix(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

BASIC THEORY DOCUMENTATION IS MISSING IN PYTHON FILE

citations = []
description = 'Combine other active React theories'
doi = []
thname = 'React Mix'

TheoryRetardationModes

Module TheoryRetardationModes

Module that defines theories related to Retardation modes, in the frequency and time domains.

class RepTate.theories.TheoryRetardationModes.BaseTheoryRetardationModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

RetardationModesTime(f=None)[source]

Calculate the theory

citations = []
destructor()[source]

Called when the theory tab is closed

doi = []
drag_mode(dx, dy)[source]

Drag modes around

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Change visibility of modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Creep/Theory/theory.html#retardation-modes'
plot_theory_stuff()[source]

Plot theory helpers

setup_graphic_modes()[source]

Setup graphic helpers

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'Retardation Modes'
update_modes()[source]

Do nothing

class RepTate.theories.TheoryRetardationModes.CLTheoryRetardationModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryRetardationModes.BaseTheoryRetardationModesTime, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryRetardationModes.GUITheoryRetardationModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryRetardationModes.BaseTheoryRetardationModesTime, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmode’

modesaction_change(checked)[source]

Change visibility of modes

class RepTate.theories.TheoryRetardationModes.TheoryRetardationModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit a discrete Retardation spectrum to time dependent creep data

  • Function
    \[\gamma(t) = \sigma_0 \left( J_0 + \sum_{1}^{n_{modes}} J_i \left[ 1 - \exp\left(\frac{-t}{\tau_i}\right) \right] + \frac{t}{\eta_0} \right)\]
    where:
    • \(\sigma_0\): constant stress applied during the creep experiment.

  • Parameters
    • \(J_0\): Instantaneous compliance (logJini, in logarithmic scale).

    • \(\eta_0\): Terminal viscosity (logeta0, in logarithmic scale).

    • \(n_{modes}\): number of Retardation modes equally distributed in logarithmic scale between \(t_{min}\) and \(t_{max}\).

    • logtmin = \(\log(t_{min})\): decimal logarithm of the minimum time range for the modes.

    • logtmax = \(\log(t_{max})\): decimal logarithm of the maximum time.

    • logJi = \(\log(J_{i})\): decimal logarithm of the compliance of Retardation mode \(i\).

citations = []
description = 'Fit Retardation modes to time dependent creep data'
doi = []
thname = 'Retardation Modes'

TheoryRolieDoublePoly

Module TheoryRolieDoublePoly

Module for the Rolie-Double-Poly theory for the non-linear flow of entangled polymers.

class RepTate.theories.TheoryRolieDoublePoly.BaseTheoryRolieDoublePoly(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

RolieDoublePoly(f=None)[source]

Calculate the theory

calculate_fene(l_square, lmax)[source]

calculate finite extensibility function value

citations = ['Boudara V.A.H. et al., J. Rheol. 63, 71-91 (2019)']
destructor()[source]

Called when the theory tab is closed

do_fit(line)[source]

Minimisation procedure disabled in this theory

doi = ['http://dx.doi.org/10.1122/1.5052320']
extra_graphic_visible(state)[source]

Change visibility of graphic helpers

fZ(z)[source]

CLF correction function Likthman-McLeish (2002)

gZ(z)[source]

CLF correction function for modulus Likthman-McLeish (2002)

get_extra_data()[source]

Set extra_data when saving project

get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#rolie-double-poly-equations'
init_flow_mode()[source]

Find if data files are shear or extension

set_extra_data(extra_data)[source]

Set extra data when loading project

set_modes(tau, G)[source]

Set the values of Maxwell Modes from another theory

set_modes_from_mwd(m, phi)[source]

Set modes from MWD

set_param_value(name, value)[source]

Set the value of theory parameters

show_theory_extras(show=False)[source]

Called when the active theory is changed

sigmadot_shear(sigma, t, p)[source]

Rolie-Poly differential equation under shear flow with stretching and finite extensibility if selected

sigmadot_uext(sigma, t, p)[source]

Rolie-Poly differential equation under uniaxial elongational flow with stretching and finite extensibility if selecter

single_file = False
thname = 'Rolie-Double-Poly'
class RepTate.theories.TheoryRolieDoublePoly.CLTheoryRolieDoublePoly(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryRolieDoublePoly.BaseTheoryRolieDoublePoly, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryRolieDoublePoly.GUITheoryRolieDoublePoly(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryRolieDoublePoly.BaseTheoryRolieDoublePoly, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(show)[source]

Uncheck the LVE button. Called when curent theory is changed

edit_modes_window()[source]
edit_mwd_modes()[source]
get_modes_reptate()[source]
handle_flowsolve_btn()[source]

Save theory parameters in FlowSolve format

handle_with_fene_button(checked)[source]
handle_with_gcorr_button(checked)[source]
plot_theory_stuff()[source]

Plot theory helpers

select_extensional_flow()[source]
select_shear_flow()[source]
show_linear_envelope(state)[source]
class RepTate.theories.TheoryRolieDoublePoly.TheoryRolieDoublePoly(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Rolie-Double-Poly equations for the nonlinear predictions of polydisperse melts of entangled linear polymers

  • Function
    \[\boldsymbol \sigma = G_N^0 \sum_i g(Z_{\text{eff},i}) \text{fene}(\lambda_i) \phi_i \boldsymbol A_i\]
    where
    \[\begin{split}\boldsymbol A_i &= \sum_j \phi_j \boldsymbol A_{ij}\\ \lambda_i &= \left( \dfrac{\text{Tr} \boldsymbol A_i}{3} \right)^{1/2}\\ \stackrel{\nabla}{\boldsymbol A_{ij}} &= -\dfrac{1}{\tau_{\mathrm d,i}} (\boldsymbol A_{ij} - \boldsymbol I) -\dfrac{2}{\tau_{\mathrm s,i}} \dfrac{\lambda_i - 1}{\lambda_i} \boldsymbol A_{ij} -\left( \dfrac{\beta_\text{th}}{\tau_{\mathrm d,j}} + \beta_\text{CCR}\dfrac{2}{\tau_{\mathrm s,j}} \dfrac{\lambda_j - 1}{\lambda_j}\lambda_i^{2\delta} \right) (\boldsymbol A_{ij} - \boldsymbol I)\\ \text{fene}(\lambda) &= \dfrac{1-1/\lambda_\text{max}^2}{1-\lambda^2/\lambda_\text{max}^2}\end{split}\]

    with \(\beta_\text{th}\) the thermal constrain release parameter, set to 1. If the “modulus correction” button is pressed, \(g(z) = 1- \dfrac{c_1}{z^{1/2}} + \dfrac{c_2}{z} + \dfrac{c_3}{z^{3/2}}\) is the Likhtman-McLeish CLF correction function to the modulus (\(c_1=1.69\), \(c_2=2\), \(c_3=-1.24\)), \(g(z) = 1\) otherwise; \(Z_{\text{eff},i}=Z_i\phi_{\text{dil},i}\) is the effective entanglement number of the molecular weight component \(i\), and \(\phi_{\text{dil},i}\) the dilution factor (\(\phi_{\text{dil},i}\leq \phi_i\)).

  • Parameters
    • GN0 \(\equiv G_N^0\): Plateau modulus

    • beta \(\equiv\beta_\text{CCR}\): Rolie-Poly CCR parameter

    • delta \(\equiv\delta\): Rolie-Poly CCR exponent

    • phi_i \(\equiv\phi_i\): Volume fraction of species \(i\)

    • tauD_i \(\equiv\tau_{\mathrm d,i}\): Reptation time of species \(i\) (including CLF)

    • tauR_i \(\equiv\tau_{\mathrm s,i}\): Stretch relaxation time of species \(i\)

    • lmax \(\equiv\lambda_\text{max}\): Maximum stretch ratio (active only when the “fene button” is pressed)

citations = ['Boudara V.A.H. et al., J. Rheol. 63, 71-91 (2019)']
description = 'Rolie-Double-Poly const. eq. for polydisperse melts of entangled linear polymers'
doi = ['http://dx.doi.org/10.1122/1.5052320']
thname = 'Rolie-Double-Poly'

TheoryRoliePoly

Module TheoryRoliePoly

Module for the Rolie-Poly theory for the non-linear flow of entangled polymers.

class RepTate.theories.TheoryRoliePoly.BaseTheoryRoliePoly(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

RoliePoly(f=None)[source]

Calculate the theory

RoliePolyLAOS(f=None)[source]

Calculate the theory for LAOS

calculate_fene(l_square, lmax)[source]

calculate finite extensibility function value

citations = ['Likhtman, A.E. & Graham, R.S., J. Non-Newtonian Fluid Mech., 2003, 114, 1-12']
destructor()[source]

Called when the theory tab is closed

doi = ['http://dx.doi.org/10.1016/S0377-0257(03)00114-9']
extra_graphic_visible(state)[source]

Change visibility of theory helpers

get_extra_data()[source]

Set extra_data when saving project

get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#rolie-poly-equation'
init_flow_mode()[source]

Find if data files are shear or extension

set_extra_data(extra_data)[source]

Set extra data when loading project

set_modes(tau, G)[source]

Set the values of Maxwell Modes from another theory

set_param_value(name, value)[source]

Set the value of a theory parameter

show_theory_extras(show=False)[source]

Called when the active theory is changed

sigmadot_shear(sigma, t, p)[source]

Rolie-Poly differential equation under shear flow with stretching and finite extensibility if selected

sigmadot_shearLAOS(sigma, t, p)[source]

Rolie-Poly differential equation under shear flow with stretching and finite extensibility if selected

sigmadot_shear_nostretch(sigma, t, p)[source]

Rolie-Poly differential equation under shear flow, without stretching

sigmadot_shear_nostretchLAOS(sigma, t, p)[source]

Rolie-Poly differential equation under shear flow, without stretching

sigmadot_uext(sigma, t, p)[source]

Rolie-Poly differential equation under uniaxial elongational flow with stretching and finite extensibility if selecter

sigmadot_uext_nostretch(sigma, t, p)[source]

Rolie-Poly differential equation under elongation flow, wihtout stretching

single_file = False
thname = 'Rolie-Poly'
class RepTate.theories.TheoryRoliePoly.CLTheoryRoliePoly(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryRoliePoly.BaseTheoryRoliePoly, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryRoliePoly.GUITheoryRoliePoly(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryRoliePoly.BaseTheoryRoliePoly, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(show)[source]

Uncheck the LVE button. Called when curent theory is changed

edit_modes_window()[source]
get_modes_reptate()[source]
handle_flowsolve_btn()[source]

Save theory parameters in FlowSolve format

handle_spinboxValueChanged(value)[source]
handle_with_fene_button(checked)[source]
plot_theory_stuff()[source]

Plot theory helpers

select_extensional_flow()[source]
select_shear_flow()[source]
show_linear_envelope(state)[source]
class RepTate.theories.TheoryRoliePoly.TheoryRoliePoly(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Rolie-Poly theory MORE DETAILED DOCUMENTATION IS MISSING

citations = ['Likhtman, A.E. & Graham, R.S., J. Non-Newtonian Fluid Mech., 2003, 114, 1-12']
description = 'Rolie-Poly constitutive equation'
doi = ['http://dx.doi.org/10.1016/S0377-0257(03)00114-9']
thname = 'Rolie-Poly'

TheoryRouse

Module TheoryRouseTime

RouseTime file for creating a new theory

class RepTate.theories.TheoryRouse.BaseTheoryRouseFrequency(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

RouseFrequency function

citations = ['Rouse P.E. Jr, J. Chem. Phys. 1953, 21, 1272']
doi = ['http://dx.doi.org/10.1063/1.1699180']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#rouse-frequency'
single_file = False
thname = 'Rouse'
class RepTate.theories.TheoryRouse.BaseTheoryRouseTime(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

RouseTime function

citations = ['Rouse P.E. Jr, J. Chem. Phys. 1953, 21, 1272']
doi = ['http://dx.doi.org/10.1063/1.1699180']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Gt/Theory/theory.html#rouse-time'
single_file = False
thname = 'Rouse'
class RepTate.theories.TheoryRouse.CLTheoryRouseFrequency(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryRouse.BaseTheoryRouseFrequency, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryRouse.CLTheoryRouseTime(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryRouse.BaseTheoryRouseTime, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryRouse.GUITheoryRouseFrequency(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryRouse.BaseTheoryRouseFrequency, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryRouse.GUITheoryRouseTime(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryRouse.BaseTheoryRouseTime, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryRouse.TheoryRouseFrequency(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit Rouse modes to a frequency dependent relaxation function

  • Function

    Continuous Rouse model (valid for “large” \(N\)):

    \[\begin{split}G'(\omega) &= G_0 \dfrac 1 N \sum_{p=1}^N \dfrac{(\omega\tau_p)^2} {1 + (\omega\tau_p)^2}\\ G''(\omega) &= G_0 \dfrac 1 N \sum_{p=1}^N \dfrac{\omega\tau_p} {1 + (\omega\tau_p)^2}\\ \tau_p &= \dfrac{N^2 \tau_0 }{ 2 p^2}\end{split}\]
  • Parameters
    • \(G_0 = ck_\mathrm B T\): “modulus”

    • \(\tau_0\): relaxation time of an elementary segment

    • \(M_0\): molar mass of an elementary segment

    where
    • \(c\): number of segments per unit volume

    • \(k_\mathrm B\): Boltzmann constant

    • \(T\): temperature

    • \(N=M_w/M_0\): number of segments par chain

    • \(M_w\): weight-average molecular mass

citations = ['Rouse P.E. Jr, J. Chem. Phys. 1953, 21, 1272']
description = 'Rouse model'
doi = ['http://dx.doi.org/10.1063/1.1699180']
thname = 'Rouse'
class RepTate.theories.TheoryRouse.TheoryRouseTime(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit Rouse modes to a time dependent relaxation function

  • Function

    Continuous Rouse model (valid for “large” \(N\)):

    \[G(t) = G_0 \dfrac 1 N \sum_{p=1}^N \exp\left(\dfrac{-2p^2t}{N^2\tau_0}\right)\]
  • Parameters
    • \(G_0 = ck_\mathrm B T\): “modulus”

    • \(\tau_0\): relaxation time of an elementary segment

    • \(M_0\): molar mass of an elementary segment

    where
    • \(c\): number of segments per unit volume

    • \(k_\mathrm B\): Boltzmann constant

    • \(T\): temperature

    • \(N=M_w/M_0\): number of segments par chain

    • \(M_w\): weight-average molecular mass

citations = ['Rouse P.E. Jr, J. Chem. Phys. 1953, 21, 1272']
description = 'Rouse model'
doi = ['http://dx.doi.org/10.1063/1.1699180']
thname = 'Rouse'

TheorySCCR

Module TheorySCCR

Module for the SCCR theory for the non-linear flow of entangled polymers.

class RepTate.theories.TheorySCCR.BaseTheorySCCR(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

Get_Recommended_N(cnu, z)[source]
SCCR(f=None)[source]

Calculates the theory

Set_beta_rcr(z, cnu)[source]
citations = ['Graham, R.S. et al., J. Rheol., 2003, 47, 1171-1200']
do_fit(line)[source]

Minimisation procedure disabled in this theory

doi = ['http://dx.doi.org/10.1122/1.1595099']
extra_graphic_visible(state)[source]

Do nothing

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#sccr-theory'
ind(k, i, j)[source]
Convert k,i,j (3D array) indices to ind (1D array), considering the symmetry of the problem
1 / (j=i diagonal)

/

2 / 4

/ / / 3 (j=self.N-i diagonal)

init_flow_mode()[source]

Find if data files are shear or extension

launch_get_MW_dialog()[source]
pde_shear(y, t)[source]
set_yeq()[source]
show_theory_extras(show=False)[source]

Called when the active theory is changed

signal_get_MW
single_file = False
thname = 'GLaMM'
class RepTate.theories.TheorySCCR.CLTheorySCCR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheorySCCR.BaseTheorySCCR, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheorySCCR.GUITheorySCCR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheorySCCR.BaseTheorySCCR, RepTate.gui.QTheory.QTheory

GUI Version

handle_recommendedN(checked)[source]
handle_spinboxValueChanged(value)[source]
select_extensional_flow()[source]
select_shear_flow()[source]
set_extra_data(extra_data)[source]

Set extra data when loading project

class RepTate.theories.TheorySCCR.TheorySCCR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Full SCCR theory for the Non-linear transient flow of linear entangled polymers.

  • Parameters
    • tau_e : Rouse time of one entanglement segment (of length \(M_e\).

    • Ge : Entanglement modulus.

    • Me : Entanglement molecular weight.

    • c_nu : Constraint release parameter.

    • R_S : Retraction rate parameter

citations = ['Graham, R.S. et al., J. Rheol., 2003, 47, 1171-1200']
description = 'SCCR theory for linear entangled polymers'
doi = ['http://dx.doi.org/10.1122/1.1595099']
thname = 'GLaMM'

TheoryShanbhagMaxwellModes

Module TheoryShanbhagMaxwellModes

Module that defines theories related to Maxwell modes, in the frequency and time domains based on the codes pyRespect-time (10.1002/mats.201900005) and pyRespect-frequency (10.3933/ApplRheol-23-24628)

class RepTate.theories.TheoryShanbhagMaxwellModes.BaseTheoryShanbhagMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

FineTuneSolution(tau, w, Gexp, isPlateau)[source]

Given a spacing of modes tau, tries to do NLLS to fine tune it further If it fails, then it returns the old tau back Uses helper function: res_wG which computes residuals

GetWeights(H, w, s, wb)[source]

% % Function: GetWeights(input) % % Finds the weight of “each” mode by taking a weighted average of its contribution % to Gp and Gpp, mixed with an even distribution given by wb % % Input: H = CRS (ns * 1) % w = n*1 vector contains times % s = relaxation modes (ns * 1) % wb = weightBaseDist % % Output: wt = weight of each mode %

GridDensity(x, px, N)[source]

# # PROGRAM: GridDensity(input) # # Takes in a PDF or density function, and spits out a bunch of points in # accordance with the PDF # # Input: # x = vector of points. It need not be equispaced, # px = vector of same size as x: probability distribution or # density function. It need not be normalized but has to be positive. # N = Number of points >= 3. The end points of “x” are included # necessarily, # # Output: # z = Points distributed according to the density # hz = width of the “intervals” - useful to apportion domain to points # if you are doing quadrature with the results, for example. # # (c) Sachin Shanbhag, November 11, 2015 #

InitializeH(Gexp, s, kernMat, G0=0)[source]

Function: InitializeH(input)

Input: Gexp = 2n*1 vector [G’;G”],

s = relaxation modes, kernMat = matrix for faster kernel evaluation G0 = optional; if plateau is nonzero

Output: H = guessed H

G0 = optional guess if *argv is nonempty

MaxwellModes(z, w, Gexp, isPlateau)[source]

Function: MaxwellModes(input)

Solves the linear least squares problem to obtain the DRS

Input: z = points distributed according to the density,

t = n*1 vector contains times, Gexp = 2n*1 vector contains Gp and Gpp isPlateau = True if G0

eq 0

Output: g, tau = spectrum (array)

error = relative error between the input data and the G(t) inferred from the DRS condKp = condition number

ShanBhagMaxwellModesFrequency(f=None)[source]

Function that calculates the spectrum

citations = ['Takeh, A. and Shanbhag, S., Appl. Rheol. 2013, 23, 24628']
costFcn_magic(par, g, tau, imode)[source]

“helper function for mergeModes; establishes cost function to minimize used only when magic = True

destructor()[source]

Called when the theory tab is closed

do_error(line)[source]

Report the error of the current theory

Report the error of the current theory on all the files, taking into account the current selected xrange and yrange.

File error is calculated as the mean square of the residual, averaged over all points in the file. Total error is the mean square of the residual, averaged over all points in all files.

do_fit(line='')[source]
doi = ['http://dx.doi.org/10.3933/ApplRheol-23-24628']
getAmatrix(ns)[source]

Generate symmetric matrix A = L’ * L required for error analysis: helper function for lcurve in error determination

getBmatrix(H, kernMat, Gexp, *argv)[source]

get the Bmatrix required for error analysis; helper for lcurve() not explicitly accounting for G0 in Jr because otherwise I get underflow problems

getH(lam, Gexp, H, kernMat, G0=0)[source]

minimize_H V(lambda) := ||Gexp - kernel(H)||^2 + lambda * ||L H||^2

Inputlambda = regularization parameter ,

Gexp = experimental data, H = guessed H, kernMat = matrix for faster kernel evaluation G0 = optional

OutputH_lam, [G0]

Default uses Trust-Region Method with Jacobian supplied by jacobianLM

getKernMat(s, w)[source]

furnish kerMat() which helps faster kernel evaluation, given s, w Generates a 2n*ns matrix [(ws^2/1+ws^2) | (ws/1+ws)]’hs, which can be multiplied with exp(H) to get predicted G

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Change visibility of modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/LVE/Theory/theory.html#shanbhag-maxwell-modes'
jacobianLM(H, lam, Gexp, kernMat)[source]
HELPER FUNCTION: Gets Jacobian J

returns a (n+nl * ns) matrix Jr; (ns + 1) if G0 is also supplied.

Jr_(i, j) = dr_i/dH_j

It uses kernelD, which approximates dK_i/dH_j, where K is the kernel

kernelD(H, kernMat)[source]

Function: kernelD(input)

outputs the 2n*ns dimensional vector DK(H)(w) It approximates dK_i/dH_j = K * e(H_j):

Input: H = substituted CRS,

kernMat = matrix for faster kernel evaluation

Output: DK = Jacobian of H

kernel_prestore(H, kernMat, *argv)[source]

turbocharging kernel function evaluation by prestoring kernel matrix Date : 8/17/2018 Function: kernel_prestore(input) returns K*h, where h = exp(H)

Same as kernel, except prestoring hs, S, and W to improve speed 3x.

outputs the 2n*1 dimensional vector K(H)(w) which is comparable to G* = [G’|G”]’ 3/11/2019: returning Kh + G0

Input: H = substituted CRS,

kernMat = 2n*ns matrix [(ws^2/1+ws^2) | (ws/1+ws)]’*hs

lcurve(Gexp, Hgs, kernMat, *argv)[source]

Function: lcurve(input)

Input: Gexp = 2n*1 vector [Gt],

Hgs = guessed H, kernMat = matrix for faster kernel evaluation G0 = optionally

Output: lamC and 3 vectors of size npoints*1 contains a range of lambda, rho

and eta. “Elbow” = lamC is estimated using a NEW heuristic AND by Hansen method

March 2019: starting from large lambda to small cuts calculation time by a lot

also gives an error estimate

mergeModes_magic(g, tau, imode)[source]

merge modes imode and imode+1 into a single mode return gp and taup corresponding to this new mode used only when magic = True

nnLLS(w, tau, Gexp, isPlateau)[source]

# # Helper subfunction which does the actual LLS problem # helps MaxwellModes #

normKern_magic(w, gn, taun, g1, tau1, g2, tau2)[source]

helper function: for costFcn and mergeModes used only when magic = True

oldLamC(lam, rho, eta)[source]
plot_theory_stuff()[source]

Plot theory helpers

res_wG(tau, wexp, Gexp, isPlateau)[source]

Helper function for final optimization problem

residualLM(H, lam, Gexp, kernMat)[source]

% % HELPER FUNCTION: Gets Residuals r %

setup_graphic_modes()[source]

Setup graphic helpers

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'ReSpect'
class RepTate.theories.TheoryShanbhagMaxwellModes.BaseTheoryShanbhagMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

FineTuneSolution(tau, t, Gexp, isPlateau, estimateError=False)[source]

Given a spacing of modes tau, tries to do NLLS to fine tune it further If it fails, then it returns the old tau back

Uses helper function: res_tG which computes residuals

GetWeights(H, t, s, wb)[source]

% % Function: GetWeights(input) % % Finds the weight of “each” mode by taking a weighted average of its contribution % to G(t) % % Input: H = CRS (ns * 1) % t = n*1 vector contains times % s = relaxation modes (ns * 1) % wb = weightBaseDist % % Output: wt = weight of each mode %

GridDensity(x, px, N)[source]

# # PROGRAM: GridDensity(input) # # Takes in a PDF or density function, and spits out a bunch of points in # accordance with the PDF # # Input: # x = vector of points. It need not be equispaced, # px = vector of same size as x: probability distribution or # density function. It need not be normalized but has to be positive. # N = Number of points >= 3. The end points of “x” are included # necessarily, # # Output: # z = Points distributed according to the density # hz = width of the “intervals” - useful to apportion domain to points # if you are doing quadrature with the results, for example. # # (c) Sachin Shanbhag, November 11, 2015 #

InitializeH(Gexp, s, kernMat, *argv)[source]

Function: InitializeH(input)

Input: Gexp = n*1 vector [Gt],

s = relaxation modes, kernMat = matrix for faster kernel evaluation G0 = optional; if plateau is nonzero

Output: H = guessed H

G0 = optional guess if *argv is nonempty

MaxwellModes(z, t, Gt, isPlateau)[source]

Function: MaxwellModes(input)

Solves the linear least squares problem to obtain the DRS

Input: z = points distributed according to the density, [z = log(tau)]

t = n*1 vector contains times, Gt = n*1 vector contains G(t), isPlateau = True if G0

eq 0

Output: g, tau = spectrum (array)

error = relative error between the input data and the G(t) inferred from the DRS condKp = condition number

MaxwellModesTime(f=None)[source]

Calculate the theory

citations = ['Shanbhag, S., Macromolecular Theory and Simulations, 2019, 1900005']
costFcn_magic(par, g, tau, imode)[source]

“helper function for mergeModes; establishes cost function to minimize

destructor()[source]

Called when the theory tab is closed

do_error(line)[source]

Report the error of the current theory

Report the error of the current theory on all the files, taking into account the current selected xrange and yrange.

File error is calculated as the mean square of the residual, averaged over all points in the file. Total error is the mean square of the residual, averaged over all points in all files.

do_fit(line='')[source]
doi = ['http://dx.doi.org/10.1002/mats.201900005']
getAmatrix(ns)[source]

Generate symmetric matrix A = L’ * L required for error analysis: helper function for lcurve in error determination

getBmatrix(H, kernMat, Gexp, *argv)[source]

get the Bmatrix required for error analysis; helper for lcurve() not explicitly accounting for G0 in Jr because otherwise I get underflow problems

getH(lam, Gexp, H, kernMat, *argv)[source]

Purpose: Given a lambda, this function finds the H_lambda(s) that minimizes V(lambda)

V(lambda) := ||Gexp - kernel(H)||^2 + lambda * ||L H||^2

Inputlambda = regularization parameter ,

Gexp = experimental data, H = guessed H, kernMat = matrix for faster kernel evaluation G0 = optional

OutputH_lam, [G0]

Default uses Trust-Region Method with Jacobian supplied by jacobianLM

getKernMat(s, t)[source]

furnish kerMat() which helps faster kernel evaluation given s, t generates hs * exp(-T/S) [n * ns matrix], where hs = wi = weights for trapezoidal rule integration.

This matrix (K) times h = exp(H), Kh, is comparable with Gexp

get_modes()[source]

Get the values of Maxwell Modes from this theory

graphicmodes_visible(state)[source]

Change visibility of modes

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Gt/Theory/theory.html#shanbhag-maxwell-modes'
jacobianLM(H, lam, Gexp, kernMat)[source]

HELPER FUNCTION for optimization: Get Jacobian J

returns a (n+nl * ns) matrix Jr; (ns + 1) if G0 is also supplied.

Jr_(i, j) = dr_i/dH_j

It uses kernelD, which approximates dK_i/dH_j, where K is the kernel

kernelD(H, kernMat)[source]

Function: kernelD(input)

outputs the (n*ns) dimensional matrix DK(H)(t) It approximates dK_i/dH_j = K * e(H_j):

Input: H = substituted CRS,

kernMat = matrix for faster kernel evaluation

Output: DK = Jacobian of H

kernel_prestore(H, kernMat, *argv)[source]

turbocharging kernel function evaluation by prestoring kernel matrix Function: kernel_prestore(input) returns K*h, where h = exp(H)

Same as kernel, except prestoring hs, S, and T to improve speed 3x.

outputs the n*1 dimensional vector K(H)(t) which is comparable to Gexp = Gt

3/11/2019: returning Kh + G0

Input: H = substituted CRS,

kernMat = n*ns matrix [w * exp(-T/S)]

lcurve(Gexp, Hgs, kernMat, *argv)[source]

Function: lcurve(input)

Input: Gexp = n*1 vector [Gt],

Hgs = guessed H, kernMat = matrix for faster kernel evaluation par = parameter dictionary G0 = optionally

Output: lamC and 3 vectors of size npoints*1 contains a range of lambda, rho

and eta. “Elbow” = lamC is estimated using a NEW heuristic AND by Hansen method

March 2019: starting from large lambda to small cuts calculation time by a lot

also gives an error estimate

mergeModes_magic(g, tau, imode)[source]

merge modes imode and imode+1 into a single mode return gp and taup corresponding to this new mode; 12/2018 - also tries finetuning before returning

uses helper functions: - normKern_magic() - costFcn_magic()

nnLLS(t, tau, Gexp, isPlateau)[source]

# # Helper subfunction which does the actual LLS problem # helps MaxwellModes; relies on nnls #

normKern_magic(t, gn, taun, g1, tau1, g2, tau2)[source]

helper function: for costFcn and mergeModes

oldLamC(lam, rho, eta)[source]
plot_theory_stuff()[source]

Plot theory helpers

res_tG(tau, texp, Gexp, isPlateau)[source]

Helper function for final optimization problem

residualLM(H, lam, Gexp, kernMat)[source]

% % HELPER FUNCTION: Gets Residuals r Input : H = guessed H,

lambda = regularization parameter , Gexp = experimental data, kernMat = matrix for faster kernel evaluation G0 = plateau

Outputa set of n+nl residuals,

the first n correspond to the kernel the last nl correspond to the smoothness criterion

%

setup_graphic_modes()[source]

Setup graphic helpers

show_theory_extras(show=False)[source]

Called when the active theory is changed

single_file = True
thname = 'ReSpect'
class RepTate.theories.TheoryShanbhagMaxwellModes.CLTheoryShanbhagMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryShanbhagMaxwellModes.BaseTheoryShanbhagMaxwellModesFrequency, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryShanbhagMaxwellModes.CLTheoryShanbhagMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryShanbhagMaxwellModes.BaseTheoryShanbhagMaxwellModesTime, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryShanbhagMaxwellModes.GUITheoryShanbhagMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryShanbhagMaxwellModes.BaseTheoryShanbhagMaxwellModesFrequency, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

handle_spinboxValueChanged(value)[source]

Handle a change of the parameter ‘nmodes’

modesaction_change(checked)[source]

Change visibility of modes

plateauaction_change(checked)[source]
save_spectrum()[source]

Save Spectrum to a text file

select_cont_pred()[source]
select_disc_pred()[source]
class RepTate.theories.TheoryShanbhagMaxwellModes.GUITheoryShanbhagMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryShanbhagMaxwellModes.BaseTheoryShanbhagMaxwellModesTime, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(state)[source]

Uncheck the modeaction button. Called when curent theory is changed

modesaction_change(checked)[source]

Change visibility of modes

plateauaction_change(checked)[source]
save_spectrum()[source]

Save Spectrum to a text file

select_cont_pred()[source]
select_disc_pred()[source]
class RepTate.theories.TheoryShanbhagMaxwellModes.PredictionMode(value)[source]

Bases: enum.Enum

Define which prediction we want to see

Parameters can be:
  • cont: Prediction from Continuous spectrum

  • disc: Prediction from Discrete spectrum

cont = 0
disc = 1
class RepTate.theories.TheoryShanbhagMaxwellModes.TheoryShanbhagMaxwellModesFrequency(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Extract continuous and discrete relaxation spectra from complex modulus G*(w)

  • Parameters
    • plateau : is there a residual plateau in the data (default False).

    • ns : Number of grid points to represent the continuous spectrum (typical 50-100)

    • lamC : Specify lambda_C instead of using the one inferred from the L-curve (default 0, use the L-curve).

    • SmFacLam = Smoothing Factor.

    • MaxNumModes = Max Number of Modes (default 0, automatically determine the optimal number of modes).

    • lam_min = lower limit of lambda for lcurve calculation (default 1e-10).

    • lam_max = higher limit of lambda for lcurve calculation (default 1e3).

    • lamDensity = lambda density per decade (default 3, use 2 or more).

    • rho_cutoff = Threshold to avoid picking too small lambda for L-curve without (default 0).

    • deltaBaseWeightDist = how finely to sample BaseWeightDist (default 0.2).

    • minTauSpacing = how close do successive modes (tau2/tau1) have to be before we try to mege them (default 1.25).

citations = ['Takeh, A. and Shanbhag, S., Appl. Rheol. 2013, 23, 24628']
description = 'Relaxation spectra from dynamic moduli'
doi = ['http://dx.doi.org/10.3933/ApplRheol-23-24628']
thname = 'ReSpect'
class RepTate.theories.TheoryShanbhagMaxwellModes.TheoryShanbhagMaxwellModesTime(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Extract continuous and discrete relaxation spectra from relaxation modulus G(t)

  • Parameters
    • plateau : is there a residual plateau in the data (default False).

    • ns : Number of grid points to represent the continuous spectrum (typical 50-100)

    • lamC : Specify lambda_C instead of using the one inferred from the L-curve (default 0, use the L-curve).

    • SmFacLam = Smoothing Factor.

    • MaxNumModes = Max Number of Modes (default 0, automatically determine the optimal number of modes).

    • lam_min = lower limit of lambda for lcurve calculation (default 1e-10).

    • lam_max = higher limit of lambda for lcurve calculation (default 1e3).

    • lamDensity = lambda density per decade (default 3, use 2 or more).

    • rho_cutoff = Threshold to avoid picking too small lambda for L-curve without (default 0).

    • deltaBaseWeightDist = how finely to sample BaseWeightDist (default 0.2).

    • minTauSpacing = how close do successive modes (tau2/tau1) have to be before we try to mege them (default 1.25).

citations = ['Shanbhag, S., Macromolecular Theory and Simulations, 2019, 1900005']
description = 'Relaxation spectra from relaxation modulus'
doi = ['http://dx.doi.org/10.1002/mats.201900005']
thname = 'ReSpect'

TheorySmoothPolyStrand

Module TheorySmoothPolyStrand

Module for the Smooth Poly STRAND model of polymer FIC (uses the Rolie-Double-Poly theory for the non-linear flow of entangled polymers).

class RepTate.theories.TheorySmoothPolyStrand.BaseTheorySmoothPolyStrand(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

RolieDoublePoly_Crystal(f=None)[source]

Calculate the theory

calculate_fene(l_square, lmax)[source]

calculate finite extensibility function value

citations = ['D.J. Read et al., Phys. Rev. Lett. 124, 147802 (2020)']
computeFel(Fxx, Fyy, Fxy)[source]

Converts RDP configurations into a free energy change (via nematic order parameter

computeQuiescentBarrier()[source]

Calculates the GO model quiescent barrier and nucleation rate

destructor()[source]

Called when the theory tab is closed

do_fit(line)[source]

Minimisation procedure disabled in this theory

doi = ['http://dx.doi.org/10.1103/PhysRevLett.124.147802']
extra_graphic_visible(state)[source]

Change visibility of theory helpers

fZ(z)[source]

CLF correction function Likthman-McLeish (2002)

gZ(z)[source]

CLF correction function for modulus Likthman-McLeish (2002)

get_extra_data()[source]

Set extra_data when saving project

get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/Crystal/Theory/theory.html'
init_flow_mode()[source]

Find if data files are shear or extension

set_extra_data(extra_data)[source]

Set extra data when loading project

set_modes(tau, G)[source]

Set the values of Maxwell Modes from another theory

set_modes_from_mwd(m, phi)[source]

Set modes from MWD

set_param_value(name, value)[source]

Set the value of theory parameters

show_theory_extras(show=False)[source]

Called when the active theory is changed

sigmadot_shear(sigma, t, p)[source]

Rolie-Poly differential equation under shear flow with stretching and finite extensibility if selected

sigmadot_uext(sigma, t, p)[source]

Rolie-Poly differential equation under uniaxial elongational flow with stretching and finite extensibility if selected

single_file = False
thname = 'Smooth-polySTRAND'
class RepTate.theories.TheorySmoothPolyStrand.CLTheorySmoothPolyStrand(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheorySmoothPolyStrand.BaseTheorySmoothPolyStrand, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheorySmoothPolyStrand.GUITheorySmoothPolyStrand(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheorySmoothPolyStrand.BaseTheorySmoothPolyStrand, RepTate.gui.QTheory.QTheory

GUI Version

Qhide_theory_extras(show)[source]

Uncheck the LVE button. Called when curent theory is changed

edit_modes_window()[source]
edit_mwd_modes()[source]
get_modes_reptate()[source]
handle_flowsolve_btn()[source]

Save theory parameters in FlowSolve format

handle_with_fene_button(checked)[source]
handle_with_gcorr_button(checked)[source]
handle_with_noqu_button(checked)[source]
handle_with_single_button(checked)[source]
plot_theory_stuff()[source]

Plot theory helpers

select_extensional_flow()[source]
select_shear_flow()[source]
show_linear_envelope(state)[source]
class RepTate.theories.TheorySmoothPolyStrand.TheorySmoothPolyStrand(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Smooth-polyStrand model for flow-induced crystallisation in polydisperse melts of entangled linear polymers

  • Rheological model: The Rolie-Double-Poly model

Evolution of chain structure under flow is computed by the Rolie-Double-Poly model. Implementation and parameters are the same as in the NVLE application.
\[\boldsymbol \sigma = G_N^0 \sum_i g(Z_{\text{eff},i}) \text{fene}(\lambda_i) \phi_i \boldsymbol A_i\]
where
\[\begin{split}\boldsymbol A_i &= \sum_j \phi_j \boldsymbol A_{ij}\\ \lambda_i &= \left( \dfrac{\text{Tr} \boldsymbol A_i}{3} \right)^{1/2}\\ \stackrel{\nabla}{\boldsymbol A_{ij}} &= -\dfrac{1}{\tau_{\mathrm d,i}} (\boldsymbol A_{ij} - \boldsymbol I) -\dfrac{2}{\tau_{\mathrm s,i}} \dfrac{\lambda_i - 1}{\lambda_i} \boldsymbol A_{ij} -\left( \dfrac{\beta_\text{th}}{\tau_{\mathrm d,j}} + \beta_\text{CCR}\dfrac{2}{\tau_{\mathrm s,j}} \dfrac{\lambda_j - 1}{\lambda_j}\lambda_i^{2\delta} \right) (\boldsymbol A_{ij} - \boldsymbol I)\\ \text{fene}(\lambda) &= \dfrac{1-1/\lambda_\text{max}^2}{1-\lambda^2/\lambda_\text{max}^2}\end{split}\]

with \(\beta_\text{th}\) the thermal constrain release parameter, set to 1. If the “modulus correction” button is pressed, \(g(z) = 1- \dfrac{c_1}{z^{1/2}} + \dfrac{c_2}{z} + \dfrac{c_3}{z^{3/2}}\) is the Likhtman-McLeish CLF correction function to the modulus (\(c_1=1.69\), \(c_2=2\), \(c_3=-1.24\)), \(g(z) = 1\) otherwise; \(Z_{\text{eff},i}=Z_i\phi_{\text{dil},i}\) is the effective entanglement number of the molecular weight component \(i\), and \(\phi_{\text{dil},i}\) the dilution factor (\(\phi_{\text{dil},i}\leq \phi_i\)).

  • Nucleation model: The smooth-polyStrand model

This model takes the stress output from the Rolie-Double-Poly model for each mode, computes the flow-induced nucleation rate, using the Kuhn segment nematic order as the order parameter.

-Neglect quiescent nucleation button: this subtracts the quiescent nucleation rate and assumes all quiescent nucleation occurs from hetrogeneous nuclei.

-Average to single species button: this preaverages the chain configuration over all species in the melt and computes the nucleation rate with a single species based on this average.

  • Crystal evolution model: The Schneider rate equations

From the computed nucleation rate and the crystal growth rate, the model computes the evolution of total crystallinity using the Schneider rate equations [W. Schneider, A. Koppl, and J. Berger, Int. Polym. Proc.II 3, 151 (1988)]. This calculatiom uses the Avrami expression to account approximately for impingement.

  • Parameters

    Rheological

    • GN0 \(\equiv G_N^0\): Plateau modulus

    • beta \(\equiv\beta_\text{CCR}\): Rolie-Poly CCR parameter

    • delta \(\equiv\delta\): Rolie-Poly CCR exponent

    • phi_i \(\equiv\phi_i\): Volume fraction of species \(i\)

    • tauD_i \(\equiv\tau_{\mathrm d,i}\): Reptation time of species \(i\) (including CLF)

    • tauR_i \(\equiv\tau_{\mathrm s,i}\): Stretch relaxation time of species \(i\)

    • lmax \(\equiv\lambda_\text{max}\): Maximum stretch ratio (active only when the “fene button” is pressed)

    • Ne \(\equiv N_e\): Number of Kuhn steps between entanglements

    Quiescient Crystallisation

    • epsilonB \(\equiv \epsilon_B\): Bulk free energy gain of crystallisation per Kuhn step [dimensionless]

    • muS \(\equiv \mu_S\): Nucleus surface area cost [dimensionless]

    • tau0 \(\equiv \tau_0\): Kuhn step nucleation timescale [sec]

    • rhoK \(\equiv \rho_K\): Kuhn step density [\(\mu\mathrm{m}^{-3}\)]

    • G_C \(\equiv G_C\): Crystal growth rate [\(\mu\mathrm{m/sec}\)]

    • N_0 \(\equiv N_0\): Heterogeneous nucleation density [\(\mu\mathrm{m}^{-3}\)]

    Flow-induced crystallisation

    • Gamma \(\equiv \Gamma\): Prefactor connecting the Kuhn segment nematic order and the monomer entropy loss [dimensionless].

    • Kappa0 \(\equiv \kappa _0\): Free energy penalty for the nucleus surface roughness [dimensionless].

    • Qs0 \(\equiv Q_{s0}\): Parameter setting the volume of the search region for new stems joining the nucleus [dimensionless].

citations = ['D.J. Read et al., Phys. Rev. Lett. 124, 147802 (2020)']
description = 'Smooth-polySTRAND model for flow-induced nucleation'
doi = ['http://dx.doi.org/10.1103/PhysRevLett.124.147802']
thname = 'Smooth-polySTRAND'

TheoryStickyReptation

Module TheoryStickyReptation

Template file for creating a new theory

class RepTate.theories.TheoryStickyReptation.BaseTheoryStickyReptation(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate(f=None)[source]

STICKY-REPTATION MODEL FOR LINEAR VISCOELASTICITY

PARAMETERS: > Ge - elastic modulus > tau_s - sticker dissociation time > Zs - number of stickers per chain > Ze - number of entanglements per chain > alpha - magnitude of the contour-length fluctuations in the

double-reptation model. This is principle a universal dimensionless number with a value around ~10.

IMPORTANT: I. This sticky-reptation model assumes high Rouse frequencies

not to affect the rheology at times of the order of the sticker time, due to which the rheology is independent of both the elementary (non-sticky) Rouse time, tau0, and the degree of polymerisation, N. See below.

  1. The results may be affected by numerical approximations,

see below.

I. MODEL APPROXIMATION: 1: The reptation time and Rouse relaxation after sticker

dissociation are approximate. After sticker dissociation a strand of length N/Zs relaxes (a factor of two, to represent a strand of twice that length relaxes) is ignored. The reptation time is taken tau_rep=tau_s Zs^2*Ze, with the prefactor 3 ignored.

  1. The model assumes that the sticker dissociation time tau_s is much larger than tau0*(N/Zs)^2. The shape of the sticker plateau in G’ and G’’ is therefore not affected by the early-time Rouse relaxation, and is independent of tau0 and N: Including the high frequencies requires tau0 and N as additional parameters.

II. NUMERICAL SETTINGS: Some numerical 1. The infinite sums in the double-reptation model are

truncated using a numerical tolerance level.

  1. To transform G(t) to G’(w) and G’’(w) a time range with a finite number of samples is defined. The time range and number of samples may affect the results.

citations = ['L. Leibler et al., Macromolecules, 1991, 24, 4701-4704']
doi = ['http://dx.doi.org/10.1021/ma00016a034']
g_descloizeaux(x, tol)[source]
single_file = False
thname = 'Sticky Reptation'
class RepTate.theories.TheoryStickyReptation.CLTheoryStickyReptation(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryStickyReptation.BaseTheoryStickyReptation, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryStickyReptation.GUITheoryStickyReptation(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryStickyReptation.BaseTheoryStickyReptation, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryStickyReptation.TheoryStickyReptation(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Fit the Sticky Reptation theory for the linear rheology of linear entangled polymers with a number of stickers that can form reversible intramolecular crosslinks.

  • Parameters
    • Ge : elastic plateau modulus.

    • Ze : number of entanglements per chain.

    • Zs : number of stickers per chain.

    • tau_s : sticker dissociation time.

    • alpha : dimensionless constant.

citations = ['L. Leibler et al., Macromolecules, 1991, 24, 4701-4704']
description = 'Sticky Reptation'
doi = ['http://dx.doi.org/10.1021/ma00016a034']
thname = 'Sticky Reptation'

TheoryTTS

Module TheoryTTS

Module for the pseudo theory for Time-Temperature superposition shift of LVE data.

class RepTate.theories.TheoryTTS.BaseTheoryWLFShift(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

TheoryWLFShift(f=None)[source]

Calculate the theory

citations = []
complete_print(text, line, begidx, endidx)[source]

Complete the print command

do_error(line)[source]

Override the error calculation for TTS

The error is calculated as the vertical distance between theory points, in the current view, calculated over all possible pairs of theory tables, when the theories overlap in the horizontal direction and they correspond to files with the same Mw (if the parameters Mw2 and phi exist, their values are also used to classify the error). 1/2 of the error is added to each file. Report the error of the current theory on all the files. File error is calculated as the mean square of the residual, averaged over all calculated points in the shifted tables. Total error is the mean square of the residual, averaged over all points considered in all files.

do_fit(line)[source]

Minimize the error

do_print(line)[source]

Print the theory table associated with the given file name

do_save(line, extra_txt='')[source]

Save the results from WLFShift theory predictions to a TTS file

doi = []
func_fitTTS(*param_in)[source]

Override the fit function

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/TTS/Theory/theory.html#williams-landel-ferry-tts-shift'
single_file = False
thname = 'WLF Shift'
class RepTate.theories.TheoryTTS.CLTheoryWLFShift(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryTTS.BaseTheoryWLFShift, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryTTS.GUITheoryWLFShift(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryTTS.BaseTheoryWLFShift, RepTate.gui.QTheory.QTheory

GUI Version

do_isofrictional()[source]
do_vertical_shift()[source]
print_activation_energy()[source]
save_shift_factors()[source]
class RepTate.theories.TheoryTTS.TheoryWLFShift(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Time-temperature superposition based on a Williams-Landel-Ferry (WLF) equation with two parameters.

  • Function
    \[\begin{split}\begin{eqnarray} \omega(T_r) &= & a_T \omega(T) \\ G(T_r) &= & b_T G(T) \\ \log_{10} a_T &= & \frac{-B_1 (T-T_r)}{(B_2+T_r)(B_2+T)} \\ b_T &= & \frac{\rho(T_r)T_r}{\rho(T)T} = \frac{(1+\alpha T)(T_r+273.15)}{(1+\alpha T_r)(T+273.15)} \\ T_g &= &T_g^\infty - \frac{C_{T_g}}{M_w} \end{eqnarray}\end{split}\]
  • Parameters
    • \(T_r\): Reference temperature to which the experimental data will be shifted.

    • \(B_1\): Material parameter, corresponding to \(C_1\cdot C_2\), with \(C_1\) and \(C_2\) being the standard WLF material parameters.

    • \(B_2\): Material parameter, corresponding to \(C_2-T_r\), \(C_2\) being the standard WLF material parameter.

    • logalpha: Decimal logarithm of the thermal expansion coefficient of the polymer at 0 °C.

    • \(C_{T_g}\): Material parameter that describes the dependence of \(T_g\) with \(M_w\).

    • dx12: Fraction of 1-2 (vynil) units (valid for polybutadiene).

citations = []
description = 'TTS shift based on the WLF equation'
doi = []
thname = 'WLF Shift'

TheoryTTS_Automatic

Module TheoryTTS_Automatic

Module for the pseudo theory for Time-Temperature superposition shift of LVE data.

class RepTate.theories.TheoryTTS_Automatic.BaseTheoryTTSShiftAutomatic(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

TheoryTTSShiftAutomatic(f=None)[source]

Calculate the theory

citations = []
complete_print(text, line, begidx, endidx)[source]

Complete the print command for the CL version

do_error(line)[source]

Override the error calculation for TTS

The error is calculated as the vertical distance between theory points, in the current view, calculated over all possible pairs of theory tables, when the theories overlap in the horizontal direction and they correspond to files with the same Mw (if the parameters Mw2 and phi exist, their values are also used to classify the error). 1/2 of the error is added to each file. Report the error of the current theory on all the files. File error is calculated as the mean square of the residual, averaged over all calculated points in the shifted tables. Total error is the mean square of the residual, averaged over all points considered in all files.

do_fit(line)[source]

Minimize the error

do_print(line)[source]

Print the theory table associated with the given file name

do_save(line, extra_txt='')[source]

Save the results from TTSShiftAutomatic theory predictions to a TTS file

doi = []
func_fitTTS(*param_in)[source]

Overload the fit function

func_fitTTS_one(*param_in)[source]

fit one Mw and phi

get_cases()[source]

Get all different samples in the dataset

Samples are different if Mw, Mw2, phi, phi2 are different

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/TTS/Theory/theory.html#automatic-tts-shift'
single_file = False
thname = 'Automatic TTS Shift'
class RepTate.theories.TheoryTTS_Automatic.CLTheoryTTSShiftAutomatic(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryTTS_Automatic.BaseTheoryTTSShiftAutomatic, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryTTS_Automatic.GUITheoryTTSShiftAutomatic(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryTTS_Automatic.BaseTheoryTTSShiftAutomatic, RepTate.gui.QTheory.QTheory

GUI Version

change_temperature()[source]
do_vertical_shift()[source]
populate_TempComboBox()[source]
print_activation_energy()[source]
refresh_temperatures()[source]
save_shift_factors()[source]
class RepTate.theories.TheoryTTS_Automatic.TheoryTTSShiftAutomatic(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Automatic Time-temperature superposition of experimental data.

  • Parameters
    • This theory has no parameters.

citations = []
description = 'Shift data automatically for best overlap'
doi = []
thname = 'Automatic TTS Shift'

TheoryTemplate

TheoryTobitaCSTR

Module TheoryTobitaCSTR

class RepTate.theories.TheoryTobitaCSTR.BaseTheoryTobitaCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: object

Base class for both GUI and CL

Calc(f=None)[source]

Calculate the theory

citations = ['Tobita H., J. Pol. Sci. Part B 2001, 39, 391-403']
destructor()[source]

Return arms to pool

do_error(line)[source]

This theory does not calculate the error

do_fit(line='')[source]

No fitting allowed in this theory

doi = ['http://dx.doi.org/10.1002/1099-0488(20010115)39:4<391::AID-POLB1011>3.0.CO;2-3']
html_help_file = 'http://reptate.readthedocs.io/manual/Applications/React/Theory/tobitaCSTR.html'
request_stop_computations()[source]

Called when user wants to terminate the current computation

show_theory_extras(checked)[source]
signal_request_arm
signal_request_dist
signal_request_polymer
single_file = True
thname = 'Tobita CSTR'
class RepTate.theories.TheoryTobitaCSTR.CLTheoryTobitaCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryTobitaCSTR.BaseTheoryTobitaCSTR, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryTobitaCSTR.GUITheoryTobitaCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryTobitaCSTR.BaseTheoryTobitaCSTR, RepTate.gui.QTheory.QTheory

GUI Version

get_extra_data()[source]

set extra data

handle_btn_prio_senio(checked)[source]

Change do_priority_seniority

handle_edit_bob_settings()[source]

Open the BoB binnig settings dialog

handle_save_bob_configuration()[source]

Save polymer configuraions to a file

set_extra_data(extra_data)[source]

set extra data

theory_buttons_disabled(state)[source]

Disable/Enable some theory buttons before/after calculation start.

class RepTate.theories.TheoryTobitaCSTR.TheoryTobitaCSTR(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

LDPE CSTR reaction theory

The LDPE CSTR reaction theory uses an algorithm based on the one described in

the paper by H. Tobita (J. Pol. Sci. Part B, 39, 391-403 (2001)) for batch reactions. The algorithm is based upon a set of processes occuring in the reactor during free-radical polymerisation.

citations = ['Tobita H., J. Pol. Sci. Part B 2001, 39, 391-403']
description = 'Tobita LDPE CSTR reaction theory'
doi = ['http://dx.doi.org/10.1002/1099-0488(20010115)39:4<391::AID-POLB1011>3.0.CO;2-3']
thname = 'Tobita CSTR'

TheoryUCM

Module TheoryUCM

Module for the Upper Convected Maxwell model

class RepTate.theories.TheoryUCM.BaseTheoryUCM(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

calculate_UCM(f=None)[source]

Calculate the theory

calculate_UCMLAOS(f=None)[source]

Calculate the theory for LAOS

citations = ['Oldroyd J.G., Proc. Roy. Soc. 1950, 200, 523-541']
doi = ['http://dx.doi.org/10.1098/rspa.1950.0035']
get_modes()[source]

Get the values of Maxwell Modes from this theory

html_help_file = 'http://reptate.readthedocs.io/manual/Applications/NLVE/Theory/theory.html#multi-mode-upper-convected-maxwell-model'
init_flow_mode()[source]

Find if data files are shear or extension

n1_uext(p, times)[source]

Upper Convected Maxwell model in uniaxial extension. Returns N1 = (XX -YY) component of stress tensor

set_modes(tau, G)[source]

Set the values of Maxwell Modes from another theory

set_param_value(name, value)[source]

Set the value of a theory parameter

sigma_xy_shear(p, times)[source]

Upper Convected Maxwell model in shear. Returns XY component of stress tensor

single_file = False
thname = 'UCM'
class RepTate.theories.TheoryUCM.CLTheoryUCM(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryUCM.BaseTheoryUCM, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryUCM.GUITheoryUCM(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.theories.TheoryUCM.BaseTheoryUCM, RepTate.gui.QTheory.QTheory

GUI Version

edit_modes_window()[source]
get_modes_reptate()[source]
plot_modes_graph()[source]
select_extensional_flow()[source]
select_shear_flow()[source]
class RepTate.theories.TheoryUCM.TheoryUCM(name='', parent_dataset=None, ax=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Multi-mode Upper Convected Maxwell model (see Chapter 1 of [2]):

\[\begin{split}\boldsymbol \sigma &= \sum_{i=1}^n G_i \boldsymbol A_i\\ \dfrac {\mathrm D \boldsymbol A_i} {\mathrm D t} &= \boldsymbol \kappa \cdot \boldsymbol A_i + \boldsymbol A_i\cdot \boldsymbol \kappa ^T - \dfrac 1 {\tau_i} (\boldsymbol A_i - \boldsymbol I)\end{split}\]
  • Functions
    • Analytical solution in shear

      \[\eta^+(t) = \sum_{i=1}^n G_i \tau_i (1 - \exp(-t/\tau_i))\]
    • Analytical solution in uniaxial extension

      \[\eta^+_\mathrm E (t) = \dfrac 1 {\dot\varepsilon} \sum_{i=1}^n G_i (A_{xx, i}(t) - A_{yy, i}(t))\]

      with

      \[\begin{split}A_{xx, i}(t) &= \dfrac{ 1 - 2 \dot\varepsilon\tau_i \exp(-(1 - 2 \dot\varepsilon\tau_i) t / \tau_i) } {1 - 2 \dot\varepsilon\tau_i }\\ A_{yy, i}(t) &= \dfrac{ 1 + \dot\varepsilon\tau_i \exp(-(1 + \dot\varepsilon\tau_i)t/\tau_i) } { 1+ \dot\varepsilon\tau_i}\end{split}\]
    where for each mode \(i\):
    • \(G_i\): weight of mode \(i\)

    • \(\tau_i\): relaxation time of mode \(i\)

  • Parameters

    [none]

citations = ['Oldroyd J.G., Proc. Roy. Soc. 1950, 200, 523-541']
description = 'Upper-convected Maxwell constitutive equation'
doi = ['http://dx.doi.org/10.1098/rspa.1950.0035']
thname = 'UCM'

TheoryWLF

Module TheoryWLF

WLF file for creating a new theory

class RepTate.theories.TheoryWLF.BaseTheoryWLF(name='', parent_dataset=None, axarr=None)[source]

Bases: object

Base class for both GUI and CL

WLF(f=None)[source]

WLF function

citations = []
single_file = False
thname = 'WLF'
class RepTate.theories.TheoryWLF.CLTheoryWLF(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryWLF.BaseTheoryWLF, RepTate.core.Theory.Theory

CL Version

class RepTate.theories.TheoryWLF.GUITheoryWLF(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.theories.TheoryWLF.BaseTheoryWLF, RepTate.gui.QTheory.QTheory

GUI Version

class RepTate.theories.TheoryWLF.TheoryWLF(name='', parent_dataset=None, axarr=None)[source]

Bases: RepTate.core.CmdBase.CmdBase

Time-temperature superposition based on a Williams-Landel-Ferry (WLF) equation with two parameters.

  • Function
    \[\begin{split}\begin{eqnarray} \omega(T_r) &= & a_T \omega(T) \\ G(T_r) &= & b_T G(T) \\ \log_{10} a_T &= & \frac{-B_1 (T-T_r)}{(B_2+T_r)(B_2+T)} \\ b_T &= & \frac{\rho(T_r)T_r}{\rho(T)T} = \frac{(1+\alpha T)(T_r+273.15)}{(1+\alpha T_r)(T+273.15)} \\ T_g &= &T_g^\infty - \frac{C_{T_g}}{M_w} \end{eqnarray}\end{split}\]
  • Parameters
    • \(T_r\): Reference temperature to which the experimental data will be shifted.

    • \(B_1\): Material parameter, corresponding to \(C_1\cdot C_2\), with \(C_1\) and \(C_2\) being the standard WLF material parameters.

    • \(B_2\): Material parameter, corresponding to \(C_2-T_r\), \(C_2\) being the standard WLF material parameter.

    • logalpha: Decimal logarithm of the thermal expansion coefficient of the polymer at 0 °C.

    • \(C_{T_g}\): Material parameter that describes the dependence of \(T_g\) with \(M_w\).

    • dx12: Fraction of 1-2 (vynil) units (valid for polybutadiene).

citations = []
description = 'Williams-Landel-Ferry'
doi = []
thname = 'WLF'