private void addVariabilityParameterIn(ISpatialStructure spatialStructure) { var organism = getOrganism(spatialStructure); if (organism == null) { return; } var lumen = organism.EntityAt <IContainer>("Lumen"); if (lumen == null) { return; } var parameter = _objectBaseFactory.Create <IDistributedParameter>() .WithName(EFFECTIVE_SURFACE_AREA_VARIABILITY_FACTOR) .WithDescription("Effective surface area variability factor"); parameter.WithGroup("GI_ANATOMY_AEFF_FACTOR"); var meanParameter = effectiveSurfaceAreaMeanParameter(); var deviationParameter = effectiveSurfaceAreaDeviationParameter(); var percentileParameter = effectiveSurfaceAreaPercentileParameter(); parameter.Add(meanParameter); parameter.Add(deviationParameter); parameter.Add(percentileParameter); parameter.Formula = _distributionFormulaFactory.CreateLogNormalDistributionFormulaFor(parameter, meanParameter, deviationParameter); lumen.Add(parameter); }
public void UpdateDistributionFormula() { IDistributionFormula newFormula; switch (_distributedParameterDTO.FormulaType) { case DistributionFormulaType.DiscreteDistribution: checkChildrenForDiscreteDistributionProperties(); newFormula = _distributionFormulaFactory.CreateDiscreteDistributionFormulaFor(_distributedParameter, getChildParameter(Constants.Distribution.MEAN)); break; case DistributionFormulaType.NormalDistribution: checkChildrenForNormalDistributionProperties(); newFormula = _distributionFormulaFactory.CreateNormalDistributionFormulaFor(_distributedParameter, getChildParameter(Constants.Distribution.MEAN), getChildParameter(Constants.Distribution.DEVIATION)); break; case DistributionFormulaType.UniformDistribution: checkChildrenForUniformDistributionProperties(); newFormula = _distributionFormulaFactory.CreateUniformDistributionFormulaFor(_distributedParameter, getChildParameter(Constants.Distribution.MINIMUM), getChildParameter(Constants.Distribution.MAXIMUM)); break; case DistributionFormulaType.LogNormalDistribution: checkChildrenForLogNormalDistributionProperties(); newFormula = _distributionFormulaFactory.CreateLogNormalDistributionFormulaFor(_distributedParameter, getChildParameter(Constants.Distribution.MEAN), getChildParameter(Constants.Distribution.GEOMETRIC_DEVIATION)); break; default: throw new ArgumentOutOfRangeException("distributionFormulaType"); } updateDistributedFormula(newFormula); rebind(); }