Morse-FJC model thermodynamics (isometric/asymptotic/reduced/legendre)

class MORSEFJC(number_of_links, link_length, hinge_mass, link_stiffness, link_energy)

The Morse link potential freely-jointed chain (Morse-FJC) model thermodynamics in the isometric ensemble approximated using a reduced asymptotic approach and a Legendre transformation.

The number of links in the chain.

The length of each link in the chain in units of nm.

hinge_mass

The mass of each hinge in the chain in units of kg/mol.

The stiffness of each link in the chain in units of J/(mol⋅nm^2).

The energy of each link in the chain in units of J/mol.

force(end_to_end_length, temperature)

The expected force as a function of the applied end-to-end length and temperature.

Parameters:
  • end_to_end_length (numpy.ndarray) – The end-to-end length \(\xi\).

  • temperature (float) – The temperature \(T\).

Returns:

The force \(f\).

Return type:

numpy.ndarray

nondimensional_force(nondimensional_end_to_end_length_per_link)

The expected nondimensional force as a function of the applied nondimensional end-to-end length per link.

Parameters:

nondimensional_end_to_end_length_per_link (numpy.ndarray) – The nondimensional end-to-end length per link \(\gamma\equiv \xi/N_b\ell_b\).

Returns:

The nondimensional force \(\eta\equiv\beta f\ell_b\).

Return type:

numpy.ndarray

helmholtz_free_energy(end_to_end_length, temperature)

The Helmholtz free energy as a function of the applied end-to-end length and temperature,

\[\psi(\xi, T) \sim \varphi\left[f(\xi, T)\right] + \xi f(\xi, T) \quad \text{for } N_b\gg 1,\]

where \(f(\xi, T)\) is given by the Legendre transformation approximation above.

Parameters:
  • end_to_end_length (numpy.ndarray) – The end-to-end length \(\xi\).

  • temperature (float) – The temperature \(T\).

Returns:

The Helmholtz free energy \(\psi\).

Return type:

numpy.ndarray

The Helmholtz free energy per link as a function of the applied end-to-end length and temperature.

Parameters:
  • end_to_end_length (numpy.ndarray) – The end-to-end length \(\xi\).

  • temperature (float) – The temperature \(T\).

Returns:

The Helmholtz free energy per link \(\psi/N_b\).

Return type:

numpy.ndarray

relative_helmholtz_free_energy(end_to_end_length, temperature)

The relative Helmholtz free energy as a function of the applied end-to-end length and temperature.

Parameters:
  • end_to_end_length (numpy.ndarray) – The end-to-end length \(\xi\).

  • temperature (float) – The temperature \(T\).

Returns:

The relative Helmholtz free energy \(\Delta\psi\equiv\psi(\xi,T)-\psi(0,T)\).

Return type:

numpy.ndarray

The relative Helmholtz free energy per link as a function of the applied end-to-end length and temperature.

Parameters:
  • end_to_end_length (numpy.ndarray) – The end-to-end length \(\xi\).

  • temperature (float) – The temperature \(T\).

Returns:

The relative Helmholtz free energy per link \(\Delta\psi/N_b\).

Return type:

numpy.ndarray

nondimensional_helmholtz_free_energy(nondimensional_end_to_end_length_per_link, temperature)

The nondimensional Helmholtz free energy as a function of the applied nondimensional end-to-end length per link and temperature.

Parameters:
  • nondimensional_end_to_end_length_per_link (numpy.ndarray) – The nondimensional end-to-end length per link \(\gamma\equiv \xi/N_b\ell_b\).

  • temperature (float) – The temperature \(T\).

Returns:

The nondimensional Helmholtz free energy \(\beta\psi=N_b\vartheta\).

Return type:

numpy.ndarray

The nondimensional Helmholtz free energy per link as a function of the applied nondimensional end-to-end length per link and temperature.

Parameters:
  • nondimensional_end_to_end_length_per_link (numpy.ndarray) – The nondimensional end-to-end length per link \(\gamma\equiv \xi/N_b\ell_b\).

  • temperature (float) – The temperature \(T\).

Returns:

The nondimensional Helmholtz free energy per link \(\vartheta\equiv\beta\psi/N_b\).

Return type:

numpy.ndarray

nondimensional_relative_helmholtz_free_energy(nondimensional_end_to_end_length_per_link)

The nondimensional relative Helmholtz free energy as a function of the applied nondimensional end-to-end length per link.

Parameters:

nondimensional_end_to_end_length_per_link (numpy.ndarray) – The nondimensional end-to-end length per link \(\gamma\equiv \xi/N_b\ell_b\).

Returns:

The nondimensional relative Helmholtz free energy \(\beta\Delta\psi=N_b\Delta\vartheta\).

Return type:

numpy.ndarray

The nondimensional relative Helmholtz free energy per link as a function of the applied nondimensional end-to-end length per link.

Parameters:

nondimensional_end_to_end_length_per_link (numpy.ndarray) – The nondimensional end-to-end length per link \(\gamma\equiv \xi/N_b\ell_b\).

Returns:

The nondimensional relative Helmholtz free energy per link \(\Delta\vartheta\equiv\beta\Delta\psi/N_b\).

Return type:

numpy.ndarray