Source code for pycif.plugins.models.lagrangian.perturb_model

import copy
from ....utils.classes.chemistries import Chemistry


[docs] def perturb_model(self, nsamples, transf_mapper): # Perturb active species in the chemical scheme list_acspecies = copy.deepcopy(self.chemistry.acspecies.attributes[:]) self.perturbed_species = {} for ispec, spec in enumerate(list_acspecies): for i in range(nsamples): spec_sample = "{}__sample#{:03d}".format(spec, i) spec_plg = getattr(self.chemistry.acspecies, spec) setattr( self.chemistry.acspecies, spec_sample, Chemistry(plg_orig=spec_plg) ) self.chemistry.acspecies.attributes.append(spec_sample) self.perturbed_species[spec_sample] = spec delattr(self.chemistry.acspecies, spec) self.chemistry.acspecies.attributes.remove(spec)