pub struct WormLikeChainPolymer {
pub persistence_length: f64,
pub contour_length: f64,
pub temperature: f64,
}Expand description
Worm-Like Chain polymer model for semi-flexible polymers.
Uses the Marko-Siggia interpolation formula for force-extension.
Fields§
§persistence_length: f64Persistence length L_p [m]
contour_length: f64Contour length L_c [m]
temperature: f64Temperature [K]
Implementations§
Source§impl WormLikeChainPolymer
impl WormLikeChainPolymer
Sourcepub fn new(
persistence_length: f64,
contour_length: f64,
temperature: f64,
) -> Self
pub fn new( persistence_length: f64, contour_length: f64, temperature: f64, ) -> Self
Create a new Worm-Like Chain model.
§Arguments
persistence_length- Persistence length L_p [m]contour_length- Contour length L_c [m]temperature- Temperature [K]
Sourcepub fn force_extension(&self, extension: f64) -> f64
pub fn force_extension(&self, extension: f64) -> f64
Force-extension using Marko-Siggia interpolation: F = (kT/L_p) * [1/(4*(1-x)²) - 1/4 + x] where x = R/L_c.
§Arguments
extension- End-to-end distance R [m], must be < contour length
Sourcepub fn extension_at_force(&self, force: f64) -> f64
pub fn extension_at_force(&self, force: f64) -> f64
Extension at a given force (numerical inversion via bisection).
§Arguments
force- Applied force [N]
Sourcepub fn mean_square_end_to_end(&self) -> f64
pub fn mean_square_end_to_end(&self) -> f64
Mean square end-to-end distance in the WLC model:
R² = 2 * L_p * L_c * [1 - (L_p/L_c)*(1 - exp(-L_c/L_p))]
Auto Trait Implementations§
impl Freeze for WormLikeChainPolymer
impl RefUnwindSafe for WormLikeChainPolymer
impl Send for WormLikeChainPolymer
impl Sync for WormLikeChainPolymer
impl Unpin for WormLikeChainPolymer
impl UnsafeUnpin for WormLikeChainPolymer
impl UnwindSafe for WormLikeChainPolymer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more