public void Convert(IMoleculeBuilder moleculeBuilder, IFormulaCache formulaCache)
        {
            if (!conversionRequired(moleculeBuilder))
            {
                return;
            }

            moleculeBuilder.Dimension   = _concentrationDimension;
            moleculeBuilder.DisplayUnit = _displayUnitRetriever.PreferredUnitFor(moleculeBuilder);

            var defaultStartValue = moleculeBuilder.GetDefaultMoleculeStartValue();

            if (!defaultStartValue.HasValue)
            {
                convertExplicitFormula(moleculeBuilder.DefaultStartFormula, _concentrationDimension);
                return;
            }

            //default start value defined? only created an explicit formula for value !=0
            moleculeBuilder.DefaultStartFormula = defaultStartValue == 0 ?
                                                  createConstantConcentrationFormula(defaultStartValue.Value) :
                                                  createConcentrationFormulaFromConstantValue(defaultStartValue.Value, moleculeBuilder.Name, formulaCache);
        }
 private static void setMoleculeStartValue(IMoleculeBuilder moleculeBuilder, IMoleculeStartValue moleculeStartValue)
 {
     moleculeStartValue.StartValue = moleculeBuilder.GetDefaultMoleculeStartValue();
 }