pub struct FreelyJointedChain {
pub n_segments: f64,
pub kuhn_length: f64,
pub temperature: f64,
}Expand description
Freely Jointed Chain polymer model.
Models a polymer as N rigid segments of length b (Kuhn length), with free rotation about each joint.
Fields§
§n_segments: f64Number of Kuhn segments
kuhn_length: f64Kuhn segment length [m]
temperature: f64Temperature [K]
Implementations§
Source§impl FreelyJointedChain
impl FreelyJointedChain
Sourcepub fn new(n_segments: f64, kuhn_length: f64, temperature: f64) -> Self
pub fn new(n_segments: f64, kuhn_length: f64, temperature: f64) -> Self
Create a new Freely Jointed Chain model.
§Arguments
n_segments- Number of Kuhn segments Nkuhn_length- Kuhn length b [m]temperature- Temperature [K]
Sourcepub fn mean_square_end_to_end(&self) -> f64
pub fn mean_square_end_to_end(&self) -> f64
Mean square end-to-end distance: R² = N * b².
Sourcepub fn rms_end_to_end(&self) -> f64
pub fn rms_end_to_end(&self) -> f64
RMS end-to-end distance: R²^(1/2) = b * sqrt(N).
Sourcepub fn contour_length(&self) -> f64
pub fn contour_length(&self) -> f64
Contour length: L_c = N * b.
Sourcepub fn inverse_langevin(x: f64) -> f64
pub fn inverse_langevin(x: f64) -> f64
Inverse Langevin function approximation (Padé approximant).
L_inv(x) ≈ x * (3 - x²) / (1 - x²) for |x| < 1.
Sourcepub fn force_extension(&self, extension: f64) -> f64
pub fn force_extension(&self, extension: f64) -> f64
Force-extension relationship: F = (kT/b) * L_inv(R/L_c).
§Arguments
extension- End-to-end distance R [m], must be < contour length
Sourcepub fn spring_constant(&self) -> f64
pub fn spring_constant(&self) -> f64
Entropic spring constant at small extensions: k = 3kT / (N*b²).
Auto Trait Implementations§
impl Freeze for FreelyJointedChain
impl RefUnwindSafe for FreelyJointedChain
impl Send for FreelyJointedChain
impl Sync for FreelyJointedChain
impl Unpin for FreelyJointedChain
impl UnsafeUnpin for FreelyJointedChain
impl UnwindSafe for FreelyJointedChain
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