FJC model thermodynamics (isometric/legendre)
- class FJC(number_of_links, link_length, hinge_mass)
The freely-jointed chain (FJC) model thermodynamics in the isometric ensemble approximated using a Legendre transformation.
- number_of_links
The number of links in the chain.
- link_length
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.
- force(end_to_end_length, temperature)
The expected force as a function of the applied end-to-end length and temperature,
\[f(\xi, T) \sim \frac{kT}{\ell_b}\,\mathcal{L}^{-1}\left(\frac{\xi}{N_b\ell_b}\right) \quad \text{for } N_b\gg 1,\]where \(\mathcal{L}(x)=\coth(x)-1/x\) is the Langevin function.
- 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,
\[\eta(\gamma) \sim \mathcal{L}^{-1}(\gamma) \quad \text{for } N_b\gg 1,\]where \(\mathcal{L}(x)=\coth(x)-1/x\) is the Langevin function.
- 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
- helmholtz_free_energy_per_link(end_to_end_length, temperature)
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
- relative_helmholtz_free_energy_per_link(end_to_end_length, temperature)
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
- nondimensional_helmholtz_free_energy_per_link(nondimensional_end_to_end_length_per_link, temperature)
The nondimensional Helmholtz free energy per link as a function of the applied nondimensional end-to-end length per link and temperature, given by Buche and Silberstein[1] as
\[\vartheta(\gamma, T) \sim \varphi\left[\mathcal{L}^{-1}(\gamma), T\right] + \gamma\mathcal{L}^{-1}(\gamma) \quad \text{for } N_b\gg 1,\]where \(\mathcal{L}(x)=\coth(x)-1/x\) is the Langevin function.
- 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
- nondimensional_relative_helmholtz_free_energy_per_link(nondimensional_end_to_end_length_per_link)
The nondimensional relative Helmholtz free energy per link as a function of the applied nondimensional end-to-end length per link, given by Buche and Silberstein[2] as
\[\Delta\vartheta(\gamma) \sim \gamma\mathcal{L}^{-1}(\gamma) + \ln\left\{\frac{\mathcal{L}^{-1}(\gamma)}{\sinh[\mathcal{L}^{-1}(\gamma)]}\right\} \quad \text{for } N_b\gg 1,\]where \(\mathcal{L}(x)=\coth(x)-1/x\) is the Langevin function.
- 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
- equilibrium_distribution(end_to_end_length)
The nondimensional equilibrium probability density of nondimensional end-to-end vectors per link as a function of the nondimensional end-to-end length per link,
\[P_\mathrm{eq}(\xi) = \frac{e^{-\beta\psi(\xi, T)}}{4\pi\int e^{-\beta\psi(\xi', T)} \,{\xi'}{}^2 d\xi'}.\]- Parameters:
end_to_end_length (numpy.ndarray) – The end-to-end length \(\xi\).
- Returns:
The equilibrium probability density \(P_\mathrm{eq}\).
- Return type:
numpy.ndarray
- nondimensional_equilibrium_distribution(nondimensional_end_to_end_length_per_link)
The nondimensional equilibrium probability density of nondimensional end-to-end vectors per link as a function of the nondimensional end-to-end length per link,
\[\mathscr{P}_\mathrm{eq}(\gamma) = \frac{e^{-\Delta\vartheta(\gamma)}}{4\pi\int e^{-\Delta\vartheta(\gamma')} \,{\gamma'}{}^2 d\gamma'}.\]- 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 equilibrium probability density \(\mathscr{P}_\mathrm{eq}\equiv (N_b\ell_b)^3 P_\mathrm{eq}\).
- Return type:
numpy.ndarray
- equilibrium_radial_distribution(end_to_end_length)
The equilibrium probability density of end-to-end lengths as a function of the end-to-end length,
\[g_\mathrm{eq}(\xi) = 4\pi\xi^2 P_\mathrm{eq}(\xi).\]- Parameters:
end_to_end_length (numpy.ndarray) – The end-to-end length \(\xi\).
- Returns:
The equilibrium probability density \(g_\mathrm{eq}\).
- Return type:
numpy.ndarray
- nondimensional_equilibrium_radial_distribution(nondimensional_end_to_end_length_per_link)
The nondimensional equilibrium probability density of nondimensional end-to-end lengths per link as a function of the nondimensional end-to-end length per link,
\[\mathscr{g}_\mathrm{eq}(\gamma) = 4\pi\gamma^2 \mathscr{P}_\mathrm{eq}(\gamma).\]- 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 equilibrium probability density \(\mathscr{g}_\mathrm{eq}\equiv N_b\ell_b g_\mathrm{eq}\).
- Return type:
numpy.ndarray
- gibbs_free_energy(end_to_end_length, temperature)
The Gibbs free energy as a function of the applied end-to-end length and temperature,
\[\varphi(\xi, T) \sim \psi(\xi, T) - \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 Gibbs free energy \(\varphi\).
- Return type:
numpy.ndarray
- gibbs_free_energy_per_link(end_to_end_length, temperature)
The Gibbs 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 Gibbs free energy per link \(\varphi/N_b\).
- Return type:
numpy.ndarray
- relative_gibbs_free_energy(end_to_end_length, temperature)
The relative Gibbs 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 Gibbs free energy \(\Delta\varphi\equiv\varphi(\xi,T)-\varphi(0,T)\).
- Return type:
numpy.ndarray
- relative_gibbs_free_energy_per_link(end_to_end_length, temperature)
The relative Gibbs 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 Gibbs free energy per link \(\Delta\varphi/N_b\).
- Return type:
numpy.ndarray
- nondimensional_gibbs_free_energy(nondimensional_end_to_end_length_per_link, temperature)
The nondimensional Gibbs 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 Gibbs free energy \(N_b\varrho=\beta\varphi\).
- Return type:
numpy.ndarray
- nondimensional_gibbs_free_energy_per_link(nondimensional_end_to_end_length_per_link, temperature)
The nondimensional Gibbs 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 Gibbs free energy per link \(\varrho\equiv\beta\varphi/N_b\).
- Return type:
numpy.ndarray
- nondimensional_relative_gibbs_free_energy(nondimensional_end_to_end_length_per_link)
The nondimensional relative Gibbs 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 Gibbs free energy \(\beta\Delta\varphi=N_b\Delta\varrho\).
- Return type:
numpy.ndarray
- nondimensional_relative_gibbs_free_energy_per_link(nondimensional_end_to_end_length_per_link)
The nondimensional relative Gibbs 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 Gibbs free energy per link \(\Delta\varrho\equiv\beta\Delta\varphi/N_b\).
- Return type:
numpy.ndarray
References