pub struct EnsembleBuilder<D: ChainLengthDistribution> { /* private fields */ }Expand description
Builder that generates a polydisperse ensemble of polymer chains.
Implementations§
Source§impl<D: ChainLengthDistribution> EnsembleBuilder<D>
impl<D: ChainLengthDistribution> EnsembleBuilder<D>
Sourcepub fn new(bigsmiles: BigSmiles, distribution: D, mn: f64, pdi: f64) -> Self
pub fn new(bigsmiles: BigSmiles, distribution: D, mn: f64, pdi: f64) -> Self
Creates a new ensemble builder.
bigsmiles— parsed BigSMILES describing the polymer.distribution— chain length distribution model.mn— target number-average molecular weight (g/mol).pdi— target polydispersity index (Mw/Mn).
Sourcepub fn num_chains(self, n: usize) -> Self
pub fn num_chains(self, n: usize) -> Self
Override the number of chains to generate (default: 100).
Sourcepub fn homopolymer_ensemble(&self) -> Result<PolymerEnsemble, PolySimError>
pub fn homopolymer_ensemble(&self) -> Result<PolymerEnsemble, PolySimError>
Build a polydisperse ensemble of homopolymer chains.
§Errors
PolySimError::NoStochasticObjectif no{...}block found.PolySimError::RepeatUnitCountif ≠ 1 repeat unit.PolySimError::EmptyEnsembleifnum_chainsis 0.
Sourcepub fn random_copolymer_ensemble(
&self,
fractions: &[f64],
) -> Result<PolymerEnsemble, PolySimError>
pub fn random_copolymer_ensemble( &self, fractions: &[f64], ) -> Result<PolymerEnsemble, PolySimError>
Build a polydisperse ensemble of random copolymer chains.
fractions — weight fraction of each repeat unit (must sum to 1.0).
Sourcepub fn alternating_copolymer_ensemble(
&self,
) -> Result<PolymerEnsemble, PolySimError>
pub fn alternating_copolymer_ensemble( &self, ) -> Result<PolymerEnsemble, PolySimError>
Build a polydisperse ensemble of alternating copolymer chains.
Sourcepub fn block_copolymer_ensemble(
&self,
block_ratios: &[f64],
) -> Result<PolymerEnsemble, PolySimError>
pub fn block_copolymer_ensemble( &self, block_ratios: &[f64], ) -> Result<PolymerEnsemble, PolySimError>
Build a polydisperse ensemble of block copolymer chains.
block_ratios — relative proportion of each block (must sum to 1.0).
Each chain has a different total n, distributed according to the ratios.
Sourcepub fn gradient_copolymer_ensemble(
&self,
profile: &GradientProfile,
) -> Result<PolymerEnsemble, PolySimError>
pub fn gradient_copolymer_ensemble( &self, profile: &GradientProfile, ) -> Result<PolymerEnsemble, PolySimError>
Build a polydisperse ensemble of gradient copolymer chains.
Each chain has composition that varies from f_start to f_end
according to profile. The BigSMILES must contain exactly 2 repeat units.