def _calculate_F(self, iso_intensities=None): if iso_intensities is None: iso_intensities = self._assemble_isotope_intensities() if iso_intensities: ifc = self.interference_corrections f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F(iso_intensities, decay_time=self.decay_days, interferences=ifc, arar_constants=self.arar_constants, fixed_k3739=self.fixed_k3739) self.uF = f self.F = f.nominal_value self.F_err = f.std_dev self.F_err_wo_irrad = f_wo_irrad.std_dev return f, f_wo_irrad, non_ar, computed, interference_corrected
def _calculate_F(self, iso_intensities=None): if iso_intensities is None: iso_intensities = self._assemble_isotope_intensities() if iso_intensities: ifc = self.interference_corrections f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F( iso_intensities, decay_time=self.decay_days, interferences=ifc, arar_constants=self.arar_constants, fixed_k3739=self.fixed_k3739) self.uF = f self.F = f.nominal_value self.F_err = f.std_dev self.F_err_wo_irrad = f_wo_irrad.std_dev return f, f_wo_irrad, non_ar, computed, interference_corrected
def _calculate_age(self, include_decay_error=None): """ approx 2/3 of the calculation time is in _assemble_ar_ar_isotopes. Isotope.get_intensity takes about 5ms. """ isos = self._assemble_ar_ar_isotopes() if not isos: return arc = self.arar_constants isos = abundance_sensitivity_correction(isos, arc.abundance_sensitivity) isos[1] *= self.ar39decayfactor isos[3] *= self.ar37decayfactor f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F(isos, decay_time=self.decay_days, interferences=self.interference_corrections, arar_constants=self.arar_constants) self.non_ar_isotopes = non_ar self.computed = computed self.rad40_percent = computed['rad40_percent'] for k, v in interference_corrected.iteritems(): self.isotopes[k].interference_corrected_value = v self.uF = f self.F = f.nominal_value self.F_err = f.std_dev self.F_err_wo_irrad = f_wo_irrad.std_dev if self.j is not None: j = copy(self.j) else: j = ufloat(1e-4,1e-7) age = age_equation(j, f, include_decay_error=include_decay_error, arar_constants=self.arar_constants) self.uage = age self.age = float(age.nominal_value) self.age_err = float(age.std_dev) j.std_dev = 0 self.age_err_wo_j = float(age.std_dev) if self.j is not None: j = copy(self.j) else: j = ufloat(1e-4, 1e-7) age = age_equation(j, f_wo_irrad, include_decay_error=include_decay_error, arar_constants=self.arar_constants) self.age_err_wo_irrad = float(age.std_dev) j.std_dev = 0 self.age_err_wo_j_irrad = float(age.std_dev) #print 'asddsadf' #print self.age_err #print self.age_err_wo_j #print self.age_err_wo_j_irrad for iso in self.isotopes.itervalues(): iso.age_error_component = self.get_error_component(iso.name)
def _calculate_age(self, include_decay_error=None): """ approx 2/3 of the calculation time is in _assemble_ar_ar_isotopes. Isotope.get_intensity takes about 5ms. """ isos = self._assemble_ar_ar_isotopes() if not isos: return arc = self.arar_constants isos = abundance_sensitivity_correction(isos, arc.abundance_sensitivity) isos[1] *= self.ar39decayfactor isos[3] *= self.ar37decayfactor f, f_wo_irrad, non_ar, computed, interference_corrected = calculate_F( isos, decay_time=self.decay_days, interferences=self.interference_corrections, arar_constants=self.arar_constants, ) self.non_ar_isotopes = non_ar self.computed = computed self.rad40_percent = computed["rad40_percent"] for k, v in interference_corrected.iteritems(): self.isotopes[k].interference_corrected_value = v self.uF = f self.F = f.nominal_value self.F_err = f.std_dev self.F_err_wo_irrad = f_wo_irrad.std_dev if self.j is not None: j = copy(self.j) else: j = ufloat(1e-4, 1e-7) age = age_equation(j, f, include_decay_error=include_decay_error, arar_constants=self.arar_constants) self.uage = age self.age = float(age.nominal_value) self.age_err = float(age.std_dev) j.std_dev = 0 self.age_err_wo_j = float(age.std_dev) if self.j is not None: j = copy(self.j) else: j = ufloat(1e-4, 1e-7) age = age_equation(j, f_wo_irrad, include_decay_error=include_decay_error, arar_constants=self.arar_constants) self.age_err_wo_irrad = float(age.std_dev) j.std_dev = 0 self.age_err_wo_j_irrad = float(age.std_dev) # print 'asddsadf' # print self.age_err # print self.age_err_wo_j # print self.age_err_wo_j_irrad for iso in self.isotopes.itervalues(): iso.age_error_component = self.get_error_component(iso.name)